我应该使用防火墙端口转发功能还是让我的服务监听其他端口?

我应该使用防火墙端口转发功能还是让我的服务监听其他端口?

我有一个 VPS,我用它来运行自己的电子邮件服务器,它位于互联网的以太网上,我可以通过 SSH 访问它。我的日志显示我每天有 500 次左右的连接尝试失败,所以我想关闭默认的 SSH 端口并打开一个替代端口,而且我想从另一个端口访问我的 SMTP 服务,因为我的 ISP 阻止了端口 25。

该服务器是 Debain Squeeze,运行 Postfix 和 OpenSSH 并使用 Shorewall 作为防火墙。

假设上述做法被认为是良好做法(如果不是,请告诉我如何实现我的目标),我应该在防火墙上使用端口转发还是让服务在其他端口上运行并使用防火墙打开/阻止适当的端口?具体来说,我想知道为什么一种方法比另一种方法更受欢迎。

答案1

替代港口

服务运行的原因有很多(好的和坏的都有)。典型的好理由有:

  • 在非特权端口上运行服务
  • 绕过不方便的端口过滤
  • 服务修改,使其不具有典型行为

转发端口

端口转发通常是一种安全措施,而端口过滤则不是(或至少不应该是)。端口过滤通常也使用与服务分开的防火墙运行,通常是让防火墙在单独的服务器上运行。这有助于遏制(限制)运行服务时可能出现的一些漏洞。端口过滤的原因:

  • 安全
  • 服务/服务器分离

答案2

我会改变服务本身的端口。

对于 sshd,这很容易,只需修改 /etc/ssh/sshd_config 并更改指令Port。确保万一出现问题,您有其他方式可以进入。

对于 postfix,根据您的情况,您可能希望启用其他端口进行监听,而不是替换端口 25(因为如果您没有打开 25,服务器到服务器的传入邮件将停止)。编辑 master.cf,查找行smtpd并为要监听的端口添加额外的行(此示例中为 2525):

  25      inet  n     -     n     -     -     smtpd
2525      inet  n     -     n     -     -     smtpd

另外,请考虑更换为不会阻止端口且无法选择退出的 ISP。

这样做的主要优点是降低了复杂性 - 您希望服务监听这些端口,而引入另一个组件 (iptables) 来为您执行此操作则会增加复杂性。我认为在做出此类决定时,保持简单是首要考虑因素。

答案3

我倾向于建议更改防火墙的端口而不是服务 - 如果您选择切换其他端口或服务器,您只需要迁移防火墙规则,而不是追逐六种不同的配置。

相关内容