教你如何配置安全的SOLARIS系统[整理][3]

[入库:2005年9月19日] [更新:2007年3月24日]

本文简介:

    配置文件具有两种功能:r系列命令使用这些文件来访问系统;在某用户的目录下存在.rhosts文件或/etc/hosts.equiv文件配有某系统,任何用户都可以通过rlogin不需要口令以该用户的身份登录到系统。因此要为这些文件加锁,先创建它们,然后修改其属性为零即可。这样除了root用户就没有其它用户能创建或修改它们了。 
    /usr/bin/touch   /.rhosts /etc/hosts.equiv 
    /usr/bin/chmod 0 /.rhosts /etc/hosts.equiv 
    .rhosts文件可以作为一个典型的后门文件使用,运行下面的命令全局查找.rhosts文件 
#find -name“.rhosts”-print 

6.5给系统打补丁 
    象其它的系统一样,Solaris系统也有它的漏洞,其中的一些从性质上来说是相当严重的。SUN公司长期向客户提供各种版本的最新补丁,放在http://sunsolve.sun.com网站。可用#showrev –p命令检查系统已打的补丁或到/var/sadm/patch目录下查已打过的补丁号,用patchadd命令给系统打补丁。 
[b:c5b2726b8e]七、Setuid设置和Solaris操作系统安全[/b:c5b2726b8e] 
http://bbs.chinaunix.net/forum/viewtopic.php?t=302945&highlight=Setuid 
    在Solaris中,文件除了读、写、执行权限外,还有一些特殊权限。 Setuid和setgid是其中的一类。它与Solaris系统的安全关系紧密。 
    Setuid是指设置程序的有效的执行用户身份(uid)为该文件的主人,而不是调用该程序的进程的uid。Setgid与之类似。Setuid和setgid用ls –l显示出来为s权限,存在于主人和属组的执行权限的位置上。 
    这种权限的设置方法如下: 
    只设setuid: chmod 4xxx filename (xxx为一般读、写、执行权限) 
    只设setgid: chmod 2xxx filename 
    同时设setuid和setgid: chmod 6xxx filename 
    取消两种权限: chmod 0xxx filename 
    这种权限怎么用? 
    举个例子来说,假如某一命令(程序)的主人是root用户,并且该文件有setuid属性,但是该文件的读、写、执行权限的属性表明普通用户user1可以执行该命令,那么就表示:当该用户执行该命令时,他具有root的执行身份,并获得相应的权限。一旦该命令执行完成,该身份也随之消失。 
    为什么系统中需要有这样的权限呢?请执行以下操作: 
    7.1. $ ls –l /etc/shadow /bin/passwd 
        -r-sr-sr-x 3 root sys 99792 1999 2月 12 /bin/passwd 
        -r-------- 1 root sys 261 1月 3 13:12 /etc/shadow 
    /etc/shadow文件由于存有用户的加密口令信息,对系统的安全至关重要,因此权限很严,只有root凭其对系统的至高无上的权限才得以对/etc/shadow可读可写。但是系统必须允许普通用户也能修改自己的口令。要让他们对/etc/shadow可写,又不能可读,而且可写又不能允许他们改别人的口令,怎么办?系统就采取这样一个办法:做一个程序, 也就是/bin/passwd,通过它可以在不显示文件内容的情况下直接修改/etc/shadow文件。可是这个程序怎么能有这样的权限?因为系统赋予它setuid权限,而且它属于root.这样,用户在使用/bin/passwd改口令时就有root权限.由于/bin/passwd命令本身功能的局限性,用户并不能用它做更多的不利于系统安全的事。 
    7.2. 用普通用户身份修改口令 
    $ passwd 
      Enter login password: **** 
      New password:****** 
      Re-enter new password:****** 
      Passwd(SYSTEM): passwd successfully changed for xxx . 
      可以成功。 
    7.3. 用超级用户修改/bin/passwd的权限 
    # chmod 0555 /bin/passwd 
    7.4. 再重复2,是否还成功?当然不。 
    7.5.把/bin/passwd的权限恢复原状。 
     # chmod 6555 /bin/passwd 

    对此可以打一个生动的比喻:有一个绝密机关,不得已必须有一些不能见这些秘密的人进来做一些事情。于是授权一些特殊的“车辆”(没有窗户,门紧闭,所以看不到外面。只有一个小洞允许乘坐的人伸出一只手臂),带着所乘坐的人开到要去的地方,允许它办完事情马上带他出来。这样是不是很安全?不一定。如果“车辆”没有经过精挑细选是有很多“门窗”,那系统可就危险了。 
    这种安全威胁在Solaris中也有可能出现。比如做一下下面这个实验: 
    7.6. $ vi /etc/shadow 
     /etc/shadow: Permission denied. 
    7.7. 用超级用户身份 
    # chmod 6555 /bin/vi 
    # chown root /bin/vi 
    7.8. 这次再用普通用户身份试一试第6步,有什么结果?这次你能以普通用户身份修改         /etc/shadow了!!但是 
$ more /etc/shadow仍然不成功,说明在执行/bin/passwd时有超级用户权限,平时仍是普通用户身份。 
    再来看一个令人不安的情况: 
    7.9.用超级用户身份 
    # chmod 6555 /bin/ksh 
    # chown root /bin/ksh 
    7.10. 用普通用户身份 
    $ ksh 
    # 
    发生了什么情况??普通用户不需要root口令就变成了root!!! 
    好可怕。如果有一个用户曾有一次获得超级用户权限,并通过类似的方式给自己设置了后门(也可能放了一个类似的文件在他自己的家目录中),以后他就可以随时变成超级用户了。 
怎么能避免setuid的不安全影响,又利用其方便的地方?这里有几点建议: 
关键目录应严格控制写权限。比如/,/usr等。 

本文关键:教你如何配置安全的SOLARIS系统[整理]
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top