Linux

firewall-cmd设置只允许中国IP访问指定端口

首先从APNIC获取所有中国IP段并保存为ip.txt文件

wget -c http://ftp.apnic.net/stats/apnic/delegated-apnic-latest
cat delegated-apnic-latest | awk -F '|' '/CN/&&/ipv4/ {print $4 "/" 32-log($5)/log(2)}'|cat >ip.txt

利用firewall-cmd创建ipset

firewall-cmd --permanent --new-ipset=chinaIP --type=hash:net

向创建的ipset集合添加IP段

firewall-cmd --permanent --add-entries-from-file=/root/ip.txt --ipset=chinaIP

添加防火墙规则只允许指定的IP段访问目标端口

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source ipset=chinaIP port port=5001 protocol=tcp accept' --permanent

重启防火墙使规则生效

firewall-cmd --reload

查看ipset集合内有哪些IP段

firewall-cmd --ipset=chinaIP --get-entries