当前位置: 首页 > 工具软件 > Fail2ban > 使用案例 >

centos7安装fail2ban

缑智敏
2023-12-01

安装fail2ban和iptables

yum install -y  iptables iptables-services fail2ban

文件路径
fail2ban的配置文件路径:/etc/fail2ban
fail2ban安装目录:/usr/share/fail2ban
日志文件:/var/log/fail2ban.log
达到阈值之后的执行的动作的配置文件: action.d/
包含所有的过滤规则:filter.d/

ssh防护规则

cat /etc/fail2ban/jail.d/jail.local
#defalut这里是设定全局设置,如果下面的监控没有设置就以全局设置的值设置。
[DEFAULT]
# 用于指定哪些地址ip可以忽略 fail2ban 防御,以空格间隔。
#ignoreip = 127.0.0.1/8
# 客户端主机被禁止的时长(默认单位为秒),-1为永久封禁
bantime  = -1
# 过滤的时长(秒)
findtime  = 600
# 匹配到的阈值(次数)
maxretry = 3

[ssh]
# 是否开启
enabled  = true
# 过滤规则
filter   = sshd
# port=ssh为默认协议端口22,如果更改了ssh服务的端口号,需要在这里设置对应的端口号,否则配置不生效
action   = iptables[name=SSH, port=ssh, protocol=tcp]
# 日志文件的路径
logpath  = /var/log/secure
# 匹配到的阈值(次数)
maxretry = 3

启动fail2ban和iptables

systemctl   start   fail2ban
systemctl   start   iptables
systemctl   enable   fail2ban
systemctl   enable   iptables

查看当前被禁止登陆的ip

fail2ban-client status ssh

fail2ban-client使用命令:
start——启动fail2ban server和监狱
reload——重新加载配置文件
stop——暂停fail2ban和监狱
status——查看运行的监控服务数量和列表
set loglevel——设置日志等级,有 CRITICAL, ERROR, WARNING,NOTICE, INFO, DEBUG
get loglevel——获取当前日志的等级
set idle on|off——设置某个监控(监狱)的状态。
set addignoreip ——设置某个监控(监狱)可以忽略的ip
set delignoreip ——删除某个监控(监狱)可以忽略的ip
set banip ——将ip加入 监控(监狱)
set unbanip ——将ip从监控(监狱)移除
例:

fail2ban-client   set  ssh  unbanip 1.1.1.1

nginx防护规则

在fail2ban中添加防护规则

vim /etc/fail2ban/jail.d/jail.local
[http-ddos]
enabled = true
port = http,https
filter = http-ddos
logpath = /var/logs/access.log
maxretry = 100
findtime = 1
0
bantime = 12h
action = iptables[name=HTTP,port=http,protocol=tcp]

新建监控nginx日志规则的文件

vim /etc/fail2ban/filter.d/http-ddos.conf
[Definition]
failregex = <HOST> -.*- .*HTTP/1.* .* .*$
ignoreregex =

重启fail2ban,如果nginx前端有cdn加速或者负载均衡可能导致规则失效

参考文献:

https://blog.csdn.net/zhuxiongyin/article/details/97662740

https://www.cnblogs.com/justdba/p/7231903.html

 类似资料: