当我处理配置文件时,尤其是邮件服务器的配置文件时,我想暂时删除除端口 22 之外的所有传入流量。因此,如果我需要将邮件服务器移动到另一台服务器或类似操作,我不会冒丢失传入邮件的风险。
使用 shorewall,我该怎么做?
我正在考虑创建一个规则文件,将所有流量转移到不存在的内部 IP,并在需要时将其与正常文件切换。
答案1
您可以编写一个小脚本来停止 shorewall 并使用不同的目录配置重新启动它:
# shorewall 停止
# shorewall 启动 /etc/shorewall-temp
当您需要旧配置时,我认为 shorewall 重新启动只需使用默认参数重新启动即可。
答案2
我假设“互联网”是 NET,而您的内部机器是 LOC。根据您海岸墙的需求进行更改。
您说的是端口 22,并且谈到了邮件。我假设您想丢弃所有流量并仅允许 SSH 流量。不允许所有邮件流量?
在规则文件中,使用 DNAT 转发流量。
DNAT net loc:192.168.0.3:22 tcp 22
这会将流量转发到防火墙 ($FW) 上的端口 22(通常是 SSH),再转发到内部 IP 192.168.0.3
如果您想要丢弃所有流量,请在 shorewall 规则文件中执行以下操作(规则的顺序很重要):
ACCEPT net loc:mailserver_ip tcp 22
REJECT net loc:mailserver_ip
当然,您需要将 mailserver_ip 更改为正确的 IP。其次,如果邮件服务器与 shorewall 位于同一台服务器上。您应该使用 $FW 而不是 loc:mailserver_ip 来表示这一点
答案3
我按照 Pier 的建议对我的 Watchguard 防火墙做了类似的事情:我保留了 2 个配置文件,一个是我的生产配置文件,另一个阻止所有传入服务,除了那些我想在执行维护时继续传入的服务。当我安排了维护时,我只需加载我的维护配置,完成后再加载生产配置。