账号安全(3)

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

UNIX帐号安全

在讨论UNIX帐号安全,你首先要理解UNIX密码的安全。这种理解需要检查密码文件的格式。你可以利用下面的命令来得到几种特殊密码的格式

$ man 5 password

密码文件包括几个字段,在表2-1作了详细解释

密码文件在显示的时候是加密的;这种显示叫做Shadow密码,通常创建在/etc/shadow,并属于root且只有root有权访问。

密码时效

按目前的形势,已有更强大的硬件大大地缩短了利用自动运行的程序来猜测密码的时间。因此在UNIX系统中防止密码被攻击的别一方法就是要经常地改变密码。很多时候,用户却不改变密码。因此一种机制用来强制规律性的更改密码是合乎要求的。这种技术称做密码时效并在很多UNIX系统上有效。

密码时效:LINUX

在LINUX系统上,密码时效是通过chage命令来管理的。

举个例子

% chage ?m 2 ?M 30 ?W 5 steven

此命令要求用户steven两天内不能更改密码,并且密码最长的存活期为30天,并在密码过期前5天通知他。

记录不成功的登陆企图

所有的UNIX系统都能够记录非成功的登陆企图。在LINUX中,登陆的失败是由syslog守护进程记录在/var/log/messages文件里。可以用下列命令来查找相关信息

$ grep login /var/log/messages

搜索路径(PATH)的重要性

在UNIX里,常使用的命令用来在不同的环境下查找一组特殊的目录称做PATH。想要运行当前目录包含的命令时是不需要加上一长串路径名的。在UNIX中用户经常使用”.”来表示当前的目录。如果”.”作为shell环境变量的一部分时,一个全局目录下的shell脚本或公用命令就有可能被相同目录下的伪程序所解释,而这个命令可能包含一段代码,一旦被执行后果可能是较严重的,比如是一个木马程序。在Bourne or Korn Shell里搜索路径通常这样来设置:

$ PATH=pathname1:pathname2:pathname3:

$ export PATH

在C或类似的shell里,以下列命令设置:

% set path = (pathname1 pathname2 pathname3)

在UNIX中像这样的路径可以保存在.profile文件里,可以看到像下面的语句

PATH=/bin:/usr/bin:/sbin:$HOME

Export PATH

因此,如果你经常参考用户主目录下的某个文件时,就创建一个叫”bin”的并把所以的个人的可执行文件放到里面,并要严格注意它们的安全性。假设”.”路径名存在于用户的shell初始化文件里,并且用户不精通有关安全的知识而且不太注意环境变量中路径,那么可以想像他经常使用到的who命令。假设用户已创建了下面的文件

$ touch /tmp/testfile

然后,编辑下面的程序并保存为who.c文件

# include

main()

{

system (“/usr/bin/who”);

system (“/bin/rm /tmp/testfile 2/dev/null”);

}

然后对些程序进行编译

$ gcc ?o who who.c

并且此用户可能含有这样的profile:

PATH=.:/bin:/usr/bin:/sbin:$HOME

Export PATH

现在,如果户键入

$ who

再去找找你刚刚建立的testfile这个文件,看看发生了什么..

限制root登陆

另一增强root帐号安全的方法是限制其在系统上直接登陆。不同版本的UNIX处理此项任务的方法是不同的。

在SUN的Solaris系统上要修改/etc/default/login文件,你需要加入下面一行

CONSOLE=/dev/console

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航