分类: LINUX
2010-06-18 18:31:24
Linux用户帐号安全优化
Red Hat Linux提供了很多方法来确保用户帐号的安全。对于帐号安全的重要性,我自不必多说,想毕大家都非常的重视这个问题。今天咱们先来看一些用的比较多比较实用的。我这里总结了八个方法,希望路过的高人们能传授更多更有效的方法。
一. 使用su命令
su命令相信大家经常都在用,无非就是个切换用户。但是现在我们要做一件事情就是只让zpp用户通过su命令切换为管理员,而其它用户不可以使用su命令切换用户身份。可以借助pam_wheel模块来控制允许使用su的用户。实现的步骤如下:
1. 将允许使用su命令的用户zpp加入wheel组。
说明:wheel组是默认由am_wheel模块提供的用于使用su功能的用户组,只要把zpp加入wheel组,并设置当使用su命令时必须通过pam_wheel模块认证即可
2. 修改PAM设置,添加pam_wheel认证。
说明:这一行不用添加默认就有了咱们把“#”去掉就可以用了。
好了,现在咱们来验证一下。可以看到只有zpp用户能使用su命令,如下:
而没有被添加到wheel组中的user1用户是无法使用su命令切换用户的,如下:
二. 确认程序或服务用户的登录Shell不可用
有些系统或服务运行的帐号,比如:apache、dovecot、ftp、rpm等,建议将它们的登录Shell修改为“/sbin/nologin”。做法很简单如下:
比如咱们要把邮件用户zpp的登录脚本修改为“/sbin/nologin”,下面是两种简单的方法:
方法一:直接到/etc/passwd文件中去把zpp的录脚本修改为“/sbin/nologin”。
方法二:一条命令搞定,如下:[root@localhost ~]#usermod –s /sbin/nologin zpp
三. 限制用户的密码有效期
这就相当于windows密码策略中的密码最长使用期限。当我们限制了天数之后可以减少密码被猜出或被暴力破解的风险。咱们可以通过修改“/etc/login.defs”文件实现。如下:
说明:改成上面这样,新建立的用户密码最长就只能用30天了。如果用户经建立了哪就用下图中的方法解决这个问题
现在用户在登录服务器时,如果密码已经超过有效期,系统会要求重新设置一个新的密码,否则用户将无法登录。我就不验证了哈!不然我还得等30天啊!
四. 指定用户在下次登录时必须修改密码
这个功能好!咱们做网工的最怕别人冤枉我们。别人的密码咱们不知道最好,免得给自己找麻烦。
下面是通过命令的方式指定zpp用户下次登录时必须修改密码
或者去shadow文件中找到zpp用户,将用冒号“:”分隔的第3列(LAST DAY域)的值设置为0即可,如图:
现在我们用zpp用户来验证一下吧,如图必须修改了密码才可以登录
五. 限制用户密码的最小长度
有的用户喜欢用诸如123、abc、888这样的密码,这就太危险了!在Red Hat5系统中,主要基于cracklib模块检查用户密码的复杂性和安全强度,增加最小长度(minlen)参数的值可以提高密码的安全性。默认情况下,minlen的值为10,对应的用户口令最短为6,cracklib基于密码串长度和复杂性同时进行检查,所以minlen的值并不直接代表用户设置密码的长度。
下图是通过PAM(Pluggable Authentication Module,可插拔认证模块)机制修改密码最小长度限制。
这样设置之后密码太短或太简单时将设置不成功,密码因为看不见所以我也截不了图,大家自己试试看啊!
六. 限制记录命令历史的条数
命令历史固然好,但也有安全隐患。万一谁获得了命令历史记录文件,又万一在这个历史记录文件中有曾经输入过的明文密码,那… …不敢往下想了。赶快看看下图中的设置吧
说明:将所有用户的命令历史记录为100条(默认的1/10),并且设置当前用户在注销登录后自动清空命令历史记录。
七. 设置闲置超时自动注销终端
为了安全起见,咱们使用终端时,可以设置一个TMOUT变量,当超过指定的时间没有输入时就自动注销。以防止咱们去了洗手间或接听电话时,其它人对服务器的误操作风险。
下图中将闲置超时时间设置为600秒,注意要重新登录才生效。
八. 删除系统中不使用的用户和组
Mysql、apache、named、news… …(我这就不一一列举了),这些用户和组只要是没用的都可以删,万一被黑客利用了,管理员是很难发现的。如果您在为到底删不删而犹豫不决时,那就把它禁用了吧。使用命令“passwd –l 用户名”就可以做这个事,或者直接修改shaow文件,在用户的密码字符串前添加“!”。
本文出自http://zpp2009.blog.51cto.com/730423/279573