为了这个站点的安全,哥也是费劲心思,找到了一个可以监视系统日志,并根据记录的日志信息做出对应动作.比如有人暴力破解SSH,那么fail2ban就可以设置防火墙屏蔽这个人的IP,并且还能发送邮件给指定人员.
简介
Fail2ban的功能和特性
- 支持大量服务,如sshd,apache,ftp,smtp,qmail,proftpd,sasl等.
- 支持多种动作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(邮件通知)等等.
- 在logpath选项中支持通配符.
- 需要Gamin支持(注:Gamin是用于监视文件和目录是否更改的服务工具).
- 需要安装python,iptables,tcp-wrapper,shorewall,Gamin.如果想要发邮件,需安装postfix/sendmail.
更多信息访问官网
安装
fedora源中已经集成,因此只需执行命令yum install fail2ban
即可.
配置
fail2ban的相关配置文件默认在/etc/fail2ban/
目录下,其中包含许多配置文件,但只需要重点配置fail2ban.conf
与jail.conf
即可.
fail2ban.conf
是fail2ban服务的常规配置,比如日志等级,日志存放路径等配置.jail.conf
则是详细的规则配置文件.
将fail2ban.conf
文件中的loglevel
项设置为3
,info等级,logtarget
值为其日志存放的路径.
将jail.conf
文件中[DEFAULT]
全局配置下的bantime
项值改为3600
,即一个小时;maxretry
项值改为3
;接着配置子段
[ssh]
enabled = true #是否开启此项(true/false)
filter = sshd #过滤规则的名字,这个默认在/etc/fail2ban/filter.d目录下,去掉.conf即是为过滤名称
action = iptables[name=SSH, port=22, protocol=tcp] # 达到触发条件后的动作名称.对应的配置文件在/etc/fail2ban/action.d目录中,与filter.d类似
sendmail-whois[name=SSH, [email protected], sender=fail2ban@localhost] # 可配置多个动作,此处为发送邮件通知自己,但必须已经装有SMTP服务才能发送成功.
logpath = /var/log/fail2ban-ssh.log #该项的日志存放路径
最后将fail2ban设置为开机启动即可.