SSH攻撃はこんなに来る

Linux

はじめに

Linuxサーバをインターネットに公開すると、想像以上に多くのSSHログイン試行が行われていることに気付きます。
本記事では、実際の auth.log をもとに攻撃の実態を確認し、対策として fail2ban を導入するまでの流れをまとめます。


検証環境

  • OS:Ubuntu
  • サーバ:さくらVPS
  • SSHポート:2222番

auth.logを確認してみる

まずはログを確認します。

sudo tail -f /var/log/auth.log

すると以下のようなログが確認できました。

Failed password for invalid user admin from 188.166.xxx.xxx port 50704 ssh2
Failed password for invalid user test from 188.166.xxx.xxx port 50704 ssh2

ログから分かること

このログから以下が読み取れます。

  • 存在しないユーザ名でログインを試行している
  • 同一IPから連続してアクセスしている
  • ブルートフォース攻撃(総当たり)の可能性が高い

攻撃元IPを調査

特定のIPを調査するには以下のコマンドを使用します。

sudo grep "188.166.xxx.xxx" /var/log/auth.log

これにより、そのIPからの試行回数や傾向を把握できます。


対策①:パスワード認証の無効化

まず最も重要な対策です。

sudo vim /etc/ssh/sshd_config

以下を設定:

PasswordAuthentication no

その後SSH再起動:

sudo systemctl restart ssh

対策②:fail2banの導入

不正アクセスを自動でブロックするために fail2ban を導入します。

インストール

sudo apt install fail2ban

ステータス確認

sudo fail2ban-client status sshd

実行結果例:

Currently banned: 1
Banned IP list: 188.166.xxx.xxx

fail2banの効果

fail2banを導入することで:

  • 一定回数以上の失敗でIPを自動BAN
  • 手動対応不要
  • サーバの安全性向上

まとめ

今回の検証で、公開サーバには常に攻撃が行われていることが分かりました。

そのため以下の対策は必須です:

  • パスワード認証の無効化
  • fail2banの導入
  • ログの定期的な確認

所感

実際にログを確認することで、教科書だけでは分からない「現場のリアル」を感じることができました。
今後は、侵入後のログ分析やフォレンジックにも取り組んでいきたいと考えています。