服务器防止并发连接脚本(基于iptables)

需求:服务器http并发连接数多的就用iptables拒绝掉

思路:

1,首先通过netstat统计当前http连接数(大于3个连接就将连接数统计值和连接IP重定向到/根/black.txt)

2,将白名单IP写入到/root/white.txt(防止之后iptables将一些正常请求的IP拒绝掉)

3,运行命令awk/root/black.{打印$ 2}txt获取打印连接数过高的IP地址

4,定义一个变量dropip,其类型为数组

5,循环数组里面的值(,$ {dropip[@]}表示数组下标的所有值)

6,行动”拒绝IP $ {var} "/bin/true这个被我注释掉了,主要是用来调试的时候用了下



[root@linux-node8测试]#猫iptables.sh 

# !/bin/bash

#

。/etc/init.d/功能

httpcc=' netstat怡安| grep“172.2.0.68:80”| grep,“飞行符“| awk的{打印5美元}|切- d”:“- f 4 | |排序uniq - c | awk的1美元在3 {printf $ 1 " \ t " $ 2 " \ n "}的祝辞/根/黑色。睡眠txt”

dropip=6 (awk的{打印$ 2}/root/black.txt)


的var $ {dropip [@]},

,

grep”$ var "/root/white.吗三,在/dev/null

[, $ ?- ne 0],,{

iptables -输入- p tcp - s $ var - j DROP 

回声“iptables -输入- p tcp - s $ var - j下降"祝辞祝辞/root/deny_ip.日志

#行动”拒绝IP $ {var} "/bin/true睡眠3

}

,完成了


服务器防止并发连接脚本(基于iptables)