最近客户的主机一直被入侵,后来发现是因为骇客用暴力破解法,去试 ftp 的帐号及密码,有的客户帐号密码设的太简单一下就被破解了,被放了后门程式及发广告信程式,更糟的是放了攻击程式去攻别人的主机,真的是很头大
后来我上网找到一个不错的工具程式 fail2ban ,他是利用 ftp 的 log 档来侦测相同 ip 错误登入的次数,只要超过设定的次数(内定3次),就会自动用 iptable 或 ipfw 把那个 ip 封锁掉,还可以设定封锁的时间,内定是 600 秒
我是用 ports 安装的,设定还算简单
复制程式
cd /usr/ports/security/py-fail2ban
make install clean
安装后到 rc.conf 加一下
fail2ban_enable="YES"
这样下次开机才会自动启动
设定放在 /usr/local/etc/fail2ban/jail.conf
这个档已设定了很多模组,如果你用的是 iptable ,可以依自己的需求 把 enabled 改为 true
因为我的主机防火墙是用 ipfw ,所以要自己加
复制程式
[vsftpd-ipfw]
enabled = true
filter = vsftpd
action = ipfw[name=VSFTPD, localhost=any, port=ftp]
sendmail-whois[name=VSFTPD, dest=你的信箱]
logpath = /var/log/vsftpd.log
maxretry = 3
bantime = 86400
以上是用 ipfw 针对 vsftp 登入3次失败的 ip 做封锁
另外 fail2ban 还可以针对 dns 查询做防护,不过 dns 是用 udp
我查了一下 /usr/local/etc/fail2ban/action.d 中的 ipfw.conf 只能挡 tcp
所以我复制了一份来改,另存为 ipfw-udp.conf
然后在 jail.conf 中加入
复制程式
[named-refused-ipfw]
enabled = true
filter = named-refused
action = ipfw-udp[name=Named, localhost=any, port=domain]
sendmail-whois[name=Named, dest=你的信箱]
logpath = /etc/namedb/working/security.log
bantime = 86400
ignoreip = 你不想挡的IP
另外 /etc/namedb/named.conf 中要开启记禄才可以
复制程式
logging {
channel security_file {
file "/var/log/named/security.log" versions 3 size 30m;
severity dynamic;
print-time yes;
};
category security {
security_file;
};
};
设定后,可以先手动执行看看
/usr/local/etc/rc.d/fail2ban start
如果有什么问题,可以查 /var/log/fail2ban.log
这样就大功告成了,希望对有需要的人有帮助..