失敗したSSHログイン試行を追跡するにはどうすればよいですか?


134

誰かがブルートフォースでSSHを介してUbuntu 12.04サーバーにログインしようとしているかどうかを確認したいと思います。そのような活動が行われているかどうかを確認するにはどうすればよいですか?

回答:


150

すべてのログイン試行はに記録され/var/log/auth.logます。

1.ブルートフォースのインタラクティブなSSHログインのフィルター

ターミナルを開き、以下を入力します。1ページより長い場合は、上下にスクロールできます。入力qして終了します。

grep sshd.\*Failed /var/log/auth.log | less
  • これが私のVPSの1つの実際の例です。

    8月18日11:00:57 izxvps sshd [5657]:95.58.255.62ポート38980 ssh2からのルートのパスワードの失敗
    8月18日23:08:26 izxvps sshd [5768]:91.205.189.15ポート38156 ssh2からのルートのパスワードの失敗
    8月18日23:08:30 izxvps sshd [5770]:91.205.189.15ポート38556 ssh2からの誰にもパスワードが失敗しました
    8月18日23:08:34 izxvps sshd [5772]:91.205.189.15ポート38864 ssh2からの無効なユーザーアスタリスクのパスワードの失敗
    8月18日23:08:38 izxvps sshd [5774]:91.205.189.15ポート39157 ssh2からの無効なユーザーsjobeckのパスワードの失敗
    8月18日23:08:42 izxvps sshd [5776]:91.205.189.15ポート39467 ssh2からのルートのパスワードの失敗
    

2.失敗した接続を探します(つまり、ログインが試行されていない、ポートスキャナーなどである可能性があります)。

次のコマンドを使用します。

grep sshd.*Did /var/log/auth.log | less
  • 例:

    8月5日22:19:10 izxvps sshd [7748]:70.91.222.121から識別文字列を受信しませんでした
    8月10日19:39:49 izxvps sshd [1919]:50.57.1​​68.154から識別文字列を受信しませんでした
    8月13日23:08:04 izxvps sshd [3562]:87.216.241.19から識別文字列を受信しませんでした
    8月17日15:49:07 izxvps sshd [5350]:211.22.67.238から識別文字列を受信しませんでした
    8月19日06:28:43 izxvps sshd [5838]:59.151.37.10から識別文字列を受信しませんでした
    

失敗/総当たりログイン試行を減らす方法

  • SSHをデフォルトの22から非標準ポートに切り替えてみてください
  • または、fail2banなどの自動禁止スクリプトをインストールしますfail2banをインストールする

4
SSHポートを切り替えることでどのくらいのセキュリティが得られますか(あなたが言及したように、とにかくあなたをスキャンすることはできません)。
ニックT

8
@NickTは、ログイン試行を大幅に減らすのに十分であることがわかりました。1週間に1日に何千回も試行される場合、これまでのところ、先月はポートを切り替えるだけで何もしていませんでした。
AntoineG

2
パスワードによるログインを許可しないことも役立つと思います。
リュックM

2
私はこれがubuntuであることを知っていますが、centosのようないくつかのシステムではファイルパスは/var/log/secure
lfender6445

一部のシステムは、systemctl -eu sshd
次のコマンドで

72

特にアカウントのパスワードが弱い場合、ログの監視は弱いソリューションであると主張します。総当たり攻撃は、多くの場合、1分あたり少なくとも数百のキーを試行します。総当たり攻撃をメールで送信するようにcronジョブを設定していても、サーバーに到達するまでに数時間かかる場合があります。

公開用のSSHサーバーを使用している場合、ハッキングされるずっと前に作動するソリューション  が必要です。

私は強くお勧めしfail2banます。彼らのウィキは、それが私ができる以上に良いことを述べています。

Fail2banは、ログファイル(例:)をスキャンし/var/log/apache/error_log、悪意のある兆候を示すIPを禁止します。パスワードの失敗が多すぎる、エクスプロイトを探します。一般的に、Fail2Banは、その他の任意のアクション(電子メールの送信、CD-ROMトレイの取り出しなど)も設定できます。すぐに使えるFail2Banには、さまざまなサービス(apache、curier、sshなど)用のフィルターが付属しています。

それから保護を取得するのは簡単sudo apt-get install fail2banです。

デフォルトでは、誰かが3回失敗するとすぐに、そのIPは5分間禁止されます。この種の遅延は基本的にSSHブルートフォースの試みを停止しますが、パスワードを忘れても1日を台無しにすることはありません(しかし、とにかくキーを使用する必要があります!)


6
禁止に失敗したと呼ばれるのはなぜですか?
Pacerier

9
@Pacerierまあ、いくつかの類推で、ログイン失敗は(2)禁止につながります。
セビ

2
Bwahahaあなたは私の日@Pacerierを作った。
アデルリオサンティアゴ

1
これは、最初の文から「特に」削除するように編集する必要があると思います。それはだだけで、あなたが弱いパスワードを持っている場合は問題。どんな状況でも強力なパスワードを強引に強制することはできません。また、人々が試行するのを防ぐ唯一の理由は、サーバーの負荷を減らすことです。
Abhi Beckertの

全く同感であります。とにかく、サーバーの負荷が高くなるのを防ぎます。私はミリ秒単位での試みを見てきました
ディエゴ・アンドレス・ディアス・エスピノサ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.