lastbコマンド打ったら攻撃されてるくさい履歴がやばいことになってた(特にメールサーバー周り)ので対策。
この記事のコンテンツ
fail2banをインストール
fail2banのパッケージをインストールします。
標準パッケージには存在していないので、epelリポジトリがない場合はこれも入れる。
# dnf install -y epel-release
# dnf install -y fail2ban
インストールが終わったらとりあえず起動して、設定をしていきます。
# systemctl start fail2ban
最初に起動せずに設定をしたところ、なぜか起動に失敗してしまいました。
fail2banの設定
設定ファイルは/etc/fail2ban/ディレクトリにあります。
.local拡張子で設定ファイルを追加すると記述内容を優先的に読み込んでくれるので、利用していきましょう。
jail.confを上書きするので、jail.localファイルを作成。
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# vi /etc/fail2ban/jail.local
backendの項目についてはCentOS8ではautoでいいらしい。
デフォルトでautoになっているので触らない。
[DEFAULT]
bantime = 604800
findtime = 86400
maxretry = 2
banaction = firewallcmd-ipset
[sshd]
enabled = true
[dovecot]
enabled = true
[postfix-sasl]
enabled = true
[recidive]
enabled = true
banactionの項目はfirewalldでIPを弾くように設定。
BANした際にエラーメッセージを返さない
標準の状態ではBANした際、エラーメッセージを返してしまう。
ので、これを返さずに破棄するように設定します。
/etc/fail2ban/action.d/の中のiptables-common.confに該当の設定があるので、localファイルを作成。
# cp /etc/fail2ban/action.d/iptables-common.conf /etc/fail2ban/action.d/iptables-common.local
# vi /etc/fail2ban/action.d/iptables-common.local
[Init]
blocktype = DROP
元々あったREJECTはコメントアウトしておきましょう。
設定を反映
設定を追加できたらfail2banを再起動。
# systemctl restart fail2ban
ついでにサーバー起動時に自動的に立ち上がるように設定。
# systemctl enable fail2ban
自動起動できるようになっているか確認。
# systemctl is-enabled fail2ban
動作確認
動作確認するには以下のコマンドを叩きます。
# fail2ban-client status
# fail2ban-client status 【サービス名】
BANされているIPを確認するにはこのコマンド。
# ipset --list
元気に攻撃してきていたIPたちがBANリストにぶち込まれ、活動を停止している。サラダバー。
さいごに
せっかくサーバー立ち上げて楽しく遊んでいるところに、悪意を持って攻撃してくる奴らはけしからん。
そう思ったらBANして懲らしめてやりましょう。