xtable geoip 过滤器无法加载到内存中

xtable geoip 过滤器无法加载到内存中

好的,

我遇到了一个奇怪的问题。我刚刚完成了服务器的基本配置。添加了 fail2ban、postfix、apache、mysql 等。

然后我进入并开始添加 xtable 插件。我下载了版本,1.47.1因为据我所知,这是我的内核的最新版本。2.6.32-431.23.3.el6.x86_64

在禁用 IPv6 选项进行编译后,编译总是会抛出错误,我更新了我的 geoip 数据库,确保 BE 和 LE 文件夹在里面,/usr/share/xt_geoip并添加了这个过滤器:

-A INPUT -m geoip ! --src-cc US -j REJECT --reject-with icmp-net-unreachable

但当我这样做时,我收到了这条消息:

iptables: Invalid argument. Run `dmesg' for more information.

dmesg 中的最后一条记录如下:

xt_geoip: unable to load 'US' into memory: -12

所以现在我陷入了困境。这是我在任何服务器上第一次遇到这个问题。这是我的第一台 CentOS 6 服务器,我过去的所有服务器都使用 Centos 5。

我确实知道代码中的错误来自哪里(xt_geoip.c 文件的第 86 行),但我知道这会很有帮助。

答案1

检查编译后的文件是否为空。按照此处的说明操作后,我遇到了同样的错误:

http://terminal28.com/how-to-block-countries-using-iptables-debian/

...发现 iv6 文件有数据,但 .iv4 文件全是空的,我想是因为我第一次运行时缺少“unzip”包。

检查确认.CSV 文件中有数据,运行此命令重新构建:

 ./xt_geoip_build -D /usr/share/xt_geoip *.csv

...并且能够立即使用 iptables 的国家代码。

相关内容