web-dev-qa-db-ja.com

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

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

132
Ivan

すべてのログイン試行は/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 
     Aug 18 23:08:30 izxvps sshd [5770]:91.205.189.15ポート38556 ssh2 
     Aug 18 23:08:34 izxvpsからの誰もがパスワードの失敗sshd [5772]:91.205.189.15ポート38864からの無効なユーザーアスタリスクのパスワードに失敗しましたssh2 
     Aug 18 23:08:38 izxvps sshd [5774]:91.205.189.15ポート39157 ssh2 
     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 
     Aug 10 19:39:49 izxvps sshd [1919]から識別文字列を受信しませんでした:識別文字列を受信しませんでしたfrom 50.57.1​​68.154 
     Aug 13 23:08:04 izxvps sshd [3562]:87.216.241.19 
     Aug 17 15:49:07 izxvps sshd [5350]:から識別文字列を受信しませんでした211.22.67.238 
     Aug 19 06:28:43 izxvps sshd [5838]:59.151.37.10 
    から識別文字列を受信しませんでした。

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

149
ish

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

公開用のSSHサーバーがある場合は、needキックインするソリューションが必要ですlongハッキングされる前に。

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

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

それから保護を取得するのは、Sudo apt-get install fail2banと同じくらい簡単です。

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

70
Oli