iptables的IP端口限制
解决问题
使用iptables
设置只允许中国的IP访问本机的53端口,并在需要时删除相关规则。
解决方案步骤
获取中国的IP段:
- 下载中国的IP段数据文件:
1
wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone
- 下载中国的IP段数据文件:
**安装并配置
ipset
**:- 安装
ipset
:1
2sudo apt-get install ipset # 对于Debian/Ubuntu系统
sudo yum install ipset # 对于CentOS系统 - 创建一个名为
cnip
的规则:1
sudo ipset -N cnip hash:net
- 将中国的IP段添加到
cnip
规则中:1
2
3for i in $(cat /root/cn.zone); do
sudo ipset -A cnip $i
done
- 安装
配置
iptables
规则:- 允许中国的IP访问53端口:
1
sudo iptables -A INPUT -p udp -m set --match-set cnip src -m udp --dport 53 -j ACCEPT
- 关闭其他国家的IP访问53端口:
1
sudo iptables -A INPUT -p udp --dport 53 -j DROP
- 允许中国的IP访问53端口:
删除
iptables
和ipset
规则:- 删除
iptables
规则:1
2sudo iptables -D INPUT -p udp -m set --match-set cnip src -m udp --dport 53 -j ACCEPT
sudo iptables -D INPUT -p udp --dport 53 -j DROP - 删除
ipset
规则:1
sudo ipset destroy cnip
- 删除
备注
按省份分类IP库地址
https://github.com/metowolf/iplist
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自Zelang's Blog
评论 ()