FreeBSD handbook中文版 10 安全(6) 处理帐户是操作系统的一个相关特性,它可以作为一个post-break-in 的评价机制。 它在跟踪入侵者是如何侵入系统的时候特别有用. 最后,安全脚本应当处理日志文件。一个入侵者设法掩盖自己的踪迹,日志文件可以 指示系统管理员设法追踪到最初侵入的时间和方法。确保日志文件持久记录的日志文件的 一个方法是运行系统控制台到一个串行口,通过持续不断地检测控制台来收集信息。 10.3.7 偏执狂 带点偏执可能不会有伤害。作为一个惯例,一个系统管理员需要添加许多安全特性, 并且尽可能地不影响到使用的便利性。更重要的是一个安全系统管理员应当经常修复漏洞。 10.3.8 拒绝式服务攻击(DoS) 这节将介绍拒绝式服务攻击。一个DoS 攻击通常是一个包攻击,它可以使你的网络瘫 痪。你应当做一些限制,让攻击不会瘫痪你的服务器。 1. 限制服务器的forks. 2. 限制跳板springboard 攻击(ICMP response attacks, ping broadcast, etc.)。 3. 内核通道的缓存。 一个普通的DoS 攻击通常试图让服务器吃掉所有进程,文件描述和内存,直到机器死 机。inetd 有好几个选项可以来限制这种攻击。需要注意的是当无法阻止一个服务被攻击所 打断时,可以阻止一台机器当机。阅读一下inetd 的联机手册,特别需要注意-c, -C, 和 第8 页FreeBSD 使用手册 -R 选项。注意,哄骗式的IP 攻击可以饶过inetd 的-C 选项。所以,最好一起使用这些选 项。 Sendmail 有一个-OMaxDaemonChildren 选项,它往往要比sendmail 的负载限制选项工 作得好。你必须指定一个MaxDaemonChildren 参数,当你启动sendmail 时,可能你期望有 很高的负载,但电脑无法处理这么高的负载。在队列模式运行sendmail 时要非常谨慎 (-ODeliveryMode=queued)。如果你在一个很短的时间间隔内实时分发你运行的队列,如 -q1m,一定要为sendmail 指定一个合适的MaxDaemonChildren 选项以免发生错误。 Syslogd 可能会被直接攻击,强烈建议你使用-s 选项,或-a 选项。你也应当注意象 tcpwrapper 的reverse-identd 这样的后台连接服务,它可以被直接攻击。因为这个原因, 你通常不要使用tcpwrappers 的reverse-ident 特性。 在你的路由器上设置一道防火墙来隔离内部网络与外部网络之间的连接是非常好的安 全方法。这样可以阻止你的内部网络受到来自外部网络的攻击。 这个方法可以阻断除了你指定的如named, ntalkd, sendmail 这样的服务以外的低级 端口。如果你设法使用其他方法来配置防火墙,你可能会忘记关闭一对服务,或你添加了 一个新的内部服务而忘记了升级防火墙。 你也可以在防火墙上打开比较高的端口范围,允许有许可性质的操作,而不会危及你 的低级端口的安全。FreeBSD 允许你控制用来动态绑定的端口号码的范围,通过不同的 net.inet.ip.portrange sysctl's(sysctl -a fgrep portrange),将会减轻你的防火墙 配置的复杂性。例如,你可以使用普通的4000 到5000 端口范围,以及更高的49152 到 65535 端口范围,然后隔断4000 以下的端口。 另一个普通的DoS 攻击叫做springboard 攻击—它会让服务器不断产生回应,最终导