使用fail2ban防止ssh恶意攻止

昨天写了一下使用iptables拒绝恶意攻击,其实除了使用iptables外,还有一个方法也是可以使用的,而且效果不错,那就是fail2ban。
安装:yum -y install fail2ban
如果提示找不到的话,先yum -y install epel-release 安装一下这个源。
安装过后,编辑配置文件:

vim /etc/fail2ban/jail.conf

找到[ssh-iptables] 这一段

[ssh-iptables]

enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp] #在iptables INPUT 链中的信息
sendmail-whois[name=SSH, dest=admin@163.com, sender=admin@163.com, sendername="Fail2Ban"]

#dest是配置受到攻击后发送警报邮件的地址,sender配置发送人邮件可以随便写,sendername配置发件人可以不改
logpath = /var/log/secure #日志存放位置
maxretry = 5 #尝试登录次数,如果ssh登录错误超过5次,禁止在bantime设置的时间内再次尝试登录了

如果登录超过5次都失败的话,在bantime设置的时间内,用户是无法登录的。默认bantime的设置是300秒,也就是5分钟,我设置的是3600秒,也就是1小时。
如果你想让某些IP不受fail2ban的控制,可以修改ignoreip 这个参数。
:wq 保存后。启动服务

service fail2ban start

设置服务开机启动

chkconfig fail2ban on

在开启服务后你的邮箱就可以收到一封fail2ban服务启动的邮件,相应的停止服务也会收到邮件
开启服务邮件 正文

Hi,
The jail SSH has been started successfully.
Regards,
Fail2Ban

停止服务邮件正文

Hi,
The jail SSH has been stopped.
Regards,
Fail2Ban

拒绝登录邮件正文

Hi,
The IP 222.186.56.101 has just been banned by Fail2Ban after
5 attempts against SSH.
Here is more information about 222.186.56.101:
missing whois program
Regards,
Fail2Ban


如果你仔细的查看配置文件就会发现,fail2ban 不只能防止ssh的恶意攻击,还有好多项目可以配置如:
pop3, nagios,mysql, asterisk, php, vsftp, apache等的登录都可以进行设置,只不过默认的只有ssh的enabled的参数是true,其他项目的都是false
由于我这台机器是跳板机,通过路由器设置对外开放的只是22端口因此默认的就够用了。

更多Linux方面的资料请访问:http://www.aminglinux.com/bbs/?fromuid=4297
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页