Linux/VPS屏蔽指定国家IP(ipv4)
-
前言
ipset 是 iptables 的扩展,它允许你创建匹配整个 IP 地址集合的规则。可以快速的让我们屏蔽某个 IP 段。这里分享一个屏蔽指定国家的 IP 访问的方法和一个屏蔽国外 IP 访问(仅允许国内 IP 访问)的方法,当我们遇到 CC 攻击,可以尝试选择和使用能有所缓解。屏蔽指定国家的IP
首先需要得到国家 IP 段,下载地址:http://www.ipdeny.com/ipblocks/。这里以我们国家为例。1、安装 ipset
#Debian/Ubuntu系统
apt-get -y install ipset#CentOS系统
yum -y install ipset2、创建规则(这里已国内ip为例)
#创建一个名为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; done3、禁用tcp连接
iptables -I INPUT -p tcp -m set --match-set cnip src -j DROP4、禁用udp连接
iptables -I INPUT -p udp -m set --match-set cnip src -j DROP5、禁用单个tcp端口
iptables -I INPUT -p tcp --dport 12345 -m set --match-set cnip src -j DROP6、禁用单个udp端口
iptables -I INPUT -p udp --dport 12345 -m set --match-set cnip src -j DROP7、禁用多个tcp端口
iptables -I INPUT -p tcp -m multiport --dports 35761,38707 -m set --match-set cnip src -j DROP