需求:服务器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
}
,完成了