1、环境:
centos7
2、安装fail2ban
yum -y install epel-release #epel库里就有fail2ban 直接安装epel库就可以使用 yum -y install fail2ban #安装fail2ban
3、配置fail2ban
贴上官方文档:http://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Definitions
添加
/etc/fail2ban/jail.d/jail.local
# defalut这里是设定全局设置,如果下面的监控没有设置就以全局设置的值设置。 [DEFAULT] # 用于指定哪些地址ip可以忽略 fail2ban 防御,以空格间隔。 ignoreip = 127.0.0.1/8 # ssh客户端主机被禁止的时长(默认单位为秒) bantime = 86400 # 过滤的时长(秒) findtime = 600 # 匹配到的阈值(允许失败次数) maxretry = 3 #日志修改后检测机制 backend = auto [ssh-iptables] # 是否开启 enabled = true # 过滤规则 filter = sshd # 动作 action = iptables[name=SSH, port=ssh, protocol=tcp] # 日志文件的路径 logpath = /var/log/secure # 匹配到的阈值(次数) maxretry = 3
4、常用命令
- 启动
systemctl start fail2ban
- 停止
systemctl stop fail2ban
- 开机启动
systemctl enable fail2ban
- 修改配置之后重新加载
fail2ban-client reload
- 查看生效的拦截规则
fail2ban-client status
- 查看具体拦截规则拦截情况
fail2ban-client status ssh-iptables
- 查看处理日志,日志路径是在fail2ban.conf中配置的
tail -100 /var/log/fail2ban.log
5、fail2ban-client常用命令
start | 启动fail2ban server和监狱 |
reload | 重新加载配置文件 |
stop | 暂停fail2ban和监狱 |
status | 查看运行的监控服务数量和列表 |
set loglevel | 设置日志等级,有 CRITICAL, ERROR, WARNING,NOTICE, INFO, DEBUG |
get loglevel | 获取当前日志的等级 |
set idle on|off | 设置某个监控(监狱)的状态。 |
set | 设置某个监控(监狱)可以忽略的ip |
set | 删除某个监控(监狱)可以忽略的ip |
set | 将ip加入 监控(监狱) |
set | 将ip从监控(监狱)移除 |
示例:
fail2ban-client set ssh-iptables banip 192.168.1.77