老狗VPS,稳如老狗!老狗加固VPS的方法比较简单,就是关闭端口、禁IP。vps总会被机器扫,变得很卡,每次都添加策略又比较机械,所以学习了一个批量ban IP的bash脚本。
思路:将一些来路不明的IP全部禁掉
#!/bin/bash
iptables_str=$(netstat -utanp | awk '{print $5}'|sed 's/:.*//'|sort|uniq|grep "[0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}")
#将服务器中的连接按行输出,连接IP是用正则查找的[].[].[].[]
rm ban.sh
for val in ${iptables_str[@]}; do
if [ "$val" == "$1" ]; then
echo "host is $val"
#查看是否输入IP(./1.bash <IP>)
else
echo "iptables -I INPUT -s $val -j DROP" >> ban.sh
fi
done
echo "service iptables save" >> ban.sh
echo "service iptables restart" >> ban.sh
echo "###########ban.sh###########"
cat ban.sh
| 状态 | 描述 |
| CLOSED | 无连接 |
| LISTEN | 正在侦听 |
| SYN_SENT | 客户端应用已经开始,发送一个SYN请求建立连接 |
| SYN_RECV | 服务端发出ACK确认客户端的SYN,同时自己向客户端发出一个SYN,等待客户端对连接请求的确认。 |
| ESTABLISHED | 一个打开的连接,可进行数据交互 |
| FIN_WAIT1 | 主动关闭,请求中断 |
| CLOSE_WAIT2 | 被动关闭,等待本地用户发起中断请求 |
| FIN_WAIT2 | 主动关闭后,另一边已同意释放 |
| LAST_ACK | 被动关闭后,发出的FIN(收到) |
| TIME_WAIT | 主动关闭后收到了很多ACK,时间够就结束。 |
| CLOSING | 较少见,两边同时尝试关闭 |













