このチュートリアルは、CentOS、RHEL 8、およびFedoraシステムにFail2banをインストールして構成するのに役立ちます。この記事では、fail2banで監視する特定のサービスを追加する方法についても学習します。
ステップ1–CentOS8にFail2banをインストールする
まず、 epel-releaseをインストールします CentOS8システムでEPELyumリポジトリを構成するためのパッケージ。その後、次のコマンドを使用してFail2banrpmパッケージをインストールします。
sudo dnf install epel-release sudo dnf install fail2ban
ステップ2–Fail2banを構成する
Fail2banは、構成ファイルを / etc / fail2banの下に保持します ディレクトリ。ただし、このファイルのコピーを jail.localとして作成する必要があります 。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo vi /etc/fail2ban/jail.local
次に、 jail.localで必要な変更を加える必要があります 禁止ルールを作成するファイル。このファイルをお気に入りのエディターで編集し、 [DEFAULT]で変更を加えます セクション。
Shell
12345678910111213141516 | [DEFAULT]#「ignoreip」は、IPアドレス、CIDRマスク、またはDNSホストのリストにすることができます。 Fail2ban#は、このリストのアドレスに一致するホストを禁止しません。複数のアドレス#はスペース(および/またはコンマ)を使用して定義できますseparator.ignoreip =127.0.0.1/8 192.168.1.0/24# "bantime"は、ホストが禁止される秒数です。bantime=60m#ホストは最後の「findtime」秒の間に「maxretry」を生成した場合は禁止されます。以下の#設定に従って、2 minutesfindtime =5m#「maxretry」は、ホストが禁止されるまでの失敗の数です。maxretry=5 |
ステップ3– SSH/SFTPを保護する
デフォルトの設定が完了したら、同じファイルjail.localに移動し、 [ssh-iptables]を更新します。 以下のセクション。
[ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=22, protocol=tcp] sendmail-whois[name=SSH, dest=root, [email protected], sendername="Fail2Ban"] logpath = /var/log/secure maxretry = 3
ステップ4–FTPを保護する
FTP(vsFTPd)サーバーを保護しましょう。以下の [vsftpd-iptables]のエントリを見つけてください セクションを作成し、以下のように変更します。 vsFTPdを使用していない場合は、このセクションをスキップできます。
[vsftpd-iptables] enabled = true filter = vsftpd action = iptables[name=VSFTPD, port=21, protocol=tcp] sendmail-whois[name=VSFTPD, [email protected]] logpath = /var/log/vsftpd.log maxretry = 5 bantime = 1800
ステップ5–サービスを再開してテストする
すべての変更を行った後、ファイルを保存し、次のコマンドを使用してFail2banサービスを再起動します。
sudo systemctl start fail2ban.service sudo systemctl enable fail2ban.service
テストの目的で、別のマシンから間違った資格情報を使用してSSHを試しました。 3回の間違った試行の後、Fail2banはICMPを拒否してiptablesを介してそのIPをブロックしました。以下のようにIPアドレスをブロックした後、iptablesでルールを確認できます。 SSHのみのシステムの場合、これらのテストを行う前に、別のIPからSSHにアクセスできることを確認してください。