首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止国家(iptable或firewalld)通过GeoLite2 mmdb

如何阻止国家(iptable或firewalld)通过GeoLite2 mmdb
EN

Unix & Linux用户
提问于 2019-02-25 15:05:03
回答 2查看 9.1K关注 0票数 2

如何在我的防火墙中使用GeoLite2数据库(mmdb)阻止除DE以外的所有国家?

EN

回答 2

Unix & Linux用户

发布于 2019-06-28 15:22:55

您可以从熟透 (欧洲注册中心)获取德国IP地址,并使用它们创建ipset。然后,在iptables中使用ipset是简单而有效的。

RIPE拥有API和web资源,可以按国家获取IP地址。例如,要获得德国in,这个URL将以.json格式列出它们:

https://stat.ripe.net/data/country-resource-list/data.json?v4_format=prefix&resource=de

实际上,我有一个脚本(https://github.com/mivk/ip-country/blob/master/get-ripe-ips),我从crontab调用它来更新IP列表。并使用该列表更新ipset。

一旦您拥有了ipset,如果您将它称为ipv4_de,则iptables中的行将类似于

代码语言:javascript
复制
-A INPUT -m set ! --match-set ipv4_de src -j DROP

这将删除不在ipv4_de集中的任何IP。

票数 2
EN

Unix & Linux用户

发布于 2019-02-25 18:07:51

iptablesgeoip模块,默认情况下它不包括在Linux中。您可以安装xtables加载项:

apt-get install xtables-addons-common xtables-addons-dkms

  1. 获取MaxMinds geoip数据库(请注意,如果使用免费的数据库,这些数据库可能会过时)

wget -O geolite2-csv.zip https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country-CSV.zip ; unzip geolite2-csv.zip

  1. 下载gcsv2bin,它将将csv数据库转换为二进制文件,可用于查找。
代码语言:javascript
复制
wget -O - http://people.netfilter.org/acidfu/geoip/tools/gcsv2bin.tar.gz | tar xzf - 
make
  1. 转换实际数据库:

./gcsv2bin path_to_IPv4.csv

  1. 加载xt_geoip模块:

sudo modprobe xt_geoip

  1. iptables规则:

sudo iptables -A INPUT -m geoip --src-cc DE -j DROP

其中,--src-cc的参数是CountryCode。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/502907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档