好,
我有一个奇怪的问题。 我刚刚完成了我的服务器的基础configuration。 添加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
并添加了这个filter:
-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行),但是我知道这会有很大的帮助。
检查你的编译文件是不是空的。 按照以下说明操作后,我遇到了同样的错误:
http://terminal28.com/how-to-block-countries-using-iptables-debian/
…发现iv6文件有数据,但.iv4的文件都是空的,我想是因为我第一次运行时丢失了“unzip”软件包。
检查确认.CSV文件中有数据,运行此命令重新构build:
./xt_geoip_build -D /usr/share/xt_geoip *.csv
…并能够立即使用iptables的国家代码。