转--利用Fail2ban来保护Linux系统

发布于 2022-09-30 19:31:41 字数 2064 浏览 13 评论 0

本文阐述:使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文