利用Fail2ban来保护Linux系统
本文阐述:使用Fail2ban来保护你的Linux系统
最近一直在找一个合适的sshd保护软件,因为总是有很多hacker在试服务器的口令,即使我已经关闭了口令验证,不胜其烦。网上有很多类似的软件。我本来想用sshguard的,但是新版本还在测试中,旧版本根本就和ipv6不兼容,抓不到尝试。后来又找了几个,DenyHost也是个比较成熟的软件,不过它是利用tcpd的机理,而我想找一个用iptables的,最后发现了Fail2ban。虽然Fail2ban没有本地代码的速度优势,它也是个脚本集,用python语言,不过它的屏蔽机理即可以用系统自带的防火墙,如Linux的iptables或FreeBSD的ipfw,又可以换用tcpd,此外还可以扩展到其它网络服务。0.8代码树采用客户机/服务器的模型编写,在服务运行的时候,可以用客户端直接修改核心参数。
简而言之fail2ban的作用就是当日志的匹配项出现预设的频率时采取一定动作的软件,最普通的就是从防火墙上拦截掉。
fail2ban看起来实在不错,但是0.8代码树需要python2.4以上,而centos4系统自带的是2.3的,贸然升级到2.4,就怕系统内一些自带工具会出错。于是首先要先配置好python,然后才能部署fail2ban。
安装_python2.5.1
#安装至自定义目录,防止系统混乱
./configure --prefix=/usr/local/allblue/apps/Python-2.5.1
make
make install
cd /usr/local/allblue/apps/
ln -s Python-2.5.1 python
Parsed in 0.003 seconds
安装_fail2ban0.8
/usr/local/allblue/apps/python/bin/python setup.py install
#移动生成的可执行文件到/usr/bin
mv /usr/local/allblue/apps/python/bin/fail2ban-* /usr/bin
Parsed in 0.002 seconds
经过上面的步骤,三个可执行文件可能会被安装到和python/bin目录下,如果这样,移动到/usr/bin,以便使用。如果被安装到/usr/bin,那么需要改动三个可执行脚本的首行,把解释器从默认的系统python改到自己刚安装的新的python。
mllm © 2004-2008, allblue
#!/usr/bin/python
Parsed in 0 seconds
改为
mllm © 2004-2008, allblue
#!/usr/local/allblue/apps/python/bin/python
Parsed in 0 seconds
拷贝源代码树files目录下的redhat-initd到init.d目录用来自启动。
mllm © 2004-2008, allblue
cp files/redhat-initd /etc/init.d/fail2ban
chmod 0755 /etc/init.d/fail2ban
Parsed in 0.002 seconds
最后写一个logrotate的配置文件,并拷贝成/etc/logrotate.d/fail2ban,用来定期清理日志文件
fail2ban
/var/log/fail2ban.log {
missingok
notifempty
size 30k
create 0600 root root
postrotate
/usr/bin/fail2ban-client reload 2> /dev/null || true
endscript
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论