我们使用frp进行内网穿透服务或者其他网络服务的时候往往会遇到黑客对我们的服务器进行攻击,为了避免服务器被攻击可以使用iptables对访问的IP进行管理。
封IP和IP段
- 封单个IP访问
iptables -I INPUT -s 89.2.122.34 -j DROP
- 解封单个IP
iptables -D INPUT -s 89.2.122.34 -j DROP
- 封整个IP段
iptables -I INPUT -s 89.0.0.0/8 -j DROP
89.0.0.0/8次写法是Linux的IP段写法,有兴趣的可以去了解一下,不多介绍。
- 解封整个IP段
iptables -D INPUT -s 89.0.0.0/8 -j DROP
查看iptables的规则
iptables -vnL
iptables --list
上面两个写法都行,可以查看哪些IP被封了
限制访问服务器的频率
这里的例子是ssh服务器一个小时超过2次就封IP,等1个小时后再解封,这样既保证了自己人可以访问服务器,也让境外势力或者其他别有用心的黑客估计你服务器,拿你服务器挖矿。
iptables -I INPUT 1 -p tcp -m tcp --dport 6000 -m state --state NEW -m recent --set --name gk
iptables -I INPUT 2 -p tcp -m tcp --dport 6000 -m state --state NEW -m recent --update --seconds 3600 --hitcount 2 --name gk -j DROP
iptables -I INPUT 3 -p tcp -m tcp --dport 6000 -j ACCEPT
这里dport指的是端口号,我的服务器ssh用frp开了内网穿透服务,用6000端口访问。seconds是时间3600秒是一个小时,hitcount是访问次数,超过2次密码错误就干掉。
删除iptables的规则
先用iptables --list
或者iptables -vnL
查看现有的规则,iptables的优先级是自上而下,第一行规则的编号就是1,第二行就是2。删除第一行的规则可以用:
iptables -D INPUT 1
注意数好行数,删除第二行就是:
iptables -D INPUT 2
删除完后原来的第二行会变成第一行,望周知,别搞错了。