> CentOS > CentOS安全 >

CentOS VPS安装Fail2ban

Fail2ban是用于防止主机口令被暴力破解的一个Linux系统下的工具。我在VPS上用lastb命令看了下,只见屏幕刷了好长时间,一直有人在扫弱口令,把IP一个个手工添加到iptables阻止连接ssh太麻烦,用这个工具自动过滤。

1、CentOS安装Fail2ban要先安装EPEL源:

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum install fail2ban

2、fail2ban基本的工作原理
fail2ban → 监视相应的log → 连续出现多次错误信息 → 封锁IP(使用iptables)→ 根据设定间隔时间,自动清除iptables规则。fail2ban的配置文件在/etc/fail2ban目录内。

/etc/fail2ban/fail2ban.conf fail2ban本身设置
/etc/fail2ban/jail.conf fail2ban全局设置
/etc/fail2ban/filter.d/ 内为fail2ban的正则表达式过滤规则
/etc/fail2ban/action.d/ 内为fail2ban触发后行动的脚本

3、fail2ban.conf说明

vim /etc/fail2ban/fail2ban.conf

内有三行定义内容:

[Definition]
loglevel = 3 #定义日志输出级别
logtarget = SYSLOG #定义日志目标,由syslog服务管理
socket = /var/run/fail2ban/fail2ban.sock #设置socket文件,用于和后台的守护进程通讯

修改:

logtarget = /var/log/fail2ban.log

4、编辑全局配置文件
这里设置为,如果同一个IP在10分钟内登录错误5次就ban IP一个星期。

vim /etc/fail2ban/jail.conf

找到[DEFAULT]区块,修改以下内容:

bantime = 604800 #设置IP禁止时间(秒),值为-1,代表永远禁止
findtime = 600 #设置在多少时间(秒)范围内达到最大尝试次数

找到[ssh-iptables]区块,修改以下内容:

maxretry = 5 #设置ssh允许尝试次数

5、启动fail2ban

service fail2ban start

6、设置开机自启动

chkconfig fail2ban on

7、看看效果

PS:除了iptables,还有其它可以用于fail2ban的软件
shorewall:iptables防火墙配置工具
TCP Wrapper:限制连接来源的工具
Gamin:实时监视文件或文件夹变动的工具

参考资料:
http://www.fail2ban.org/wiki/index.php/MANUAL_0_8
http://kangxiaowei.com/archives/7958.html
http://www.mygill.com/679.html
http://th9988.blog.163.com/blog/static/4888243220118215413737/

(责任编辑:IT)