老狗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 | 较少见,两边同时尝试关闭 |