76 FreeBSD连载:设置基本系统( 二 )


optionsSC_DISABLE_REBOOT注意,这是针对使用标准控制台syscon的系统才有效果 。
当屏蔽了系统的热启动能力,那么重新启动或关闭系统便需要使用系统命令来完成,此时能启动系统的使用者便需要root权限 。而root口令知道的人越多,系统越不安全 。此时可以使用软件包sudo来帮助解决这个问题,sudo能限制某些特定用户使用root权限完成指定的操作,它使用用户本身的口令,而非root口令验证用户 。
即使屏蔽了热启动能力,并且重新启动进入单用户状态也需要询问口令,系统仍然存在安全性问题 。非法使用者可以首先切断电源,然后使用安装盘或其他不使用现有文件系统的FreeBSD系统盘启动系统,获得相关数据,或更改passwd文件,以便在重新启动之后获得root权限 。保护这些攻击,需要其他手段,例如设置计算机的启动口令,拆除系统上的软盘驱动器、光盘驱动器等 。然而,对于能进行物理攻击的入侵者,他的行为就如同一个正常系统管理员修复系统的行为一样,没有绝对的办法能杜绝这样大胆妄为的举动 。
如果管理员不能信任计算机系统的物理安全,为了防止信息外泻,唯一的方法是进行加密,可以通过Unix命令crypt对具备敏感信息的文件加密 。然而更简便的方法是使用一种加密文件系统,这类加密文件系统对于正常操作就如同标准文件系统一样,对任何应用程序的文件操作完全透明,然而数据是以加密方式保存到物理设备中 。而且在网络中传送的也都是加密后的密钥,不必担心泄露密钥 。FreeBSD下可以使用的加密文件系统为TCFS,但它这不是FreeBSD的标准配置,需要从http:// tcfs.dia.unisa.it/中单独获得 。
登录控制
为了加强控制台的安全,还应该阻止一般用户在控制台上登录入系统 。为了达到这个目的,需要设置登录访问限制文件/etc/login.access 。该文件由login程序读取,限制用户的登录位置,该文件中具备下面语句将屏蔽除了wheel组、admin之外的用户在console登录的权力 。
-:ALL EXCEPT wheel admin:console第一个字符“-“号,用于指明该句是用于屏蔽,相反,“ “用于打开登录许可,由于这个文件主要用于控制登录位置的目的,所以打开登录许可的方式很少用得到 。此后用冒号分隔的第二部分为帐号域,可以使用用户名和组名,以及使用login.access的关键字All、ALL EXCEPT等定义用户 。第三部分为登录位置,这里仅仅用于限制console 。
这个文件不但能用来限制在控制台登录,也能用来限制从其他位置登录入系统,还可以限制一些帐户在所有的位置都不能登录,这样就能更好的保证安全性 。
-:wheel:ALL EXCEPT LOCAL .local.net这句设置了对管理员组wheel的登录位置限制,只能在本地或者本地的local.net域内计算机上建立登录连接 。设置对能执行特定操作管理员的登录限制也能增强系统安全性 。
-:daemon bin lpd nobody nogroup:ALL这个设置限制一些特殊的系统用户在所有节点上都不能登录,系统中的很多帐户事实上是用于系统维护的目的,并没有任何用户需要使用他们登录,显然这也能增加安全性 。
然而,使用login.access并不能表示该帐户就无法被非法使用了,很多网络服务不使用这个文件进行用户限制,而是使用自己的用户限制方式,因此入侵者可以通过这些网络服务攻击相关帐户 。入侵者也可以通过先以其他用户身份登录,再使用su命令绕过这个限制 。所以使用这个限制文件并不是一劳永逸的做法,事实上在保证网络安全方面,不存在百分之百的解决方案,只能通过各个方面配置,尽量提高安全性 。
即使提供了有效的登录控制,对于某些不必要的缺省帐户或长期不再使用的帐户,最好还是将其删除,以最大可能的避免安全问题 。例如用于UUCP的帐户uucp,只有很少的系统需要这个帐户 。可以放心的是,FreeBSD系统中不存在没有口令保护的缺省帐户,这将满足一般用户的安全需要 。

推荐阅读