Fail2banとは
Fail2banはログファイル( / var / log / auth.log)をスキャンし、失敗したログイン試行が多すぎるIPアドレスを禁止します。
Fail2ban公式サイト / GitHub
インストール
$ dnf install fail2ban
設定
すべての.confファイルは、.localという名前のファイルで上書きできます。 .confファイルが最初に読み取られ、次に.localが読み取られ、その後の設定が以前の設定を上書きします。 したがって、.localファイルには、対応する.confファイルにすべてを含める必要はなく、オーバーライドしたい設定のみを含める必要があります。
Manual08-Fail2ban
ログレベルの設定
設定ファイルの/etc/fail2ban/fail2ban.confを直接編集せずに、/etc/fail2ban/fail2ban.localを新規作成。
# vi /etc/fail2ban/fail2ban.local
ログレベルを必要最小限にするため追加。
[Definition] loglevel = NOTICE
ルールの編集
設定ファイルの/etc/fail2ban/jail.confを直接編集せずに、/etc/fail2ban/jail.localを新規作成。
# vi /etc/fail2ban/jail.local
新規追加。
[DEFAULT] # 1日(findtime)に3回失敗アクセスがあったら1日(bantime)BANする設定 bantime = 1d findtime = 1d maxretry = 3 # # ACTIONS # backend = systemd #メール通知時の設定 destemail = info@example.com sender = fail2ban@example.com banaction = firewallcmd-ipset banaction_allports = firewallcmd-allports # # JAILS # #SSHの設定 [sshd] enabled = true port = 2222 # ポートを変えていたら追記する #Postfixの設定 [postfix-sasl] enabled = true action = %(action_mw)s # BANされたIPアドレスのWHOIS情報をメール送信
BANされたパケットをドロップ(破棄)する設定
iptables-common.localを新規作成。
# vi /etc/fail2ban/action.d/iptables-common.local
新規追加。
[Init] blocktype = DROP
Fail2ban起動
# systemctl start fail2ban
Fail2banの自動起動をオン。
# systemctl enable fail2ban
確認
# fail2ban-client status postfix-sasl
Status for the jail: postfix-sasl |- Filter | |- Currently failed: 2 | |- Total failed: 556 | `- Journal matches: _SYSTEMD_UNIT=postfix.service `- Actions |- Currently banned: 15 |- Total banned: 25 `- Banned IP list: 45.95.xxx.xx 94.102.xx.xxx 212.70.xxx.xx ......
BANの解除
fail2ban-client set ルール名 unbanip IPアドレス
IPアドレス「94.102.xx.xxx」を「sshd」のBANから解除する場合。
# fail2ban-client set sshd unbanip 94.102.xx.xxx
指定IPアドレスを手動でBAN
fail2ban-client set ルール名 banip IPアドレス
バージョン確認
# fail2ban-client version 0.11.1