如何在CentOS 8和Fedora 31/30上安装Fail2Ban

时间:2019-05-29 14:47:30  来源:igfitidea点击:

本教程将在CentOS、RHEL 8和Fedora系统上安装和配置Fail2ban。
在本文中,我们还将了解如何在fail2ban下添加要监视的任何特定服务。

步骤1 -安装Fail2ban

首先,安装 epelrelease包, 以便在CentOS 8系统上配置EPEL yum存储库。
然后,使用以下命令安装Fail2ban rpm包。

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]部分中进行更改。

[DEFAULT]

# "ignoreip" can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban
# will not ban a host which matches an address in this list. Several addresses
# can be defined using space (and/or comma) separator.
ignoreip = 127.0.0.1/8 192.168.1.0/24

# "bantime" is the number of seconds that a host is banned.
bantime = 60m

# A host is banned if it has generated "maxretry" during the last "findtime" seconds. as per below
# settings, 2 minutes
findtime = 5m

# "maxretry" is the number of failures before a host get banned.
maxretry = 5

步骤3 -保护SSH/SFTP

完成默认配置后,更新 [ssh-iptables]部分如下所示。

[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=22, protocol=tcp]
           sendmail-whois[name=SSH, dest=root, Hyman@theitroad, 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, Hyman@theitroad]
logpath  = /var/log/vsftpd.log
maxretry = 5
bantime  = 1800

第5步-重启服务并测试

完成所有更改后,保存文件并使用以下命令重新启动Fail2ban服务。

sudo systemctl start fail2ban.service
sudo systemctl enable fail2ban.service

出于测试目的,我尝试使用来自另一台机器的错误凭据进行SSH。
经过三次错误的尝试,Fail2ban通过iptables用拒绝该IP的ICMP。

对于仅使用SSH的系统,在进行这些测试之前,请确保从另一个IP进行SSH访问。