作得好。你必须指定一个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 攻击—它会让服务器不断产生回应,最终导
致服务器,本地网络或其他机器超载。最普通的攻击是ICMP ping broadcast attack。
攻击者欺骗性地用源IP 地址向你的LAN 广播地址发送ping 数据包到他们希望攻击的
实际机器。如果你的路由器无法阻止他们ping 广播地址,你的LAN 就会对每个欺骗性的请
求产生回应,从而侵占大量的网络资源,特别是当攻击者使用同样的欺骗手段用几十个广
播地址从几十个不同的网络进攻时。
第9 页FreeBSD 使用手册
超过120MB 的广播攻击是常用的。另外一个普通的攻击是针对ICMP 错误报告系统的。
通过产生数据包来形成ICMP 错误请求,一个攻击者可以侵占一个个服务器的输入网络,使
得服务器用ICMP 请求占满它的输出网络。如果服务器不能很快地处理ICMP 请求的话,这
种类型的攻击也可以使服务器瘫痪。FreeBSD 内核有一个叫做ICMP_BANDLIM 的新的内核选
项,它可以限制这些端口攻击的效率。这种跳板类的攻击是与象这样的udp echo 服务的某
个内部inetd 服务有关的。
一个攻击者只要简单地用成为服务器A 的echo 端口的源地址和成为服务器B 的echo
端口的目的地址来哄骗一个UDP 数据包。两个服务器就来回地弹发数据包。攻击者只要发
送几个这种类型的数据包就可以使服务器和内部网瘫痪。类似的问题也存在于内部chargen
端口。一个熟练的系统管理员会关闭所有这些内部的inetd 测试服务。
哄骗式数据包攻击也可以被用来是内核路由缓存超载。可以参考一下
net.inet.ip.rtexpire, rtminexpire, 和rtmaxcache sysctl 参数。随意使用一个源IP
进行的哄骗式的数据包攻击将使内核在路由表中产生一个临时的高速缓冲路由,可以用
netstat -rna | fgrep W3 检查一下。这些路由大约会超时1600 秒。如果内核检测到缓冲
路由表太大,它将动态地减少rtexpire,但不会小于rtminexpire。有两个问题:
1. 当一个负载量很小的服务器突然受到攻击时,内核没有很快地响应。
2. 由于rtminexpire 太小而无法抵抗住一个持续不断的攻击。
如果你的服务器通过T3 或更高速度的线路连接到internet,可能需要通过使用sysctl
来手动地调整rtexpire 和rtminexpire。千万不要把参数设为0(除非你想要摧毁机器)。
把参数设为2 秒对于保护路由表免受攻击是非常好的。
10.3.9 用Kerberos 和SSH 的访问问题
如果你打算使用它们的话,在kerberos 和ssh 之间有好几个问题需要记住。Kerberos
V 是一个非常卓越的验证协议,但在加密telnet 和rlogin 应用程序时会有一些错误,可能
会使它们不太适合处理二进制数据流。另外,默认的kerberos 也无法加密一个会话,除非
你使用-x 选项。ssh 默认能加密任何东西。
我们建议无论用户什么时候登陆系统,你都可以结合kerberos 来使用ssh。ssh 可以在
编译时加入对kerberos 的支持。我们也建议你在ssh 配置中关闭key-forwarding,或者在它
第10 页FreeBSD 使用手册
的authorized_keys 文件中使用from=IP/DOMAIN 选项使得只有用作实体的密匙可以从特殊
机器登陆进系统。
10.4 DES, MD5 和Crypt
在unix 系统上的每个用户有一个与他们的帐号相关联的密码。看起来这些密码只有用
户和操作系统知道。为了确保这些密码的秘密,他们通过一种叫做one-way hash 的方式来
加密,它们能被很容易地加密,但不能解密。换句话说,以前我们告诉你的通常不是真的:
操作系统通常并不真正知道密码。它只知道密码的加密形式。
加密密码的唯一安全方式是以DES 为基础的数据加密标准。这对于US 用户来说没有什
么问题,但DES 的源代码不允许被输出到US 以外的国家,FreeBSD 必须找到一个既遵守US
法律,又要与其他使用DES 的unix 兼容的方法。
解决方法是分解加密库以至于US 用户可以安装DES 库和使用DES,而国际用户也有一
个加密方法。这就是FreeBSD 为什么使用MD5 来作为默认的加密方法。MD5 被认为要比DES
更安全,所以使用DES 主要是为了兼容性的原因。
10.4.1 重新配置你的Crypt 机制
可以很容易地设置FreeBSD 使用哪种加密方法。检查/etc/master.passwd 文件中的加
密密码是一种方法。用MD5 加密的密码通常要比用DES 加密的密码长,通常以$1$字符作为
起始。DES 密码字符没有任何鉴别特征,但它们要比MD5 密码短,通常是以64 位字符的字
母表来编码的,它不包括$字符,所以通常一个不以$符号开始的很可能是DES 密码。
也可以通过区别库来鉴别密码。DES 库能够鉴别MD5 密码,使用MD5 来检查用哪种方法
加密的密码,然后用DES 加密剩下的。之所以可以这样做,是因为DES 库也包括MD5。但是,
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




