另外,你可以配置接受或拒绝任何ICMP重定向。ICMP重定向是路由器传输路由信息的机制。比如,当网关接收到来自所接网络主机的Internet数据报时,网关可以发送重定向信息到一台主机。网关检查路由表获得下一个网关的地址,第二个网关将数据报路由到目标网络.关闭这些重定向得命令如下:
◆如果这个服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能:
◆配置服务器拒绝接受广播风暴或者smurf 攻击attacks:
◆忽略所有icmp包或者pings:
◆有些路由器针对广播祯发送无效的回应,每个都产生警告并在内核产生日志.这些回应可以被忽略:
针对TCP和UDP的调优
下边的命令用来对连接数量非常大的服务器进行调优.
◆对于同时支持很多连接的服务器,新的连接可以重新使用TIME-WAIT套接字. 这对于Web服务器非常有效:
如果你使用该命令,还要启动TIME-WAIT 套接字状态的快速循环功能:
图Figure
10-7显示出将这些功能启用,连接数量明显降低.因为每个TCP传输都包含远程客户端的协议信息缓存,所以有利于提高性能.缓存中存放round-trip时间、最大segment大小、拥塞窗口的信息。
◆参数tcp_fin_timeout
是套接字关闭时,保持FIN-WAIT-2状态的时间。一个TCP连接以three-segment SYN序列开始,
以three-segment FIN序列结束.均不保留数据.通过改变tcp_fin_timeout的值,
从FIN序列到内存可以空闲出来处理新连接的时间缩短了,使性能得到改进.改变这个值的前要经过认真的监测,避免因为死套接字造成内存溢出.
◆服务器的一个问题是,同一时刻的大量TCP连接里有很多的连接被打开但是没有使用.
TCP的keepalive功能检测到这些连接,缺省情况下,在2小时之后丢掉.
2个小时的可能导致内存过度使用,降低性能.因此改成1800秒(30分钟)是个更好的选择:
◆对于所有协议的队列,设置最大系统发送缓存(wmem) 和接收缓存(rmem)到8MB
这些设置指定了创建TCP套接字时为其分配的内存容量.
另外,使用如下命令发送和接收缓存.该命令设定了三个值:最小值、初始值和最大值:
第三个值必须小于或等于wmem_max和rmem_max。
◆(SUSE LINUX Enterprise Server适用)
通过保留路径验证来源数据包。缺省情况下,路由器转发所有的数据包,即便是明显的异常网络流量。通过启动和是的过滤功能,丢掉这些数据包:
◆当服务器负载繁重或者是有很多客户端都是超长延时的连接故障,可能会导致half-open连接数量的增加。这对于Web服务器很来讲很平常,尤其有很多拨号客户时.这些half-open连接保存在
backlog connections 队列中.将这个值最少设置为4096 (缺省为1024).
即便是服务器不接收这类连接,设置这个值还能防止受到denial-of-service (syn-flood)的攻击.
◆设置ipfrag参数,尤其是NFS和Samba服务器。这里,我们可以设置用于重新组合IP碎片的最大、最小内存。当ipfrag_high_thresh值被指派,碎片会被丢弃直到达到ipfrag_low_thres值。
当TCP数据包传输发生错误时,开始碎片整理。有效的数据包保留在内存,同时损坏的数据包被转发。例如,设置可用内存范围从256
MB到384 MB