我们终于要更换一些旧设备了,作为这项工作的一部分,我把两个很深的抽屉拉到比多年来移动过的地方更远的地方。其中一个抽屉上有防火墙,另一个抽屉上有一个连接防火墙的交换机,并且其中一根 CAT-V 电缆在我没有注意到的情况下被拉到了极限,但防火墙仍保持运行 - “它没有受到影响。”
“问题”是,内部网络不再能够到达互联网的荒野。内部网络的所有机器看起来都很好,但无法访问防火墙机器。然而,防火墙仍然保持运行,并且能够访问互联网,尽管它看不到内网上的系统。
基本的故障排除 - 只需查看 - 就会发现电缆仍处于极限状态。采购了一根更长的电缆,可以正确布线并且永远不会达到其极限,一旦安装完毕,现在,内部系统都再次看到防火墙,并且防火墙既看到外部世界又看到内部网络,但它无法正确传递数据包,即使除了电缆之外没有进行任何更改。
它应该使用 NAT 将内部网络连接传递到外部然后在内部和外部提供httpd服务。 (我原以为它还接收来自互联网的入站电子邮件,并通过端口转发将其传递到特定的内部系统,但事实证明电子邮件无法正常工作,因为电子邮件服务器通过 DNS 确认入站,并且这些查找未正确传递。) 系统可以正常进行入站和出站通话,但无法通过路由(无论有或没有 NAT)。 ...当然,幸运的是,该防火墙预计将于下周初更换,因为其新设备将于周一交付。
这个防火墙是 Linux 3.14.27-100.fc19.x86_64,可以追溯到 2014 年——就像我说的,它很旧,而且这个版本的网络软件从来没有真正正常工作过,但它已经足够好了,可以继续使用。 (同一系统也满足其他需求,例如 Web 服务)。
我很确定它有基于内核的 IP 表作为核心主力,而有缺陷的防火墙则有助于混淆事物。自从我搞乱这个以来已经很多年了,但我似乎记得有人建议我使用“重新启动时保存”功能,因为我在使用它时能够在它正常工作后捕获配置,我可能已经做到了。但如果你做错了,你可能会无意中改变规则,所以,我会尽量保持谨慎。控制它的文件是 /etc/sysconfig/iptables-config ,自从系统首次配置以来它就没有被编辑过。它的邻居文件“firewalld”没有定义任何参数,并且从那时起也没有被编辑过。
第一步:
systemctl status firewalld.service
这表明它已启动并已"ERROR: ZONE_CONFLICT"
重复两次,但带有上次系统重新启动的时间戳,早于此次故障。
防火墙的配置位于 /etc/firewalld/zones 中。有三种定义:外部、内部和公共。这些文件没有改变,而且它们的内容看起来很合理。
值得一提的是,系统启动时出现问题,我不愿意重新启动它,因为它可能无法恢复!现在至少它正在提供网页服务。 ...它将在下周某个时间被替换,但如果我可以避免的话,我不想让所有这些网站(也许 60 个?)关闭几天。
我用systemctl循环了firewalld,但没有任何变化。 ... IP 表也可以循环吗?作为内核的一部分,我不这么认为,但也许吧?
有想法吗?
更新:在某个时候,我发现网页实际上并没有被提供服务,所以在那时,就像系统完全崩溃了一样。我认为值得尝试重新启动。系统在重新启动期间挂起两次,但最终我让它启动,是的,你知道,重新启动解决了问题。系统现在既通过 NAT 传递数据包,又为这些网页提供服务。 (我现在焦急地等待 UPS 交付新硬件!)
那就是说...我有一种强烈的感觉,它应该可以在不重新启动的情况下修复。我很想听听对此的任何想法。