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/中单独获得。
- 登录控制
为了加强控制台的安全,还应该阻止一般用户在控制台上登录入系统。为了达到这个目的,需要设置登录访问限制文 件/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系统中不 存在没有口令保护的缺省帐户,这将满足一般用户的安全需要。
- 安全认证方式
由于FreeBSD是一个多用户系统,不但能由控制台用户使用,还可以通过网络,提供其他用户使用。而允许其他用户 通过网络使用系统的时候,必须要对用户进行验证。此时的一个重要的安全问题就是口令以明文形式在网络中传输的问题。
- S/key和Kerberos
为了避免口令被窃听,有很多解决方法可以避免这个问题。一个很有意思的解决方法是使用一次性的口令系统,如 S/key,即使口令被窃听也不会对安全造成影响。FreeBSD缺省就支持S/key系统,每个用户都可以选择是否使 用这个系统保证自己的口令安全性。为了使用S/key系统,首先需要使用keyinit初始化针对这个用户的口令串。
bash-2.02$ keyinit Updating wb: Old key: de415501 Reminder - Only use this method if you are directly connected. If you are using telnet or rlogin exit with no password and use keyinit -s. Enter secret password: Again secret password: ID wb s/key is 99 de415502 GAS SAM RUSK BASH NEWS WA99v
由于这个命令是用于初始化S/key系统,要输入一个S/key口令短语(这个口令可以设置的非常长,通常建
议使用一个句子以保证安全性),这个口令将影响以后产生的一次性口令,因此这个命令应该在一个安全连接的终端上(如控
制台)执行,而不应该在通过普通telnet等网络连接的登录会话上执行。在两次输入S/key转 载:http://www.qqread.com/freebsd/s224914.html
更多内容请看系统优化大全、系统安全设置、系统安装手册专题,或进入讨论组讨论。
相关专题
- 系统优化大全 (17807篇文章)
- 系统安全设置 (23149篇文章)
- 系统安装手册 (20515篇文章)
- 系统备份专题 (17269篇文章)
- 系统维护手册 (16659篇文章)
- FreeBSD系统安全管理 (8637篇文章)
- FreeBSD使用教程 (6512篇文章)
- Freebsd频道 (695篇文章)
- FreeBSD系统安装 (205篇文章)
- Freebsd安装/配置 (221篇文章)
- 拿刀砍才能进freebsd系统的修复方法 (311次浏览)
- FreeBSD下构建安全的Web服务器 (122次浏览)
- FreeBSD 5内核源代码分析之系统调用过程 (108次浏览)
- freebsd5.0kde中文界面设置 (85次浏览)
- FreeBSD Qmail安装Howto (81次浏览)
- FreeBSD handbook中文版 10 安全 (77次浏览)
- FreeBSD的Loader和内核初始化 (68次浏览)
- freebsd mount挂载iso (66次浏览)



