使用 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天对日志文件进行刷新一次:

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

更改为7天刷新一次:

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

4.重启fail2ban:

# /etc/init.d/fail2ban restart

根据上述配置,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

ssh-iptables

2.解锁IP地址

1).解锁特定的IP地址
# fail2ban-client set ssh-iptables unbanip 176.49.76.47
2).解锁所有的IP地址

第一种方法:停止Fail2ban 服务
停止Fail2ban 服务,那么所有的IP地址都会被解锁。当你重启 Fail2ban,它会从/var/log/secure中找到异常的IP地址列表,如果这些异常地址的发生时间仍然在禁止时间内,那么Fail2ban会重新将这些IP地址禁止。
第二种方法:日志滚动

# logrotate -f /etc/logrotate.conf

查看/var/log/secure有无被清理,如果没有,手动清理
重启fail2ban

#/etc/init.d/fail2ban restart

重启iptables

# /etc/init.d/iptables restart

当然fail2ban可以缓解暴力密码攻击,但是请注意,这并不能保护SSH服务器避免来自复杂的分布式暴力破解组织,这些攻击者通过使用成千上万个机器控制的IP地址来绕过fail2ban的防御机制。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹宇飞丶

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值