保护SSH后破坏Zimbra

我有一台安装了Zimbra的CentOS 5.7服务器,并且一切正常。

我只是通过以下方式保护SSH

  • 换到另一个端口
  • 否认rootlogin
  • 启用StrictModes
  • AllowUsers更改为只有1个用户(不是zimbra
  • 禁用RSAAuthentication
  • 启用PubkeyAuthentication
  • 禁用PasswordAuthentication
  • 禁用ChallengeResponseAuthentication

上述的工作,作为允许的用户SSH和服务器,su'ing根/ sudoing。

但是,当我login到我的webmail,我无法发送/接收任何消息了。 Eeek!

通过在网上进行一些search,看起来Zimbra内部使用ssh来与其他Zimbra模块进行通信。

任何人都知道如何解决这个问题?

我不能真正的testing这个,因为我没有一个Zimbra的testing设置,但是我猜想把zimbra用户添加到AllowUsers并且把ssh端口设置回22就足够了。

如果你对在标准端口上暴露ssh感到紧张,应该可以configurationsshd监听你的替代端口以及端口22,并且使用iptables将端口22的访问权限限制在本地IP地址上。 (就我个人而言,我更喜欢在其标准端口上留下ssh,并限制源IP地址,但如果您没有固定的源IP地址,则这可能不实际)。

如果你对将zimbra用户暴露给世界感到紧张,你可能需要查看pam_access来限制zimbra用户可以从哪个IP地址进行SSH连接。

也就是说,我有一种感觉,根据你列出的标准,你的服务器还有更多的东西不仅仅是破坏性的SSH访问。 Zimbra并不需要ssh来发送电子邮件等常规的东西,而是主要用于pipe理目的。 您可能想检查/var/log/opt/zimbra/log

我build议您恢复到原始设置,并一次启用一项function。

您可以做的主要事情是将rootlogin设置为“without-password”以防止root用户密码login(如果需要的话,允许密钥validation)。

对于ssh端口,您的环境中是否有硬件或外部防火墙? 如果是这样,你可以让ssh监听多个端口。 例如22和2222。 只要限制来自世界的入境访问到您的备用端口。

我认为AllowUsers指令可能是问题的一部分。 您可以通过检查/ var / log / secure日志来确定这一点。

无需返回到22号港口(我在这里使用1234):

 # su - zimbra $ zmprov ms domain.tld zimbraRemoteManagementPort 1234 $ ssh -vi .ssh/zimbra_identity -o strictHostKeyChecking=no [email protected] -p 1234