我在服务器上使用Debian 9.8 Stretch x64。昨天,我从官方存储库将内核文件的格式从4.9.133更新为4.9.144。重新启动后,我无法访问服务器。所有端口均被阻止。我启动了VNC连接并刷新了防火墙。一切恢复正常。
我一一分析了iptables规则(我没有使用Firewalld,ufw等)。当我插入geoip模块的规则(INPUT I INPUT -m geoip --src-cc CN,IN-REJECT --reject-with icmp-port-unreachable)时,我无法继续ssh会话。我再次使用VNC删除规则。
我到目前为止所做的:
我认为模块是由内核加载的。我将尝试在测试计算机内核4.9.133中重新安装。如果可以使用,则新内核版本4.9.144中存在一个错误,该错误会导致xtables-addons / geoip模块出现问题。
答案 0 :(得分:0)
自从Maxmind在2019年1月弃用旧格式数据库以来,我遇到了类似的问题。
我还尝试还原到较旧的xt_geoip数据库文件,但未成功。我还尝试修改较新的xtables-addons脚本以从较新的Maxmind数据库下载。所有这些都失败了。
最后,我使用了https://github.com/mschmitt/GeoLite2xtables中并在Converting GeoLite2 data for use with xtables geoip中引用的转换脚本来下载和转换新的Maxmind文件。
我确实遇到了其他障碍:
1)在解决此问题的一次失败尝试中,创建了诸如“ .iv4”和“ 1.iv4”的文件。我删除了/ usr / share / xt_geoip / BE和/ usr / share / xt_geoip / LE
中的所有文件/目录/ etc2)然后,我使用上面链接中的信息从GeoLite2数据下载并构建xtables数据库文件。
3)至此,我现有的基于iptables geoip的规则仍然无法正常工作。但是删除规则并重新添加它会使其开始起作用。不肯定为什么我必须执行该操作(缓存?在创建规则时加载数据库?不知道)。