网络安全讲座:第四讲 账号安全(4)

发布: 2006-5-23 03:14 | 作者: Allan | 来源: 《深圳赛佛莱特科技有限公司》技术版

举个例子

    % 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:/sbinHOME

    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:/sbinHOME

    Export PATH

    现在,如果户键入

    $ who

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

    限制root登陆

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

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

    CONSOLE=/dev/console