快捷搜索:   nginx

用 Pam_Abl 来保护 SSH 不被强行攻击

【原创翻译,版权所有,如欲转载,请注明原创翻译作者,及文章出处(赛迪网)。违者,赛迪网将保留追究其法律责任的权利!】

几乎所有的Unix和Linux服务器上都运行着SSH服务器,它使得管理员能够安全地远程访问服务器。然而不幸的是,最近针对SSH的服务的攻击非常常见。本文将讲述如何利用SSH即插授权模块(PAM)的pam_abl插件来保护运行着SSH服务的机器不被暴力攻击。

你自己可以下载并编译pam_abl模块,也可以下载并安装一个二进制的存档。如果想要编译该模块,你可以下载该源代码并搜集关于如何在pam_abl主页上编译它的信息。如果想要在Ubuntu Dapper或者Edgy服务器和PC上配置pam_abl,你可以把一个Roman Balitsky的定制存档加载到/etc/apt/sources.list文件:

deb http://ubuntu.tolero.org/ dapper main (for Dapper)
deb http://ubuntu.tolero.org/ edgy main (for Edgy)

添加了安装源之后,更新列表,安装pam_abl,然后重启SSH服务器:

sudo apt-get update
sudo apt-get install libpam-abl
sudo /etc/init.d/ssh restart

接下来,你可以在/etc/security/pam_abl.conf文件中配置pam_abl:

#/etc/security/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天内刷新封主机和封用户的规则。第四和第七行分别是主机和用户规则,我们来详细分析一下。

文件的配置方法如下:

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

因此第四行表示的意思是封禁最近一小时输入错误认证3次以上的所有主机,或者在最近一天内尝试的次数超过30次的所有主机。

第七行的规则表示除了用户根目录(“!root”指向的)的用户以外,封禁在1小时内三次输入错误的密码或者一天内错误尝试超过30次的所有用户。

还可以通过定义来保护选中的用户。假设你需要保护anze,dasa,kimzet和madison这几个用户,配置方法如下:

anze|dasa|kimzet|madison:20/1h

本句的意思是如果在1小时内这四个用户登录失败次数达到20次就将被封禁。

更多选项和触发设置请参考pam_abl说明主页。

测试

如果想要测试你的设置,你可以在目标上打开一个终端,察看/var/log/auth.log文件,尝试3次用错误的密码登录服务器,看看pam_abl插件是否封禁你。如果被封了,以madison用户为例,登录文件如下:

pam_abl[6248]: Blocking access from sataras.example.com to service ssh, user madison

这表示目标主机上madison用户被封禁2天。

你可以用如下pam_abl语句随时查看被封禁的用户和主机:

~$ sudo pam_abl
Failed users:
madison (3)
Blocking users [!root]
Failed hosts:
sataras.example.com (3)
Blocking users [*]

结论

你可以用很多方法保护机器不受黑客攻击,包括改变SSH监听端口,用iptables和TCP wrappers定义允许连接到SSH服务的主机等等。使用pam_abl模块可保护SSH服务器不被暴力攻击;但你配置该模块时得小心,免得黑客把你自己关在自己服务器外。

=============================================

原文作者:StoneLion

原文来源:linux.com

原文链接:http://security.linux.com/article.pl?sid=07/03/20/2043209

(T003)

【相关资料】

"暴力攻击" - http://en.wikipedia.org/wiki/Brute_force_attack

"pam_abl" - http://sourceforge.net/projects/pam-abl

"PAM" - http://www.faqs.org/docs/Linux-HOWTO/User-Authentication-HOWTO.html#AEN101

"下载该源代码" - http://sourceforge.net/project/showfiles.php?group_id=148927

"主页" - http://www.hexten.net/pam_abl/

"Roman Balitsky" - http://tech.tolero.org/blog/en/

"说明主页" - http://www.hexten.net/assets/pam_abl_doc/index.html

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论