FreeBSD设置基本系统
FreeBSD系统是一种安全性非常好的通用操作系统,在Internet上很少发生FreeBSD系统被攻击的报告,事实上最近一端时间内CERT的安全报告中几乎没有发生在FreeBSD系统上的安全报告。一方面是因为 FreeBSD安全性很好,另一方面也是由于FreeBSD用户对于系统安全比较了解的缘故。与其他Unix系统相比,FreeBSD系统的传统味道更足一些,设计者以追求完美的态度去完成每一种设计,稳定性和安全性就是其中的重要因素。因此,初始安装好的FreeBSD系统已经具备比较高的安全性,一般用户不需要特别设置,便具备了相当高的安全性。而且经过一些简单的设置之后,安全性可以更高。一些商业操作系统软件声称经过了某个安全认证,其实这些认证也只是保证最基本的安全性。当前的各种Unix版本(不包括较老的版本)经过一些设置工作,同样也能达到通过测试目的,只是包括FreeBSD在内的自由软件系统,没有资金、也没有必要去参加这类测试。
对系统安全要求更高,而又不打算自己调整系统设置的使用者,可以选择另一种BSD Unix──OpenBSD ,它使用最大安全性的策略,其缺省设置中应用了大量的系统安全措施,也因为如此,它稍微难用一些。
设置基本系统
增强FreeBSD的安全性可以从两个方面出发,一个为使用FreeBSD提供的安全措施,这些安全措施可能在缺省情况下可能并没有打开,但能够提供额外的安全性。另一种为安装其他辅助的安全软件,这些额外的软件可以在特定方面增加系统安全,或帮助检查系统安全的工具。
- 用户登录控制
为了提高系统的安全性,一个重要的方面就是区分不同的用户,对于要使用不同服务的用户区别对待。有些用户只使用远程登录服务的就不必具备控制台访问的权限,有些用户只在某些子网上使用系统的就不必允许在任何位置进行登录,有些帐户只是用于系统维护目的,没有任何使用者需要使用相应帐户登录,就不必允许登录请求。
当区分不同用户的情况,最大限度的提供了登录限制之后,就能对入侵者利用窃取的帐户从其他位置进行攻击设置了障碍,提供更大的安全性。
- 控制台安全控制
系统的控制台是一个非常重要的安全弱点所在的位置,因为一个使用者能接触控制台,那么就表示他得到管理人员的特殊信任。系统缺省赋予了控制台终端以较大的安全信任。此外,接触控制台还能从物理易做图问系统硬件,包括重新启动系统、将硬盘窃取分析其中的数据等等。然而,物理安全等措施不是在这里要讨论的内容。
为了避免偶然的非法访问控制台造成的安全问题,所需要设置的第一件任务就是取消控制台的信任设置,这个设置位于/etc/ttys中。
console none
unknown off secure
初始设置为secure表示root用户可以在控制台登录,另外,它还表示系统重新启动之后,如果管理员要求进入单用户状态,将不询问root的口令进行验证,这是一个重要的安全漏洞。将secure更改为insecure可以使得进入单用户状态时首先验证root口令,它带来的后果是,一旦系统损坏了passwd文件(主要是master.passwd 文件),root口令无法认证,就没有办法进入单用户状态进行修复工作,此时使用安装盘启动fixit 系统进行才能进行修正。
使用另外一个运行在软盘上的小FreeBSD系统也能完成修复系统的任务,后面将介绍定制单软盘FreeBSD 系统的方法,这种小系统被称为PICOBSD,可以用于设置网关或防火墙,以及可以用作专有系统的嵌入式操作系统。
此外,为了防止用户无意中重新启动系统,还需要取消Ctrl-Alt-Del热键的重新启动能力,这需要重新定制内核时使用以下选项。
options
SC_DISABLE_REBOOT
注意,这是针对使用标准控制台syscon的系统才有效果。
当屏蔽了系统的热启动能力,那么重新启动或关闭系统便需要使用系统命令来完成,此时能启动系统的使用者便需要 root权限。而root口令知道的人越多,系统越不安全。此时可以使用软件包sudo来帮助解决这个问题,sudo 能限制某些特定用户使用root权限完成指定的操作,它使用用户本身的口令,而非root口令验证用户。
即使屏蔽了热启动能力,并且重新启动进入单用户状态也需要询问口令,系统仍然存在安全性问题。非法使用者可以首先切断电源,然后使用安装盘或其他不使用现有文件系统的FreeBSD系统盘启动系统,获得相关数据,或更改pas swd文件,以便在重新启动之后获得root权限。保护这些攻击,需要其他手段,例如设置计算机的启动口令,拆除系统上的软盘驱动器、光盘驱动器等。然而,对于能进行物理攻击的入侵者,他的行为就如同一个正常系统管理员修复系统的行为一样,没有绝对的办法能杜绝这样大胆妄为的举动。
如果管理员不能信任计算机系统的物理安全,为了防止信息外泻,唯一的方法是进行加密,可以通过Unix命令crypt 对具备敏感信息的文件加密。然而更简便的方法是使用一种加密文件系统,这类加密文件系统对于正常操作就如同标准文件系统一样,对任何应用程序的文件操作完全透明,然而数据是以加密方式保存到物理设备中。而且在网络中传送的也都是加密后的密钥,不必担心泄露密钥。FreeBSD下可以使用的加密文件系统为TCFS,但它这不是FreeBSD的标准配置,需要从http:// tcfs.dia.unisa.it/中单独获得。