1. 首页
  2. 系统运维
  3. Linux

CentOS 6中fail2ban安装和SSH防暴力破解攻击配置

fail2ban 是 Linux 上的一个著名的入侵保护的开源框架,它会监控多个系统的日志文件(例如:/var/log/auth.log 或者 /var/log/secure),并根据检测到的任何可疑的行为自动触发不同的防御动作。在防御SSH暴力密码破解方面,您可以使用denyhost程序。它也是通过分析系统日志文件,然后把可疑的IP添加到/etc/hosts.deny来实现保护。fail2ban的功能更加强大,它不但可以防SSH暴力破解,还可以防ftp、mysql等服务。fail2ban直接通过iptables防火墙来实现阻止登录。

安装

默认centos源中没有fail2ban软件,需要先添加源,然后再安装。

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install fail2ban

配置

全局配置

复制jail.conf文件到jail.local。

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

编辑jail.local

vi /etc/fail2ban/jail.local

可以修改如下几个配置

[DEFAULT]
# 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名
# 用于指定哪些地址可以忽略 fail2ban 防御
ignoreip = 127.0.0.1 172.31.0.0/24 10.10.0.0/24 192.168.0.0/24
# 客户端主机被禁止的时长(秒)
bantime = 86400
# 客户端主机被禁止前允许失败的次数 
maxretry = 5
# 查找失败次数的时长(秒)
findtime = 600

根据上述配置,fail2ban会自动禁止在最近10分钟内有超过5次访问尝试失败的任意IP地址。禁止时间是24个小时。

SSH防护配置

在/etc/fail2ban/jail.d目录创建sshd.local防护配置文件,内容添加如下:

# vi /etc/fail2ban/jail.d/sshd.local 

[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
#           sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]
logpath  = /var/log/secure
maxretry = 5

这里可以单独设置maxretry等参数,优先级比全局配置jail.local中的高。

这里如果ssh端口不是默认的22,那么需要修改port=ssh为port=xxx 。

启动

配置完成后启动服务,并且添加开机自动启动。

chkconfig --level 23 fail2ban on
service fail2ban start

启动后查看iptables,如果看到类似如下说明服务已经正常在运行了。

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-SSH tcp -- anywhere anywhere tcp dpt:EtherNet/IP-1

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain f2b-SSH (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere

完成。

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code