如何即时封锁想要用“暴力密码”破解 SSH 的入侵者

本程式无法处理 IPv6 的问题,请改用功能更强大、更完整的 Fail2Ban,请参考本站文章:


粉久之前写了一支 Log 分析的程式,可以统计、分析前一天系统的 Log,在这一份报表里面,总是会看到有一些人使用“暴力法”,尝试以各种帐号、密码,借由 SSH 或 FTP 入侵服务器! 而我只能看着“前一天”的报表,分析他们用过哪些帐号、统计他们尝试了几次…实在有点不是滋味

我一直在找这样的程式,这个程式的功能,就是可以及时把使用“暴力法”的入侵者给封锁掉。我找这样的程式已经很久了,我也认为应该会有这样的程式才对,可是就是找不着! (如果你用过这样的程式,请不要笑我)

程式原理

于是我就自己用 Perl 写了一支程式,程式的原理,并不是每隔五分钟就去分析系统 Log,因为我觉得这样对系统太操了,我希望可以在用户准备登入时,才去分析该用户最近的登入状况。

这整个流程,首先借由 TCP_Wrappers 的机制 (hosts.deny 及 hosts.allow) 在用户登入时触发本程式,然后程式会分析该用户最近这一小时登入的状况,对于登入失败 10 次的用户,直接以防火墙封锁其 IP,然后程式会寄出一封电子邮件通知管理者。

安装步骤

  1. 下载 block_ssh.pl,将档案存放在 /usr/bin/,并将权限设为 755:
    cd /usr/bin
    wget http://here.vixual.net/files/source/block_ip/block_ssh_pl
    mv block_ssh_pl block_ssh.pl
    chmod 755 block_ssh.pl
  2. 编辑 /etc/hosts.allow,加入:
    sshd    :       ALL     :       spawn (/usr/bin/block_ssh.pl %c %d)
  3. 这样就完成了,如有必要,请自行修改 block_ssh.pl 里相关的参数。

程式缺点

  1. 目前只有针对 ssh 做分析。
  2. 遇到不断变换 IP 的骇客就没辄了。

SSH 的安全设定

建议修改 /etc/ssh/sshd_config,做以下设定:

#只允许用户使用 SSH2 协定登入
Protocol 2
#禁止 root 使用 SSH 登入
PermitRootLogin no
#最多可以同时开启 10 个连线要求
MaxStartups 10
    • Philips
    • 01/30. 2008 1:08上午

    感谢大大分享,
    小弟也受惠良多。

    • Anonymous
    • 03/07. 2008 11:41上午

    THanks You, I 'll try it!

    • wenchi
    • 06/26. 2008 5:41下午
    Using Internet Explorer Internet Explorer 6.0 on Windows Windows XP

    你好,我想要尝试用你的方式抵挡ssh 攻击,但是目前找不到 block_ssh.pl 的档案可以下载?
    想请问能否mail 一份给我试试看,谢谢囉^^

    • citypig
    • 06/26. 2008 7:42下午
    Using Mozilla Firefox Mozilla Firefox 2.0.0.11 on Windows Windows XP

    WECHI 您好:
    文章我已经更新过了,照着步骤执行即可下载到 block_ssh.pl。

    • STONE
    • 07/31. 2008 3:15下午
    Using Mozilla Firefox Mozilla Firefox 3.0.1 on Windows Windows XP

    由secure.log去分析然后加入iptable drop的方式应该算是简单而传统的方式
    如果资料量多的话 会拖慢连线速度吧 因为iptables变长了
    再者 最近发现 try的不是连续试 而是1-2小时才试一次
    一直在用knockd的方法,但却一直不成功 =.=

    • CML
    • 08/22. 2008 12:41上午
    Using Mozilla Firefox Mozilla Firefox 2.0.0.16 on Windows Windows XP

    你好
    已经有这种程式囉
    监看log档然后搭配iptable来阻挡暴力法入侵
    这程式名子叫fail2ban
    教学可参考下列网址
    http://gentoo-wiki.com/HOWTO_fail2ban
    满好用的
    可以阻挡的项目也很多
    例如ssh, ftp, sasl...等
    满不错用的
    大家参考一下^^

  1. 03/29. 2010

return top

%d 位部落客按了赞: