Chinaunix首页 | 论坛 | 博客
  • 博客访问: 349733
  • 博文数量: 54
  • 博客积分: 497
  • 博客等级: 下士
  • 技术积分: 612
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-16 20:05
个人简介

行动…Don\'t ever let somebody tell you, you can\'t do something. you got a dream, you gotta protect it. people can\'t do something themselves they wanna tell you you can\'t do it.if you want something. go get it.

文章分类

全部博文(54)

文章存档

2021年(3)

2018年(1)

2017年(18)

2016年(7)

2015年(4)

2013年(1)

2011年(20)

我的朋友

分类: LINUX

2011-05-17 13:52:46

对其它子系统的影响:影响CPU利用率,尤其在有大量TCP连接、块尺寸又非常小时,内存的使用会明显增加。
 
 
如何预防性能下降

  如下的sysctl命令用于改变安全设置,但是它也可以防止网络性能的下降。这些命令被设置为缺省值。

  ◆关闭如下参数可以防止黑客对服务器IP地址的攻击(注:“0”为允许,“1”为拒绝)

    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

 

◆开启TCP SYN cookies,保护服务器避免受syn-flood攻击,包括服务取决denial-of-service (DoS) 或者分布式服务拒绝distributed denial-of-service (DDoS) (仅适用Red Hat Enterprise Linux AS)

     sysctl -w net.ipv4.tcp_syncookies=1

 

◆以下命令使服务器忽略来自被列入网关的服务器的重定向。因重定向可以被用来进行攻击,所以我们只接受有可靠来源的重定向。

     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重定向。ICMP重定向是路由器传输路由信息的机制。比如,当网关接收到来自所接网络主机的Internet数据报时,网关可以发送重定向信息到一台主机。网关检查路由表获得下一个网关的地址,第二个网关将数据报路由到目标网络.关闭这些重定向得命令如下:

     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

 

◆配置服务器拒绝接受广播风暴或者smurf 攻击attacks:

     sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1

 

◆忽略所有icmp包或者pings:

      sysctl -w net.ipv4.icmp_echo_ignore_all=1

 

◆有些路由器针对广播祯发送无效的回应,每个都产生警告并在内核产生日志.这些回应可以被忽略:

       sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1

 

针对TCP和UDP的调优

  下边的命令用来对连接数量非常大的服务器进行调优.

  ◆对于同时支持很多连接的服务器,新的连接可以重新使用TIME-WAIT套接字. 这对于Web服务器非常有效:

        sysctl -w net.ipv4.tcp_tw_reuse=1

如果你使用该命令,还要启动TIME-WAIT 套接字状态的快速循环功能:

        sysctl -w net.ipv4.tcp_tw_recycle=1

 

◆服务器的一个问题是,同一时刻的大量TCP连接里有很多的连接被打开但是没有使用. TCP的keepalive功能检测到这些连接,缺省情况下,在2小时之后丢掉. 2个小时的可能导致内存过度使用,降低性能.因此改成1800秒(30分钟)是个更好的选择:

         sysctl -w net.ipv4.tcp_keeplive_time=1800

 

◆对于所有协议的队列,设置最大系统发送缓存(wmem) 和接收缓存(rmem)到8MB

         sysctl -w net.core.wmem_max=8388608

         sysctl -w net.core.rmem_max=8388608

 

这些设置指定了创建TCP套接字时为其分配的内存容量. 另外,使用如下命令发送和接收缓存.该命令设定了三个值:最小值、初始值和最大值:

 

sysctl -w net.ipv4.tcp_rmem="4096 87380 8388608"

sysctl -w net.ipv4.tcp_wmem="4096 87380 8388608"

第三个值必须小于或等于wmem_max和rmem_max。

 

 

 

阅读(1412) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~