优化Linux内核

1  优化Linux内核参数

1.1  优化sysctl.conf

Vi /etc/sysctl.conf

net.ipv4.tcp_max_syn_backlog = 65536

Net.core.netdev_max_backlog = 32768

Net.core.somaxconn = 32768

        Net.core.wmem_default = 8388608

        Net.core.rmem_default =8388608

        Net.core.rmem_max = 16777216

        Net.core.wmem_max = 16777216

        

        Net.ipv4.tcp_timestamps = 0

        Net.ipv4.tcp_synack_retries = 2

        Net.ipv4.tcp_syn_retries = 2

         

        Net.ipv4.tcp_tw_recycle = 1

        #Net.ipv4.tcp_tw_len = 1

        Net.ipv4.tcp_tw_reuse = 1

        Net.ipv4.tcp_mem = 94500000 915000000 927000000

        Net.ipv4.tcp_max_orphans = 3276800

        #Net.ipv4.tcp_fin_timeout = 30

        #Net.ipv4.tcp_keepalive_time = 120

        Net.ipv4.ip_local_port_range = 1024 65535

    

        屌丝可以只改这些:

           net.ipv4.tcp_syncookies = 1

             net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_max_syn_backlog = 2048

net.ipv4.tcp_keepalive_time = 1800

net.ipv4.tcp_keepalive_probes = 5

net.ipv4.tcp_keepalive_intvl = 15

             net.ipv4.tcp_fin_timeout = 30

        配置生效方式:

        /sbin/sysctl -p   

        /sbin/sysctl -e -p /etc/sysctl.conf

          加入自启动生效:修改/etc/rc.local,加入以上任一行代码.

另一种方式修改sysctl文件,仅供参考:(不重启服务器,配置立即生效)

#sysctl -w net.ipv4.tcp_max_syn_backlog=2048

#sysctl -w net.ipv4.tcp_syncookies=1

#sysctl -w net.ipv4.tcp_synack_retries=3

#sysctl -w net.ipv4.tcp_syn_retries=3

1.2  优化Nginx请求数

1. ulimit -SHn 65535

2. 在/etc/rc.local 中增加一行 ulimit -SHn 65535

3. nginx.conf 更改,添加以下

    worker_rlimit_nofile 65535;

1.3  SYN FLood攻击

简单介绍

对付SYN FLood攻击,可以采取以下几种方式进行缓解,

第一,减少系统SYN等待时间(只能缓解攻击),

第二,对攻击源地址进行过滤(但是对于伪造精细的报文无效),

第三,修改系统SYN_back_log上限(只能缓解攻击),

第四,将系统SYN的重发次数降低(可以缓解攻击),

第五,如果是Linux系统,可以升级内核并设置Syn_cookies(极大缓解攻击)。

查看syn连接

# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

# netstat -na |grep SYN_RECV |grep 80 |wc -l

#  iptables -L

优化方式

1. Syn 洪水攻击

# iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

2. 防端口扫描

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j  ACCEPT

3. 开放mysql端口命令

# iptables -I INPUT -s 10.77.50.0/24 -p tcp --dport 3306 -j ACCEPT 

4. 或直接修改 vi /etc/sysconfig/iptables,在commit前添加

-A FORWARD -p tcp --syn -m limit --limit 1/s --limit-burst 5 -j ACCEPT

-A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

-A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

5. 屏蔽和解放ip命令

               屏蔽IP

            #屏蔽单个IP的命令是

iptables -I INPUT -s 95.9.250.54 -j DROP

#屏蔽80端口 

iptables -I INPUT -p tcp --dport 80 -s 113.81.2.173 -j DROP

#封整个段即从123.0.0.1123.255.255.254的命令

iptables -I INPUT -s 123.0.0.0/8 -j DROP

#IP段即从123.45.0.1123.45.255.254的命令

iptables -I INPUT -s 124.45.0.0/16 -j DROP

#IP段即从123.45.6.1123.45.6.254的命令是

iptables -I INPUT -s 123.45.6.0/24 -j DROP 

解封IP的话:

iptables -D INPUT -s IP地址 -j REJECT

              保存方式


iptables-save >/etc/sysconfig/iptables 

iptables-restore <  /etc/sysconfig/iptables

service iptables save

Service iptables restart

 

 

1.4  防cc攻击 写shell 判断ip连接数

#!/bin/sh

status=`netstat -na|awk '$5 ~ /[0-9]+:[0-9]+/ {print $5}' |awk -F ":" -- '{print $1}' |sort -n|uniq -c |sort -n|tail -n 1`

NUM=`echo $status|awk '{print $1}'`

IP=`echo $status|awk '{print $2}'`

result=`echo "$NUM > 150" | bc`

if [ $result = 1 ]

then

echo IP:$IP is over $NUM, BAN IT!

/sbin/iptables -I INPUT -s $IP -j DROP

fi

1.4  网址查询记录

http://sec.chinabyte.com/423/12613423.shtml 

Linux下如何查找CC攻击

http://netsecurity.51cto.com/art/201305/393377.htm 

Linux下如何查CC攻击?

http://www.laonan.net/blog/68/    

linux下的压力测试工具webbench

http://wenku.baidu.com/view/ab0830f1f61fb7360b4c65d6.html 

内核优化 tcp相关

http://down.chinaz.com/server/201202/1615_1.htm 

Nginx优化教程 实现突破十万并发

http://blog.sina.com.cn/s/blog_7429b9c80100s1xz.html 

nginx优化 突破十万并发

http://www.2cto.com/Article/201111/110104.html 

看我linux如何防SYN攻击

http://www.chaoshan.cn/a/yuanneidanwei/jisuanjixinxigongchengxi/xuexiyuan/2011/1111/1818.html 

linux防御-SYS攻击者过招实录

http://blog.csdn.net/cnbird2008/article/details/8494661 

Nginx简单防御CC攻击的两种方法 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值