如何使用 ipset 将单个国家的所有IP加入黑名单

joseph · · 937 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
IPset 是 iptables 的扩展,它允许你创建匹配整个地址集合的规则,而不像普通的 iptables 链只能单IP或单网段匹配。 ipset 规则中的IP地址集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,从而减少系统资源占用或网络拥塞。IP sets 也具备一些新防火墙设计方法,并简化了配置。ipset 的官网:https://ipset.netfilter.org/ 下面我们以一个实际场景为样例,介绍如何在Debian系统中,使用 ipset 将单个国家的左右 IP段 加入黑名单。 #### 准备工作:安装 ipset、或者网段列表 sudo apt-get -y install ipset wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone #下载国家IP段,这里以cn为例 sudo ipset -N cnip hash:net for i in $(cat ./cn.zone ); do sudo ipset -A cnip $i; done #将IP段添加到cnip规则中 #### 创建 iptables 规则 `sudo iptables -A OUTPUT -p tcp -m state --state NEW -m set --match-set cnip dst -j REJECT` 将以上规则配置为系统重启后,依然生效。 ipset save cnip -f /etc/iptables/ipset.conf #保存 iptables-save > /etc/iptables/iptables.conf #保存后请检查是否含有 -A OUTPUT -p tcp -m state --state NEW -m set --match-set cnip dst -j REJECT #### 添加自动启动脚本 vim /etc/rc.local #在exit 0之前添加以下两行,保存退出 sudo ipset restore -f /etc/iptables/ipset.conf sudo iptables-restore < /etc/iptables/iptables.conf 然后重启系统,大功告成。

关注本站微信公众号(和以上内容无关)InfraPub ,扫码关注:InfraPub

937 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传