(152) OpenSSHでブルートフォース攻撃対策

投稿者: | 2024年1月7日

102 views

【1】やりたいこと

SSH接続でパスワード総当たり攻撃をされたときに、遮断したい。

つまり…
複数回連続して認証に失敗した場合、一定時間だけ認証要求を遮断したい。

【2】やってみる

1) 使用するツール

今回は Ubuntu16上で fail2ban を使用する。
fail2banは、sshdだけでなく sendmailや mysqldなどの認証にも対応している。

(1) fail2banの特徴

・設定ファイルで指定したログファイルを監視する。
・認証失敗回数が指定回数に達したら、firewallを設定変更して指定IPアドレスとの通信を遮断する。
・認証失敗回数は、IPアドレスごとに区別して管理している。 → 認証失敗が複数の相手から輻輳しても問題なし。
・指定時間が経過したら、firewallを設定変更して指定IPアドレスとの通信遮断を解除する。

2) fail2banの実行手順

(1) fail2banをインストールする。

$ sudo apt-get install fail2ban

(2) fail2banの設定ファイルを編集する。

/etc/fail2ban/jail.local を編集する。

$ sudo vi /etc/fail2ban/jail.local

[sshd]セクションを探し、以下を記述する。

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log  # ←このログファイルを監視対象とし、
maxretry = 3                 # 3回連続で認証に失敗したら、
bantime = 1h                 # 1[hour] だけ同じIPアドレスからの認証要求を受け付けない。

(3) fail2banを再起動する。

$ sudo systemctl restart fail2ban

念のためにステータスも見ておく。

$ sudo systemctl status fail2ban
 fail2ban.service - Fail2Ban Service
   Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2024-01-07 04:42:02 JST; 6s ago
     Docs: man:fail2ban(1)
  Process: 4127 ExecStop=/usr/bin/fail2ban-client stop (code=exited, status=0/SUCCESS)
  Process: 4128 ExecStartPre=/bin/mkdir -p /var/run/fail2ban (code=exited, status=0/SUCCESS)
 Main PID: 4135 (fail2ban-server)
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/fail2ban.service
           └─4135 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

Jan 07 04:42:02 intel-nuc systemd[1]: Starting Fail2Ban Service...
Jan 07 04:42:02 intel-nuc systemd[1]: Started Fail2Ban Service.
Jan 07 04:42:02 intel-nuc fail2ban-server[4135]: Server ready

カテゴリー: SSH

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です