Linux 系统管理员安全指南
本文从系统管理员的角度讨论安全问题。系统管理员是管理系统的人:启动系统,停止系统运行,安装新软件,增加新用户,删除老用户,以及完成保持系统发展和运行的日常事务工作。
(2)用chroot()限制用户
如果的确想限制一个用户,可用chroot()子程序为用户建立一个完全隔离的环境,改变了进程对根目录的概念,因此可用于将一个用户封在整个文件系统的某一层目录结构中,使用户无法用cd命令转出该层目录结构,不能存取文件系统中其余部分的任何文件。这种限制方式比加限制的shell好得多。用户使用的命令应由系统管理员在新的root目录中建立一个bin目录,并建立用户可用命令的链到系统的/bin目录中相应命令文件上(若在不同的文件系统则应拷贝命令文件)。
还应建立新的passwd文件,保留系统登录户头(为了使ls -l正确地报告与受限制的子文件系统中的文件相关的正确登录名)和用户帐户,但系统帐户的口令改为NOLOGIN以使受限制的用户不能取得系统登录的真实口令,使"破密"程序的任何企图成为泡影。
utmp文件是who所需要的,该文件含有系统中已登录用户的列表。
新的/etc/profile文件也不是建链文件,以便受限制的用户可以执行不同的启动命令。
/dev目录中的终端设备文件被链接到新的/dev目录下,因为命令who产生输出时要查看这些文件。
在系统V及以后的UNIX版本中,login命令有chroot()的功能。如果口令文件中用户入口项的登录shell域(最后一个域)是*,login将调用chroot()把用户的根目录设置成为口令文件中用户入口项登录目录域指定的目录。然后再调用exec()执行login,新的login将在新子系统文件中执行该用户的登录。
chroot()并不是把root封锁在一个子文件系统中,所以给受限制用户用的命令时应加以考虑,具有root的SUID许可的程序可能会给予用户root的能力。
应当将这种可能减低到最小程度,交给用户使用的命令应当取自清除了SUID陷井的系统命令。链接文件可减少磁盘占用区,但要记住,当与敌对用户打交道时链接到chroot目录结构(尤其是命令)的系统文件是很危险的。
如果建立一个像这样的限制环境,应确保对安装到新的/bin的每条命令都做过测试,有些程序可能有系统管理员未曾想到的出乎意料的执行结果。为了使这些命令能运行,还得在加限制的子文件系统中加服务目录或文件如:/tmp,/etc/termcap,/usr/lib/terminfo,/dev/mem,/dev/kmem,/dev/swap,用户所登录的/dev中的tty文件以及/unix.有些程序在子文件系统中运行时不会很好,如果将假脱机程序和网络命令拷贝到加限制的子文件系统中,并放在为两条命令专建的目录层结构下,它们可能也运行不了。
10.小系统安全
任何足够小,运行于办公室的UNIX系统就是小系统。这类小系统也包括所有台式UNIX机器。根据安全观点,使小系统很特别而值得特别的有以下几点:。 小系统的用户比大系统的用户少,通常是很小一组用户,使系统管理员能熟悉每个人,安全问题可以直接地面对面处理。。 由于小UNIX系统管理更简单,可能只需要一个系统管理员,因而维护系统安全的责任只有一个人担负。。 如果既是用户又是系统管理员,将不能花大量时间考虑系统安全。。 如果自己拥有系统并且是系统管理员,就可能有权直接将违反规的用户从系统中删除,而没有几个大系统的管理员能有这种权利。。 如果自己是系统的唯一用户,则将既是用户又是管理员,维护系统安全的任务就很简单了,只须确保系统中所有登录户头的口令是好的。。 如果不能将系统锁起来,就把敏感的数据存放在软盘上,把软盘锁起来。。 即使系统中有若干个用户,但如果系统的终端之产是有线连接,并且用户们保持门上锁,则系统也将是安全的,至少在本组用户内是安全的。。 小系统通常有可移动的介质(软盘),可用mount命令将其安装到系统上,提供一种安全的方法让用户自己在系统上安装软盘,否则系统管理员要一天到晚地干这些琐碎的安装盘事务。允许用户安装软盘的通常做法是给用户一个SUID程序,该程序基本完成与系统管理员安装用户软盘同样的操作,首先检查软盘上有无SUID/SGID/设备文件,若发现任何奇怪的文件,则拒绝安装该软盘。。 当小系统开电源后,系统一般在从硬盘引导以前,先试图从软盘引导。这就意味着计算机将首先试图从软盘装入程序,若软盘不在驱动器中,系统将从硬盘装入UNIX内核。软盘几乎可以含有任何程序,包括在控制台启动root shell的UNIX系统版本。如果破坏者有一把螺丝起子和有关系统内部的一些知识,则即便系统有被认为防止安全事故发生的特殊"微码"口令,也可能被诱骗去从软盘引导。。 即使小系统晚上不锁,凡从不将个人的或秘密的信息存放在大系统上的人他们不可能认识所有系统上的用户),也不会想把这样的信息存放在小系统上。小系统的系统管理员在使用UNIX系统方面常不如大系统管理员,而安全地管理系统需要一定的使用系统的知识。
11.物理安全
对于运行任何操作系统的小型或大型计算机,物理安全都是一个要考虑的重要问题,物理安全包括:锁上放置计算机的屋子,报警系统,警卫,所有安置在不能上锁的地方的通讯设施,包括有线通讯线,电话线,局域网,远程网,应答MODEM,钥匙或信用卡识别设备,给用户的口令和钥匙分配,任何前置通讯设施的加密装置,文件保护,备份或恢复方案(称为安全保险方案,用作应付偶然的或蓄意的数据或计算设备被破坏的情况),上锁的输出仃,上锁的废物箱和碎纸机.

