今回は下記の条件で設定する
・30分間で3回アクセス失敗したIPアドレスは1時間アクセスが禁止される
・1日間に3回BANされたIPアドレスは永久BANする
・fail2ban.confは直接編集しない。jail.localを編集する
・sshdのみ有効にする ※ 今後追加予定
①jail.local作成
vi /etc/fail2ban/jail.local [DEFAULT] #■基本設定 backend = systemd ignoreip = xxx.xxx.xxx.xxx #■BAN設定 #30分間で3回アクセス失敗したIPアドレスは1時間アクセスが禁止される bantime = 3600 findtime = 1800 maxretry = 3 #■メール設定 destemail = menmashimashi@hogehoge.example.com sender = fail2ban@hogehoge.example.com #■banactionでfirewalldを使う banaction = firewallcmd-ipset banaction_allports = firewallcmd-allports #■その他 #BANされたIPアドレスのWHOIS情報をメール送信 action = %(action_mw)s #ssh [sshd] enabled = true port = ssh-2222 #■1日間に3回BANされたIPアドレスは永久BAN設定 [recidive] enabled = true bantime = -1 findtime = 86400 maxretry = 3
ignoreipには通信を許可したい(banの対象外としたい)端末のIPアドレスを記入する
sshのポート番号は2222に変更しているため、ssh-2222を指定している
(デフォルトの場合は、「port = ssh」にする)
②BANされたパケットを拒否せずに破棄する
vi /etc/fail2ban/action.d/iptables-common.local [Init] blocktype = DROP
③エラー対策
上記設定後にサービス起動するとエラーがログに出力されるため、
下記の通りファイルの末尾に追記
vi /etc/fail2ban/filter.d/proftpd.conf [Init] journalmatch = _SYSTEMD_UNIT=proftpd.service
④サービス起動、自動起動設定
systemctl start fail2ban systemctl enable fail2ban systemctl status fail2ban
ステータス確認し、正常に起動していればOK
⑤jwhoisインストール
現状だと、fail2banからのメールにはmissing whois programと記載され、
whois情報が表示されない
そのため、jwhoisをインストールする
yum install jwhois
■参考
https://qiita.com/kskiwmt/items/f871f940fa9b64b4f396
https://onoredekaiketsu.com/fail2ban-block-unauthorized-access/
https://dreamerdream.hateblo.jp/entry/2019/05/19/120000
コメント