sshプローブの影響をどのように制限できますか?


13

私のウェブサーバーはさまざまなIPアドレスによって常に攻撃されています。5つのパスワードを試してから、IPアドレスを変更します。

ssh-keysを使用してパスワードを許可しない、リモートrootログインを許可しないなど、さまざまなロックダウンを行いました。

これらの攻撃の試みを取り除くためにできることはありますか?それに失敗した場合、私が我慢すべき具体的な防御策はありますか?


1
少し話題になっているsecurity.seへの移行のフラグ
ロリー・オルソップ

1
@Rory「オフトピックここでは」「もう少し上のトピック他の誰か」との違いはあります-それは思わかなり明確に-トピックここに
マイケルMrozek

@Michaelの心配はありません。Gillesからpingを受け取って、ここで話題になっている可能性があるので見てください。
ロリーオルソップ

@Rory OK、彼にそれについて尋ねます。彼は私が考える何かを納得させるには通常かなり良いが、{オフは、上}トピックトピック{、オフに}実際にされます
マイケルMrozek

1
私の質問は、認識を超えて変更されたようです。私の最初の質問では、すべてのサイトでブルートフォース攻撃が発生するのが一般的かどうか、つまり、それが人生の事実であるかどうかを本当に調べようとしていました。これはマッテオによって「それは実際に人生の事実です。」と答えられました。質問の2番目の部分は、防御をすることとは別にこれらの攻撃を積極的に止めるため何ができるかを尋ねることでし。特定のサイトのみがブルートフォース攻撃を受けた場合、これは関連する二次的な質問になります。ブルースはターピットのアイデアで答えました。私は実際に防御的なヒントを求めませんでした。
JW01

回答:


14

それは確かに人生の事実です。試行を数回失敗した後、攻撃しているホストを除外するツールをインストールできます。

DenyHostsはログファイルを分析し、攻撃者をファイルに自動的に追加します/etc/hosts.deny

必要に応じて構成する方法に関するドキュメントを確認してください。

更新:コメントで提案されたいくつかの重要なポイント

  • 自分がロックアウトされる可能性があるため、ツールをDenyHostsとして適切に設定してください(たとえば、フィルタリングされないマシンまたはネットワークを設定できます)

  • DenyHostsはシステムのセキュリティを向上させません。IPレベルで攻撃をフィルタリングするだけです(小さなマシンの負荷を減らし、ログファイルのサイズを減らしますが、それ以上のことはありません)


1
ああ。私は自分が特別だと思い始めていました。私をまっすぐにしてくれてありがとう。
JW01

Matteoを拡張すると、あなたの質問はほぼ正確にrefs Q1.3 denyhosts.sourceforge.net/faq.html#1_0
whoami

@whoamiリンク、素敵な要約をありがとう。別のポートのヒントを使用すると、常に私の心に浮かぶことの1つは、「選択した代替ポートが既に別のポートで使用されていないことをどのようにして知るのですか?'
JW01

1
DenyHostsおよび類似のツールには注意が必要です。これらは追加の複雑さをもたらします。つまり、独自にセキュリティの問題を引き起こす可能性があります。unix.stackexchange.com/questions/2942/
maxschlepzig

1
また、DenyHostsには注意してください。マシンからロックアウトされる可能性があります。シンプルなapt-get install denyhostsため、マシンからロックアウトされました。
ナフトゥリケイ

15

私はついていきます 、これらの命令を各間違ったパスワードSSHログインの試み〜7秒の遅延を追加します。sshdをブルートフォーススキャナー用の「ターピット」にしました。

また、変更したtarpit sshdが失敗したパスワードをログに記録していることを追加する必要があります。これは、通常のユーザーが自分のパスワードとして誤って入力したものをrootユーザーに見せるため、完全に倫理的ではないかもしれませんが、私が唯一の「本当の」ユーザーであるので、大丈夫だと思います。

「ターピット」の側面は誰の時間も無駄にしないので、標準以外のポートで実行することはありません。


また、非標準ポートを使用し、パスワードの代わりにキーを使用します。それから、彼らはほとんど望みを持たない(彼らがすべてとにかくパスワードをかけられるべきであるキーを手に入れないならば)。
カラムロジャース

これは道徳に追加すると思う純粋に「防御的」ではなく、「攻撃的」アプローチのビットを持っているので良い答えです。
-JW01

9

少数の人だけがシステムにSSHで接続する必要がある場合は、SSHを標準以外のポート(6422、8080など)に移動することを検討してください。それだけでログイン試行回数が大幅に削減されますたとえば、SSHエクスプロイトベースのワーム。


3
+1迷惑を制限するのでかなり便利ですが、これをセキュリティ対策と間違えないでください。これは、セキュリティロックよりも蚊に対するスクリーンドアに近いものです。
Piskvorは11:09

1
+1これはサーバーリソースの節約にもなります。
Xeoncross

6

@Matteoの答えに同意します。あなたが見ているのは基本的に何千ものゾンビのシステムがあなたのサーバー上で分散ブルートフォース攻撃を実行していることです。それはその上で実行されているウェブサイトがあるからです。スクリプトキディ側の最小限の労力-彼は数千のゾンビに一度に数百のウェブサイトホストでブルートフォースを試み、成功したリターンのリストをコンパイルするだけのプログラムを持っています。

同様に、/var/log/apache2/access.logファイルに「http://your.web.host/phpmyadmin/」の多くの置換が表示される場合があります。これらは、PHPMyAdminをセットアップする最も一般的な方法の自動スキャンであり、見つかった場合は既知のエクスプロイトをいくつか試行します(これは、偶然、私が個人的に設定したPMAサイトを使用してくださいとお客様に伝え始めた理由です)独自のバージョンをインストールして最新の状態に保つのを忘れるのではなく、最新の状態に保ちますが、今は接線に向かっています。

元のコマンドを送信することは別として、時間や帯域幅もかかりません。それは火であり、忘れます。

このような状況で非常に便利なもう1つのソフトウェアは、fail2banです。これは、iptablesを使用して、明らかに偽のログオンまたは他のエクスプロイトが複数回試行された後の接続試行をブロックします。


4

Fail2banの構成を試みてください。失敗した試行を検索する非常に柔軟な方法を提供し、SSH、HTTP、および共通サービスのテンプレートを備えています。

Fail2banはあなたのアクションに従ってiptablesを更新します。


3

IPTABLESを使用すると、Fail2BanやDenyHostsなどのデーモンを実行せずにトラフィックを停止できます。

#  Allows SSH connections (only 4 attempts by an IP every 3 minutes, drop the rest to prevent SSH attacks)
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

2

あなたがそれを管理できるなら、このようなものに対処する最良の方法は、VPNを使用することです。そうすれば、彼らがターゲットにできるのはVPNだけです。Webサーバーなど、「全員」がアクセスするために必要なサービスを除いて、世界中に公開されているサービスはありません。その他はすべてファイアウォールでブロックする必要があります。これで、セキュリティについて本当に心配する必要があるのは、VPNだけです。可能であれば、サーバーを管理するコンピューターの静的IPを取得し、VPNをその特定のIPアドレスにロックダウンします。これは、人々がパスワードを総当たり攻撃しようとするのを阻止する唯一の方法です。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.