针对ddos攻击实用命令

查看连接数汇总

# netstat -n|awk '/^tcp/{++S[$NF]}END{for (key in S) print key,S[key]}'
LAST_ACK 10
SYN_RECV 15
ESTABLISHED 462
FIN_WAIT1 2
FIN_WAIT2 1
TIME_WAIT 989

### 查看ESTABLISHED连接数

# netstat -na | grep ESTABLISHED  | awk '{print$5}' | awk -F : '{print$1}' | sort | uniq -c | sort -rn

### 查看TIME_WAIT连接数

# netstat -na | grep TIME_WAIT  | awk '{print$5}' | awk -F : '{print$1}' | sort | uniq -c | sort -rn

### TIME_WAIT连接数过高

#### TIME_WAIT原因:

TCP/IP协议设计中主动关闭的一方在发送最后一个 ack 后就会进入 TIME_WAIT 状态 停留2MSL(max segment lifetime)时间

#### 解决

vim /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1 开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 修改系統默认的 TIMEOUT 时间

注意:改变以上系统配置可能会引发未知的TCP错误,建议不要修改。

### iptables限制某个IP访问80

iptables -A INPUT -p tcp -d 192.168.1.1 --dport 80 -j DROP

标签:none

评论已关闭