centos使用 fail2ban 防御服务器被SSH暴力攻击

fail2ban 是 Linux 上的一个著名的入侵保护的开源框架,它会监控多个系统的日志文件(例如: /var/log/secure )并根据检测到的任何可疑的行为自动触发不同的防御动作。事实上,fail2ban 在防御对SSH服务器的暴力密码破解上非常有用。

一、环境检查

本环境为centos6.8 final 
1.Python版本必须大于2.4.3 
2.防火墙iptables必须开启

二、安装Fail2ban

# yum install -y fail2ban
# chkconfig fail2ban 35 on
  •  

三、配置Fail2ban

1.配置jail.conf

# vi /etc/fail2ban/jail.conf
  •  

在配置文件尾部追加以下内容:

[ssh-iptables] 
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]          
#系统日志目录
logpath  = /var/log/secure
##忽略指定IP
#ignoreip = 192.168.99.1
##用于指定哪些地址可以忽略 fail2ban 防御
ignoreip = 192.168.99.0/24
##ssh客户端允许失败的次数 
maxretry = 10
##主机被禁止的时长(秒)
bantime = 604800
  •  

2.修改iptables的规则

# vi /etc/fail2ban/action.d/iptables-multiport.conf 
修改:blocktype = REJECT –reject-with icmp-port-unreachable (可以注释掉) 
blocktype = DROP

3.修改fail2ban日志循环

修改日志记录,增大保存时间

# vi /etc/logrotate.d/fail2ban
  • 1

默认为1天对日志文件进行刷新一次:

/usr/bin/fail2ban-client flushlogs  1>/dev/null || true
  • 1

更改为7天刷新一次:

/usr/bin/fail2ban-client flushlogs  7>/dev/null || true
  • 1

4.重启fail2ban:

# /etc/init.d/fail2ban restart
  • 1

根据上述配置,fail2ban会自动禁止在最近10分钟内有超过10次访问尝试失败的任意IP地址。一旦被禁,这个IP地址将会在一周内一直被禁止访问 SSH 服务。

四、检查fail2ban状态&解禁IP地址

1.检查fail2ban状态

使用参数’ping’来运行fail2ban-client 命令。 如果fail2ban服务正常运行,可以看到“Server replied:pong”作为响应。

# fail2ban-client ping
Server replied: pong
  •  
# fail2ban-client status
Status
|- Number of jail:      1
`- Jail list:   ssh-iptables
  •  
# fail2ban-client status ssh-iptables
展开阅读全文

没有更多推荐了,返回首页