您好,我使用安装了 xtables-addons 的 OpenSuse Leap 15。
如果我只想允许来自德国的端口 22/tcp 传入连接。我绑定了这个命令:
iptables -A INPUT -p tcp --dport 22 -m geoip ! --source-country DE -j DROP
我收到此错误消息:
iptables: No chain/target/match by that name
在这个论坛我读到你还需要一个 Linux 内核模块xt_geoip
。如果我运行命令modprobe xt_geoip
我明白了FATAL: Module xt_geoip not found in directory /lib/modules/4.4.104-39-default
答案1
我必须降级到较旧的内核才能解决此问题。
检查您安装的 OpenSUSE Leap15 软件包 kernel-default 和 xtables-addons-kmp-default 的版本是否不匹配。
如果版本匹配,则 xt_geoip 模块应列在当前 /lib/modules/*-default/extra 目录中。如果没有,则选择具有相同版本的较旧的 kernel-default 包并使用该内核启动。
答案2
愚蠢的问题,但是该模块 xt_geoip 实际上是在它正在寻找插件的目录中找到的(/lib/modules/4.4.104-39-default)吗?
如果模块没有安装在那里,您可能需要链接它,或者如果该模块位于其他路径中,则将路径添加到 /etc/modules 中,如本链接所示。 https://stackoverflow.com/questions/225845/how-do-i-configure-modprobe-to-find-my-module