« »
2008-01-12Debian

55

保护Debian下的SSH 不被强行攻击[原创]

1.在ubuntu的/etc/apt/sources.list加入
deb http://ubuntu.tolero.org/ edgy main

2.安装pam_abl
sudo apt-get update
sudo apt-get install libpam-abl
sudo /etc/init.d/ssh restart

2.在debian的/etc/pam.d/ssh 中的
auth       required     /lib/security/pam_abl.so config=/etc/security/pam_abl.conf

3.将下面5个文件复制到debian的相同位置
/lib/security/pam_abl.so
/etc/security/pam_abl.conf
/var/lib/abl/hosts.db 
/var/lib/abl/users.db 
/usr/bin/pam_abl

4.配置pam_abl.conf
host_db=/var/lib/abl/hosts.db         被禁止主机名列表保存到哪里
host_purge=2d        定义了禁止的主机释放时间
host_rule=*:3/1h,30/1d       主机规则
user_db=/var/lib/abl/users.db      被禁止的用户列表保存到哪里
user_purge=2d    定义了禁止的主机和用户的释放时间
user_rule=!root:3/1h,30/1d   用户规则

简单解释一下上面这个配置文件:
第2行和第5行定义了被禁止的用户和主机名列表保存到哪里。
第3行和第6行分别定义了禁止的主机和用户的释放时间,这里定义的是2天后,主机和用户都会解禁。
第4行和第7行主机和用户规则,我们看看他的语法规则。他的规则如下:

host/user_rule=<host/user>:<number of tries>/<ban time>,<number of tries>/<ban time>

因此上面的配置文件第4行主机规则的意思是禁止所有的主机(*表示),当一个小时内错误的连接次数达到或者超过3次,或者最后一天超过30次。
第7行用户规则意思是所有的用户,除了root(用!root表示)在最近的一个小时内连接错误达到三次就禁止,或者最近的一天超过30次。

当然,你也可以定义你选择的那些用户,比如

work|test|linux|mike:20/1h

这意味着上面的四个用户work,test,linux,mike将被禁止,如果在最近的一个小时内连接错误次数达到20次。

注:这里说的连接次数,是指你建立连接,然后输入密码,当缺省输入三次密码都不正确时,就退出了,这就算一次。

5.登录测试

现在我们可以测试我们的配置了,打开终端,远程连接一下,尝试连接次数超过三次,你应该可以下面下面类似的结果

#pam_abl
Failed users:
   linuxplay (6)
       Blocking users [!root]
Failed hosts:
   unixplay (6)
       Blocking users [*]
这就表示用户linuxplay和主机unixplay被禁止了,你可以尝试再次连接机器,并输入正确的密码,也打印”权限禁止”的提示。

您还可能感兴趣的内容

日志信息 »

该日志于2008-01-12 02:59由 x72 发表在Debian分类下, 通告目前不可用,你可以至底部留下评论。

没有评论

发表评论 »


返回顶部