优化Linux内核
来源:互联网 发布:堆排序算法java实现 编辑:程序博客网 时间:2024/05/22 02:02
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.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即从123.45.6.1到123.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攻击的两种方法
- varnish linux 内核优化
- linux内核优化
- 优化Linux内核参数
- linux 内核参数优化
- Linux内核参数优化
- Linux 内核网络优化
- Linux 内核网络优化
- 优化Linux内核
- Linux 内核优化
- Linux内核优化
- 优化linux内核参数
- Linux 内核优化
- linux 内核参数优化
- Linux 内核优化
- linux 内核优化
- linux内核优化
- linux内核优化
- linux内核参数优化
- 操作系统核心对象与GDI对象
- python copy模块
- MVC razor 中 RenderPartial, RenderAction , Partial , Action 的使用选择
- iOS 6 by Tutorials Chinese Version Now Available!
- 各大企业邮箱发件限制
- 优化Linux内核
- 二极管名称-按功能分
- C语言精确获得消耗时间
- HDU-2444 二分图的判别和最大匹配数。
- 删除集合中重复的数据
- ibc++是一个C++标准库实现
- Android应用开发中的风格和主题(style,themes)
- 黑马程序员--03.面向对象--02.子类和父类成员变量的关系【个人总结】
- n&(n-1)的妙用