分类: LINUX
2011-06-13 16:40:59
安装完linux系统后,除了做了系统必要的安全以及优化配置后,还需要对内核进行相应的调优,参数如下:
sysctl -w net.ipv4.conf.eth0.accept_source_route=0
sysctl -w net.ipv4.conf.lo.accept_source_route=0
sysctl -w net.ipv4.conf.default.accept_source_route=0
sysctl -w net.ipv4.conf.all.accept_source_route=0
是否接受含有源路由信息的ip包。1表示接受,0表示不接受。在充当网关的linux主机上缺省值为1,在一般的linux主机上缺省值为0。从安全性角度出发,建议关闭该功能。
sysctl -w net.ipv4.tcp_syncookies=1
开启TCP SYN cookies,保护服务器避免受syn-flood攻击,包括服务取决denial-of-service (DoS) 或者分布式服务拒绝distributed denial-of-service (DDoS).如果服务器负载较大,一般把该功能关闭。
sysctl -w net.ipv4.conf.eth0.secure_redirects=1
sysctl -w net.ipv4.conf.lo.secure_redirects=1
sysctl -w net.ipv4.conf.default.secure_redirects=1
sysctl -w net.ipv4.conf.all.secure_redirects=1
“安全重定向”就是只接受来自网关的“重定向”icmp包。该参数就是用来设置“安全重定向”功能的。参数值为布尔值,1表示启用,0表示禁止,缺省值为启用。
sysctl -w net.ipv4.conf.eth0.accept_redirects=0
sysctl -w net.ipv4.conf.lo.accept_redirects=0
sysctl -w net.ipv4.conf.default.accept_redirects=0
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.eth0.send_redirects=0
sysctl -w net.ipv4.conf.lo.send_redirects=0
sysctl -w net.ipv4.conf.default.send_redirects=0
sysctl -w net.ipv4.conf.all.send_redirects=0
如果主机所在的网段中有两个路由器,你将其中一个设置成了缺省网关,但是该网关在收到你的ip包时发现该ip包必须经过另外一个路由器,这时这个路由器就会给你发一个所谓的“重定向”icmp包,告诉将ip包转发到另外一个路由器。参数值为布尔值,1表示接收这类重定向icmp 信息,0表示忽略。在充当路由器的linux主机上缺省值为0,在一般的linux主机上缺省值为1。建议将其改为0以消除安全性隐患。
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
表示内核是否忽略广播和多播请求。
0, 响应请求
1, 忽略请求
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
某些路由器违背RFC1122标准,其对广播帧发送伪造的响应来应答。这种违背行
为通常会被以告警的方式记录在系统日志中。如果该选项设置为1,内核不会
记录这种警告信息。
sysctl -w net.ipv4.tcp_tw_reuse=1
表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。如果前端机负载比较高,建议打开。
缺省设置:0
sysctl -w net.ipv4.tcp_tw_recycle=1
打开快速 TIME-WAIT sockets 回收。如果前端机负载比较高,建议打开。
缺省设置:0
sysctl -w net.ipv4.tcp_fin_timeout=30
对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。默认值为 60 秒。
sysctl -w net.ipv4.tcp_keepalive_time=1800
表示从不再传送数据到向连接上发送保持连接信号之间所需的秒数。
缺省设置:7200(2小时)
sysctl -w net.core.wmem_max=8388608
指定了发送套接字缓冲区大小的缺省值(以字节为单位)。
缺省设置:110592
sysctl -w net.core.rmem_max=8388608
指定了接收套接字缓冲区大小的最大值(以字节为单位)。
缺省设置:131071
sysctl -w net.ipv4.tcp_rmem="8192 87380 8388608"
该文件包含3个整数值,分别是:min,default,max
Min:为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下TCP socket都至少会有这么多数量的内存用于接收缓冲。
Default:为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的 net.core.wmem中default的 值。该值决定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win的默认值情况下,TCP 窗口大小为65535。
Max:为TCP socket预留用于接收缓冲的内存最大值。该值不会影响 net.core.wmem中max的值,今天选择参数 SO_SNDBUF则不受该值影响。
缺省设置:4096 87380 174760
sysctl -w net.ipv4.tcp_wmem="8192 16384 8388608"
该文件包含3个整数值,分别是:min,default,max
Min:为TCP socket预留用于发送缓冲的内存最小值。每个TCP socket都可以使用它。
Default:为TCP socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmem中default的 值,一般要低于net.core.wmem中default的值。
Max:为TCP socket预留用于发送缓冲的内存最大值。该值不会影响net.core.wmem_max,今天选择参数SO_SNDBUF则不受该值影响。默认值为128K。
缺省设置:4096 16384 131072
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目。默认1024