前言

fail2ban可以监视你的系统日志,然后匹配日志的错误信息执行相应的屏蔽动作。网上大部分教程都是关于fail2ban+iptables组合,考虑到CentOS 7已经自带Firewalld,所以这里我们也可以利用fail2ban+Firewalld来防CC攻击和SSH爆破。

准备工作

1、检查 Firewalld 是否启用

启用Firewalld后会禁止所有端口连接,因此请务必放行常用的端口,以免被阻挡在外,以下是放行SSH端口(22)示例,供参考

#放行22端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#重载配置
firewall-cmd --reload
#查看已放行端口
firewall-cmd --zone=public --list-ports

2、安装 fail2ban

#CentOS内置源并未包含fail2ban,需要先安装epel源
yum -y install epel-release
#安装fial2ban
yum -y install fail2ban

jail.conf为主配置文件,相关的匹配规则位于filter.d目录
3、配置规则

"新建jail.local文件

[DEFAULT]
ignoreip = 127.0.0.1/8          #白名单
bantime  = 86400                #锁定多少秒
findtime = 600                  #多少分钟内失败多少次锁定
maxretry = 5                    #600秒内失败5次锁定
banaction = firewallcmd-ipset   #屏蔽IP所使用的方法,这里使用firewalld
action = %(action_mwl)s         #触发规则后的选择行为

[sshd]
enabled = true
filter  = sshd                  #使用内置的规则sshd
port    = 22
action = %(action_mwl)s
logpath = /var/log/secure       #监控系统登录失败日志


#其他配置
# 设置SYSLOG套接字文件路径,若设置为"auto"则Fail2ban会使用自动使用默认的SYSLOG套接字文件。
# 当"logtarget=SYSLOG"时使用此项。
#socket = /var/run/fail2ban/fail2ban.sock
# 设置服务端套接字文件路径。
#pidfile = /var/run/fail2ban/fail2ban.pid
# 设置服务端进程文件路径。用于记录进程PID信息。
#dbfile = /var/lib/fail2ban/fail2ban.sqlite3
fail2ban-client status sshd #查看已被禁止的IP
IP禁止信息.png
文章参考:
腾讯社区参考
CDSN参考

标签: 备忘录, LNMP

添加新评论