老狗VPS
稳如老狗!
justhost
aws
ptgidc

如何加固VPS,关于加固VPS的方法:关闭端口、禁IP

racknerd
pia云

老狗VPS,稳如老狗!老狗加固VPS的方法比较简单,就是关闭端口、禁IP。vps总会被机器扫,变得很卡,每次都添加策略又比较机械,所以学习了一个批量ban IP的bash脚本。

思路:将一些来路不明的IP全部禁掉

做法:
第一步:使用 netstat和awk找出当前TCP连接,取出正在尝试和电脑通信的IP。
第二步:1.bash运行后生成2.bash,将2.bash中授权IP 和0.0.0.0删除掉就行了。
(运行./1.bash <远程连接IP> 可将授权IP(远程连接IP、本机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
1.通过netstat和awk查看服务器的连接数:
# 查看所有的连接数
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
# 查看TCP连接数
netstat -n | grep ^tcp | awk ‘{++S[$NF]} END {for(a in S) print a, S[a]}’
2.11种state状态
状态 描述
CLOSED 无连接
LISTEN 正在侦听
SYN_SENT 客户端应用已经开始,发送一个SYN请求建立连接
SYN_RECV 服务端发出ACK确认客户端的SYN,同时自己向客户端发出一个SYN,等待客户端对连接请求的确认。
ESTABLISHED 一个打开的连接,可进行数据交互
FIN_WAIT1 主动关闭,请求中断
CLOSE_WAIT2 被动关闭,等待本地用户发起中断请求
FIN_WAIT2 主动关闭后,另一边已同意释放
LAST_ACK 被动关闭后,发出的FIN(收到)
TIME_WAIT 主动关闭后收到了很多ACK,时间够就结束。
CLOSING 较少见,两边同时尝试关闭
未经允许不得转载:老狗VPS » 如何加固VPS,关于加固VPS的方法:关闭端口、禁IP
标签: