sshを備えた個人用サーバーをインターネットに対して開くことはどれほど危険ですか?


25

タイトルの継続は「インターネットセキュリティに関する知識が限られている間」です。

私は最近、個人用のgitリポジトリとして使用することを目的に、debianを実行するローエンドコンピューターを備えた小さなサーバーをセットアップしました。私はsshを有効にしましたが、ブルートフォース攻撃などに苦しむその迅速さに驚きました。次に、これは非常に一般的であり、これらの攻撃を防ぐための基本的なセキュリティ対策について学びました(serverfaultでの質問と重複の多くは、これに対処します。たとえば、これまたはこれを参照してください)。

しかし、今、私はこれすべてが努力の価値があるかどうか疑問に思っています。私は自分のサーバーを主に楽しみのためにセットアップすることに決めました。gitbucket.org、bettercodes.orgなどが提供するようなサードパーティのソリューションに頼ることができます。楽しみの一部はインターネットセキュリティについて学ぶことですが、専門家になるのに十分な時間を費やし、私が正しい予防策を講じたことをほぼ確実にしました。

このおもちゃプロジェクトを引き続き使用するかどうかを判断するために、実際にリスクを負うことについて知りたいと思います。たとえば、ネットワークに接続されている他のコンピューターもどの程度脅威になりますか?これらのコンピューターの一部は、Windowsを実行しているものよりもさらに知識の少ない人々によって使用されています。

強力なパスワード、sshのルートアクセスの無効化、sshの非標準ポート、パスワードログインの無効化、fail2ban、denyhosts、iptablesルールのいずれかを使用するなどの基本的なガイドラインに従うと、実際に問題が発生する可能性はどれくらいですか?

別の言い方をすれば、恐れる必要のある大きな悪いオオカミはいますか、それともスクリプトの子供たちを追い払うことについてほとんどですか?


$ TECHNOLOGYセキュリティの専門家になる時間や意欲がないと言ったとき、頭に釘を打ったと思います。これが、ホストされたソリューションを使用する主な理由です。社内対ホスティングを評価する際の唯一の他の一般的な議論はコストです。githubなどは無料であるため、gitリポジトリの実行方法に関する知識を得るために、本質的に個人的な時間を放棄しています。個人的な時間で何をすべきかを伝えることはできませんが、プロの状況ではこれは意味がありません。(注意事項:複雑な状況にはさらに変数があります)。
クリスS

1
独自のサーバーを実行する場合は、実行するすべてのサービスの更新とセキュリティの脆弱性を定期的にチェックすることも、todoリストに追加してください。設定するだけでは十分ではありません。

2つの単語:@Stephaneが言った公開鍵keyboard-interactive認証を無効にし、認証のみを使用しますpubkey
kostix

回答:


14

IMO SSHは、オープンなインターネットで聴くのに最も安全なものの1つです。本当に心配な場合は、非標準のハイエンドポートでリッスンしてください。ボックスと実際のインターネットの間に(デバイスレベルの)ファイアウォールがあり、SSHにポート転送を使用するだけですが、それは他のサービスに対する予防措置です。SSH自体は非常に堅固です。

私がしている人々が(タイムワーナーケーブルに開く)時折私の自宅のSSHサーバを打っていました。実際の影響はありませんでした。

SSHをより安全にするためにできるいくつかの追加事項は、ホームマシンの同じIPアドレスからの繰り返し試行を防ぐことです。

MaxStartups 2:30:10

/ etc / ssh / sshd_configで、正常にログインする前に連続して作成できる接続の数を制限します。


私のインターネットサービスプロバイダーは、sshのポートを開いたときに見たパラメーターを持つファイアウォールを提供しています。それはあなたが参照するものですか?
アルフレッドM.

2
ISPによってはダムデバイスが提供されたり、ファイアウォールが組み込まれたルーターが提供されたりする場合があります。どんな予防策を講じても、汎用OSをインターネットに直接置くことは決して良い考えではないと言っているだけです。あなたはあなたと厄介な人の間に何らかのハードウェアデバイス(またはDD-WRTのようなもの)が必要です。
TheFiddlerWins

1
別の回答に記載されているように公開鍵認証を設定し、/ etc / ssh / sshd_configでChallengeResponseAuthenticationとPasswordAuthenticationをオフにします。
ランディオリソン

これは愚かな質問であることは知っていますが、インターネットから(sshまたはブラウザ経由で)サーバーにアクセスするためにドメインを購入する必要がありますか?
TheRookierLearner

@TheRookierLearner-いいえ、ISPから提供されたIPアドレスを使用できます。ただし、ホームネットワークの構成によっては、PNATと呼ばれるもの(ほとんどの人は単にNATと呼ぶ)によってすべてのデバイスで共有できます。あなたが大多数の人々のようであれば、インターネットからアクセスしたい特定のデバイスの「NATされた」IPを把握する必要があります(システム上のifconfig / ipconfigだけで、それは10.xxx、172.16です。 xxまたは192.168.xxアドレスは、これらの数値に
関心

10

SSHを使用した公開鍵認証システムのセットアップは本当に簡単で、セットアップに約5分かかります

すべてのSSH接続で強制的に使用する場合、LOTをセキュリティインフラストラクチャに投資することなく、システムの回復力をほぼ最大限に高めることができます。率直に言って、それは非常にシンプルで効果的であり(200のアカウントを持たない限り-厄介になります)、それを使用しないことは公の犯罪であるはずです。


3
SSH接続をセットアップした後に強制的に公開鍵認証を使用するには、/ etc / ssh / sshd_configでChallengeResponseAuthenticationとPasswordAuthenticationをオフにしてください。私はこれを一度忘れましたが、残念に思います(一度だけ、二度と二度と)。
ランディオリソン

8

また、SSHで世界に公開されている個人用gitサーバーも実行しています。また、あなたと同じ総当たり攻撃の問題があるため、状況に共感できます。

The FiddlerWinsはすでに、パブリックにアクセス可能なIPでSSHを開くことの主なセキュリティの影響に対処していますが、ブルートフォース攻撃に対する最良のツールIMOはFail2Banです -認証ログファイルを監視し、侵入の試みを検出し、ファイアウォールルールを追加しますマシンのローカルiptablesファイアウォール。禁止までの試行回数と禁止の期間(デフォルトは10日間)の両方を構成できます。


以前の投稿に対する私のコメントが述べたように、それは私のNASが自宅で使用しているものであり、数か月後、試行回数は大幅に低下しました。
mveroone

2

これを処理する別の方法は、VPNをセットアップすることです。ホームサーバーのSSHポートに直接接続するのではなく、最初にVPNに接続してから、暗号化された安全な接続ですべてのトラフィックを実行します。

これを処理する理想的な方法は、VPNエンドポイントを組み込んだファイアウォールを使用することですが、VPNサーバーとして機能するようにWindowsコンピューターをセットアップすることもできます。

次に例を示します。

http://www.howtogeek.com/135996/

ここで、適切なセキュリティ構成には、内部ネットワークから隔離されたパブリック(またはセミパブリック)コンピューターが関係することに注意してください。Webサーバー、または公的に利用可能なサービスをホストするコンピューターは、自宅またはオフィスの安全なネットワークの外部に配置する必要があります。2つのルーターを使用して、ユーザーとインターネットの間にセーフゾーンまたはDMZを作成します。

このように、サーバーがハッキングされた場合、他のコンピューターを攻撃するためのベクターとして使用することはできません。

したがって、セットアップは次のようになります。

DMZ設定


小さい画像で申し訳ありません...投稿を編集する方法がわかりません。
TomXP411

2

答えは非常に良いです、私は2つだけをお勧めします:

  • キー認証システムのみによるアクセスを検討する
  • Denyhostsを使用:無効な認証でサーバーにアクセスしようとするホストを禁止します
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.