如何在我的防火墙中使用GeoLite2数据库(mmdb)阻止除DE以外的所有国家?
发布于 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中的行将类似于
-A INPUT -m set ! --match-set ipv4_de src -j DROP这将删除不在ipv4_de集中的任何IP。
发布于 2019-02-25 18:07:51
iptables有geoip模块,默认情况下它不包括在Linux中。您可以安装xtables加载项:
apt-get install xtables-addons-common xtables-addons-dkms
wget -O geolite2-csv.zip https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country-CSV.zip ; unzip geolite2-csv.zip
csv数据库转换为二进制文件,可用于查找。wget -O - http://people.netfilter.org/acidfu/geoip/tools/gcsv2bin.tar.gz | tar xzf -
make./gcsv2bin path_to_IPv4.csv
xt_geoip模块:sudo modprobe xt_geoip
sudo iptables -A INPUT -m geoip --src-cc DE -j DROP
其中,--src-cc的参数是CountryCode。
https://unix.stackexchange.com/questions/502907
复制相似问题