| 
 | 
| 对sysctl参数进行修改 
 $ sudo sysctl -a  | grep ipv4 | grep syn
 输出类似下面:
 
 net.ipv4.tcp_max_syn_backlog = 1024
 net.ipv4.tcp_syncookies = 0
 net.ipv4.tcp_synack_retries = 5
 net.ipv4.tcp_syn_retries = 5
 
 
 net.ipv4.tcp_syncookies是是否打开SYN COOKIES的功能,“1”为打开,“2”关闭。
 net.ipv4.tcp_max_syn_backlog是SYN队列的长度,加大队列长度可以容纳更多等待连接的网络连接数。
 net.ipv4.tcp_synack_retries和net.ipv4.tcp_syn_retries是定义SYN重试次数。
 
 把如下加入到/etc/sysctl.conf即可,之后执行“sysctl -p”!
 
 net.ipv4.tcp_syncookies = 1
 net.ipv4.tcp_max_syn_backlog = 4096
 net.ipv4.tcp_synack_retries = 2
 net.ipv4.tcp_syn_retries = 2
 提高TCP连接能力
 
 net.ipv4.tcp_rmem = 32768
 net.ipv4.tcp_wmem = 32768
 net.ipv4.sack=0   #我的Centos 5.4 提示没有这个关键字
 使用iptables
 
 命令:
 
 # netstat -an | grep ":80" | grep ESTABLISHED
 
 来查看哪些IP可疑~比如:221.238.196.83这个ip连接较多,并很可疑,并不希望它再次与221.238.196.81有连接。可使用命令:
 
 iptables -A INPUT -s 221.238.196.81 -p tcp -d 221.238.196.83 --dport 25 --syn -j ACCEPT
 
 这是错的
 
 我认为应该这样写
 
 iptables -A INPUT -s 221.238.196.83 -p tcp -j DROP
 
 
 将来自221.238.196.83的包丢弃.
 
 对于伪造源IP地址的SYN FLOOD攻击。该方法无效
 
 其他参考
 
 防止同步包洪水(Sync Flood)
 
 # iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
 也有人写作
 
 # iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
 --limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改防止各种端口扫描
 
 # iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
 Ping洪水攻击(Ping of Death)
 
 # iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
 
 
 BSD
 
 运行:
 
 sysctl net.inet.tcp.msl=7500
 为了重启有效,可以将下面折行加入 /etc/sysctl.conf:
 
 net.inet.tcp.msl=7500
 | 
 |