阐明:伏笔VPS很早前发过VPS一键遮挡指定国度IP的教程,检察:Linux VPS一键遮挡指定国度一切的IP拜访,这关于咱们阻遏某个国度拜访网站和CC袭击仍是很有效的,不外鉴于许多人必要白名单设置方式,考虑了下,发明也能够用ipset来完成,这边就说下,眼前测试是没成绩的。
方式
率先必要获得国度IP段,下载地点:http://www.ipdeny.com/ipblocks/。这边以咱们国度为例。
1、装置ipset
#Debian/Ubuntu体系
apt-get -y install ipset
#CentOS体系
yum -y install ipset
CentOS 7还必要封闭firewall防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
2、创办划定规矩
#创办一个名为cnip的划定规矩
ipset -N cnip hash:net
#下载国度IP段,这边以中国为例
wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone
#将IP段增加到cnip划定规矩中
for i in $(cat /root/cn.zone ); do ipset -A cnip $i; done
3、设置IP段白名单
#放行IP段
iptables -A INPUT -p tcp -m set --match-set cnip src -j ACCEPT
#关掉一切端口
iptables -P INPUT DROP
这时候候就除非指定国度的IP能拜访效劳器了。
如其你在海内,网站不容许被海内人拜访,提议别关一切端口,这么你的SSH会上不去,咱们能够只封闭80/443端口。
#封闭指定端口,譬如80/443
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP
这时候候其他国度的IP是没法拜访你效劳器的80/443端口,即是没法拜访你的网站,别的端口仍是能够拜访的。
4、剔除划定规矩
#将参数里的-A改成-D执意剔除划定规矩了,如
iptables -D INPUT -p tcp -m set --match-set cnip src -j ACCEPT
iptables -D INPUT -p tcp --dport 443 -j DROP
阐明
设置防火墙后,可能性有些效劳重视启体系后会清空防火墙划定规矩,招致设置的失灵,因而咱们设置划定规矩后,必要应用iptables号令保留下,保留号令可能性在许多体系中都欠亨用,这边就不说了,必要入席自行搜刮处理了,有耐性的也能够每回重启的时辰都从头设置一下防火墙。
网友评论