
多くの人が私と同じ状況にあると思います。私はノートパソコンを持って出張します。そして、オフィス(私の場合は自宅)からファイルに安全にアクセスする必要があります。
私の質問の短いバージョン:
SSH/SFTPを作成するにはどうすればいいですか?本当に1 台のラップトップから 1 人のユーザーだけがサーバーに接続する必要がある場合、サーバーは安全ですか? このような状況では、他のユーザーがサーバーにオンラインでアクセスすることをほぼ不可能にするには、どのような特別な手順が必要ですか?
さらに詳しい情報:
私は、ラップトップ (KDE) と自宅/オフィスのサーバーの両方で Ubuntu Linux を使用しています。接続は問題ありません。必要に応じて、携帯電話の接続にテザリングできます。大量のファイル (約 300 GB) にアクセスする必要があります。一度にすべてが必要なわけではありませんが、どのファイルが必要になるかは事前にわかりません。これらのファイルには、機密のクライアント情報やクレジットカード番号などの個人情報が含まれているため、安全でなければなりません。
これを踏まえると、Dropbox や Amazon AWS などにこれらのファイルをすべて保存したくありません。いずれにしても、そのコストを正当化することはできません (Dropbox は 100 GB を超えるプランの価格を公開しておらず、セキュリティが懸念されます)。ただし、適切なソリューションにはいくらかのお金を費やすつもりです。たとえば、VPN サービスがソリューションの一部になるでしょうか。または、他の商用サービスはどうでしょうか。PogoPlug については聞いたことがありますが、セキュリティ上の懸念に対処できる同様のサービスがあるかどうかはわかりません。
スペースがあるので、すべてのファイルをノート PC にコピーできます。しかし、自宅のコンピューターとノート PC を同期する必要があり、以前、この作業があまり得意ではないことに気づきました。また、ノート PC を紛失したり盗まれたりした場合、データはノート PC 上にあります。ノート PC のドライブは SSD ですが、SSD ドライブの暗号化ソリューションは適していません。
したがって、すべてのデータを Linux ファイル サーバー (自宅の安全な場所) に保存するのが最善のようです。
これは妥当な結論でしょうか、それともインターネットに接続されているものはすべてリスクが高いので、データをラップトップにコピーするだけ(そしておそらく SSD を HDD に交換して、バッテリー寿命とパフォーマンスを低下させる)でよいのでしょうか?
ノートパソコンを紛失するリスクは高いと思います。私はオンラインでハッキングの標的になりやすいわけではありません。自宅のブロードバンドはケーブルインターネットで、非常に信頼性が高いようです。そのため、外出中にノートパソコンからデータに安全にアクセスする最善の(合理的な)方法を知りたいです。
アクセスする必要があるのはこの 1 台のコンピューターからだけですが、携帯電話の 3G/4G や WiFi、クライアントのブロードバンドなどから接続する可能性もあります。そのため、どの IP アドレスが割り当てられるかは事前にわかりません。
私は SSH と SFTP (または同様のもの) をベースにしたソリューションに傾いています。SSH/SFTP は、私が必要とすると予想されるほぼすべての機能を提供します。ファイルの参照とダウンロードには SFTP と Dolphin を使用したいと思います。その他のことには SSH とターミナルを使用します。
私の Linux ファイル サーバーは OpenSSH でセットアップされています。SSH は比較的安全だと思っています。Denyhosts も使用しています。しかし、さらにいくつかのステップを踏みたいと思っています。外出先からアクセスできるようにしながら、誰かが私のサーバーに侵入できる可能性を可能な限りゼロに近づけたいのです。
私はシステム管理者でもプログラマーでも本当の「スーパーユーザー」でもありません。ほとんどの時間を他のことに費やす必要があります。「ポートノッキング」については聞いたことがありますが、使用したことがなく、実装方法も知りません (学ぶつもりはありますが)。
私はすでに次のようなタイトルの記事をいくつか読んでいます。
- OpenSSH サーバーのベスト セキュリティ プラクティス トップ 20
- Linux サーバーのセキュリティ強化に関する 20 のヒント
- Debian Linux DenyHosts ソフトウェアで SSH ユーザーのハッキング / クラッキング攻撃を阻止
- もっと...
これらの記事には次のようなことが書かれています
- DenyHostsを使用する
- 特定のユーザーのみが接続できるようにするには、/etc/ssh/sshd_config で AllowUsers オプションを設定します。
- SSH 経由の root ログインを無効にします。
- 公開鍵認証を使用し、パスワードログインを禁止する
- その他多数。
私は上記のすべて(およびそれ以上)を実行しています。しかし、読んだことのあるすべてのことを実装したわけではありません。おそらくそれはできないでしょう。
しかし、私の状況では、1 台のラップトップからアクセスするだけでよいので、もっとよい方法があるかもしれません。私は 1 人のユーザーにすぎません。私のサーバーを一般の人がアクセスできるようにする必要はありません。これらすべての事実を考慮すると、私が実行できる範囲内で、これらの事実を活用して、上記の記事の一般的な提案よりもはるかに優れたセキュリティを実現できる提案がいくつかあることを期待しています。
一例として、ポートノッキングが挙げられます。これは私の状況にぴったりのようです。これと似たようなものは他に何がありますか?
答え1
完璧なセキュリティというものは存在しません。すべてのセキュリティ オプションはトレードオフです。個人的には、次のことをお勧めします。
- ブルートフォース攻撃を防ぐために DenyHosts を使用しますが、移動中ずっとロックアウトされないように適切なタイムアウト値を設定してください。注意しないと、間違いなくロックアウトされる可能性があります。
/etc/ssh/sshd_config
特定のユーザーのみが接続できるようにするには、AllowUsers オプションを設定します。- SSH 経由の root ログインを無効にします。
- ラップトップから公開鍵認証を使用します。
- あらゆる公共端末から OPIE や OTPW などのワンタイム パスワードを使用します。
- たとえ sudo や su と組み合わせて使用する場合でも、公共の端末から root パスワードを使用しないでください。
あるいは、Apricorn Aegis Padlock ドライブなどの PIN パッド付きのポータブル暗号化ドライブを高く評価しています。これらは非常にポータブルで、ほとんどの脅威モデルに対して十分に安全であり、最大のリスクは PIN を忘れることや旅行中にドライブを紛失することですが、どちらの場合でも元のファイルは自宅に安全に保管されます。
無料の代替手段を好む場合は、encfs、ecryptfs などを使用して、機密データを保持するための暗号化マウントを作成できます。ラップトップと一緒にデータが失われる可能性や、誰かがカーネル、ブートローダー、またはハードウェアを改ざんして、見えないところでキーロガーをインストールする可能性はありますが、これは現在の脅威モデルには当てはまらないため、暗号化マウントで十分目的を達成できるはずです。このオプションは PIN パッドほど安全ではないと思いますが、それでもかなり確実な選択肢です。
基本的に、本当に必要だと感じない限り、サービスリモート システムによって提供されるファイルを使用する場合は、必要と思われる限り安全なコンテナーにファイルを持ち込むことをお勧めします。その後、帰宅時に rsync、conduit、または unison を使用してファイルを同期するか、更新されたファイルをメイン システムにコピーし直すことができます。
あなたの質問に対する「万能の」答えは実際には存在しません。これがお役に立てば幸いです。
答え2
この場合、すでに実行されている標準の SSH 強化に加えて、セキュリティを次のレベルに引き上げる方法として、ポート ノッキングを提案します。標準の SSH 強化を提案する他の回答は、それらの手順がすでに実行されているという事実を無視しています。この質問は、SSH 強化を超えることについてです。
Wikipediaによると、
外部の攻撃者がポート ノック シーケンスを知らない場合、最も単純なシーケンスであっても、それを発見するには大規模なブルート フォース攻撃が必要になることを考慮してください。3 つのノックによる単純な TCP シーケンス (例: ポート 1000、2000、3000) では、シーケンスに関する事前の知識がない攻撃者は、1 ~ 65535 の範囲にある 3 つのポートのすべての組み合わせをテストし、その間の各ポートをスキャンして開いているポートがないかどうかを確認する必要があります。ステートフル システムであるため、正しい 3 桁のシーケンスが順番に受信され、その間に他のパケットが含まれない場合、ポートは開きません。
最悪の場合、1 回の成功した開封を検出するために必要なパケットは最大 655363 個になります。これは 281,474,976,710,656 個、つまり 281 兆個を超えるパケットです。平均すると、1 回の単純な 3 ポート TCP のみのノックをブルート フォースで正常に開封するには、約 9.2 京パケットが必要になります。ブルート フォース攻撃を阻止するためにノック試行制限が使用され、より長く複雑なシーケンスが使用され、ノックの一部として暗号化ハッシュが使用されると、このことはさらに非現実的になります。
ポートノッキングにはいくつかの制限があります(例えば、共有秘密です)。しかし、質問にあるように、これは1つしたがって、既存の SSH 強化 (および denyhosts など) に加えてポート ノッキングを行うことは、セキュリティを次のレベルに引き上げる効果的でシンプルなステップです。
ポートノッカーユーティリティの広範な使用はセキュリティ専門家の間でも議論の的となっていますが、この質問はポートノッキングが非常に効果的に使用できる場合の典型的な例です。
もちろん、ポート ノッキングを使用するには、iptables も使用する必要があります。したがって、ここでの質問である次のステップに進むには、次の 2 つの手順が必要です。
iptablesを使用する
ポートノッキングを使用する
これは私が気に入っている特定のポートノッキング実装です:
http://www.portknocking.org/view/implementations
Android を含む多くの一般的なシステム用のクライアントがあります。
参考文献:
答え3
ファイルを保護します。
出発前に暗号化してください。次に、SSH サーバーを設定し、SSH サーバーのキーとパスワードを使用してサーバーにリモートでアクセスします。暗号化されたファイルをダウンロードし、接続を切断してファイルを復号化します。何を使用するかに関係なく、使用するものはすべて、いつかはハッキングされる可能性があることを理解する必要があります。そのため、許容できるリスクを回避しなければなりません。
たとえば、Apple製品をお持ちの場合、工場出荷時にルートキットがインストールされている可能性が高いです。Dell、HP、ASUS、すべてで同じです。これらはOS XとWindows XP以降でのみ動作します。つまり、使用リナックス。
答え4
私は、ラップトップ (KDE) と自宅/オフィスのサーバーの両方で Ubuntu Linux を使用しています。接続は問題ありません。必要に応じて、携帯電話の接続にテザリングできます。大量のファイル (約 300 GB) にアクセスする必要があります。一度にすべてが必要なわけではありませんが、どのファイルが必要になるかは事前にわかりません。これらのファイルには、機密のクライアント情報やクレジットカード番号などの個人情報が含まれているため、安全でなければなりません。
携帯電話の 3G/4G 接続の使用は安全ではないことはご存じですか? 電話会社は (間違いなく) ユーザーのインターネット トラフィックをすべて閲覧できます。インターネット トラフィックは安全かもしれませんが、理論的には中間者攻撃を受ける可能性があります。3G/4G 接続を使用する場合は、別の安全な接続でコンテンツをアップロードする前に VPN を使用する必要があります。
これを踏まえると、Dropbox や Amazon AWS などにこれらのファイルをすべて保存したくありません。いずれにしても、そのコストを正当化することはできません (Dropbox は 100 GB を超えるプランの価格を公開しておらず、セキュリティが懸念されます)。ただし、適切なソリューションにはいくらかのお金を費やすつもりです。たとえば、VPN サービスがソリューションの一部になるでしょうか。または、他の商用サービスはどうでしょうか。PogoPlug については聞いたことがありますが、セキュリティ上の懸念に対処できる同様のサービスがあるかどうかはわかりません。
さらに、PII や機密クライアント情報を含むファイルはすべて暗号化する必要があります。これらのファイルや、それらのファイルを含むすべてのストレージ メディアを暗号化しないと、クライアントにとって不利益になります。すべてのコピーを暗号化する必要があります。
したがって、クラウド サービスを使用することは、アップロード前にすべての情報が暗号化されている限り、本当に解決策になります。唯一の懸念は、長期的な保持可能性です。クラウド ストレージを使用する必要がありますが、実際に処理するストレージの量に応じて、独自のローカル コピーとリモート コピーを自分で作成する必要があります。
さらに...本当に 300 GB のデータを扱う場合、3G/4G 接続では対応しきれません。
スペースがあるので、すべてのファイルをノート PC にコピーできます。しかし、自宅のコンピューターとノート PC を同期する必要があり、以前、この作業があまり得意ではないことに気づきました。また、ノート PC を紛失したり盗まれたりした場合、データはノート PC 上にあります。ノート PC のドライブは SSD ですが、SSD ドライブの暗号化ソリューションは適していません。
データが保存される前に暗号化されていれば、SSD デバイスは 100% 安全ではないと主張する人は完全に馬鹿であり、二度とそのような人からの技術的なアドバイスを受けるべきではありません。
これは妥当な結論でしょうか、それともインターネットに接続されているものはすべてリスクが高いので、データをラップトップにコピーするだけ(そしておそらく SSD を HDD に交換して、バッテリー寿命とパフォーマンスを低下させる)でよいのでしょうか?
すべてのストレージ デバイスを同期するルーチンを作成する必要があるようです。解決策はあります...
I view the risks of losing a laptop to be higher. I am not an obvious hacking target online. My home broadband is cable Internet, and it seems very reliable. So I want to know the best (reasonable) way to securely access my data (from my laptop) while on the road.
ノートパソコンのストレージ デバイスが暗号化され、ファイルも暗号化されている場合、誰もが所有できるのはランダムなバイトが入ったノートパソコンだけになります。
アクセスする必要があるのはこの 1 台のコンピューターからだけですが、携帯電話の 3G/4G や WiFi、クライアントのブロードバンドなどから接続する可能性もあります。そのため、どの IP アドレスが割り当てられるかは事前にわかりません。
サードパーティの VPN サービスを使用すると、特定の IP アドレスをホワイトリストに登録でき、常に同じ IP アドレスを使用できるようになります。長くて安全なランダム パスワード、暗号化されたデータ、暗号化されたストレージ メディアを使用すると、データは 100% 安全になります。暗号化されたデータはランダムなバイトにすぎません。
サーバー上でファイルを暗号化して保存しない限り、何をするにしてもリモート クラウド ソリューションよりも安全性が低くなります。Amazon と Dropbox はサーバーのセキュリティ保護に数百万ドルを費やしていますが、1 人のユーザーであるあなたは、リリースされるすべてのカーネル更新をインストールすることはないでしょう。
それに、自分の仕事に集中してクライアントに接し、その後で Amazon や Dropbox ほど安全ではない自宅の Linux サーバーのセキュリティについて心配するべきだと思います。