hosts.allow 和 hosts.deny WHM 主机访问控制 - 如果我的 IP 发生变化怎么办?

hosts.allow 和 hosts.deny WHM 主机访问控制 - 如果我的 IP 发生变化怎么办?

我想使用 WHM/Cpanel 的主机访问控制界面来更改 hosts.allow 和 hosts.deny 中的某些设置。我想阻止除我们办公室的 IP 之外的所有 SSH 访问。

Daemon  Access List             Action      Comment
sshd      ALL EXCEPT x.x.x.x        deny          Deny access from all other IPs apart from ours

但我担心如果我们的 IP 发生变化(大约每周两次),会发生什么情况。我该如何重新编辑 hosts.allow / hosts.deny 文件?

答案1

  1. 为您的办公室 IP 订阅免费动态 DNS(大量)。
  2. 确保定期更新动态 DNS。
  3. 主机拒绝添加:sshd: ALL
  4. 主机允许添加:sshd: /path/to/allowed_ip.file
  5. 在你的主机的 crontab 上:*/30 * * * * host your_office_ddns_domain | awk '{print $4}' > /path/to/allowed_ip.file
  6. 你完成了。

警告:在使用远程主机的 tcpd 包装器时,请确保始终保持实时 ssh 会话打开,因为如果您出现错误,将无法建立新的连接。

答案2

你不会。所以,如果你没有静态 IP 来限制访问,就不要通过 IP 来限制对服务器的访问。如果你禁用密码 SSH 访问,只允许通过公钥访问,那么你可以向全世界开放 SSH 访问,而不会有实际的泄露风险。更危险的是 WHM 网络控制面板,它就像一个漏洞百出的瑞士奶酪,很难保护——是您想要重点关注安全的地方。

答案3

更新:请在下面写下答案。在ssh协议中,客户端不提供主机名,因此tcp_wrappers很可能基于客户端的 IP 地址反向名称,而这显然不受您控制。

总而言之,坦率地说,您不应该使用基于 IP 的安全性ssh。您不能指望 IP 地址能够正确识别互联网上的任何人。

您应该使用提供强大安全性的 RSA 密钥对,并禁用基于密码的身份验证。

如果你真的需要额外的安全保护,可以再进一步:添加 VPN 或双因素身份验证(例如 尤比克,并不是说我对他们的业务感兴趣)。


我可能会说显而易见的事情:在中使用主机名而不是 IP /etc/hosts.{allow,deny}

然后,如果 IP 经常更改,您可以使用任何提供低 TTL 的 DNS 提供商。

但是如果名称解析中断,您就陷入困境了!因此,我强烈建议您还允许“跳转主机”:一台您可以访问的具有静态 IP 地址的机器。如果您的资源有限,可以使用朋友的服务器。

您将在 中找到有关这些文件的可能性的更多内容hosts_access(5)

请注意,Arch Linux 认为该hosts.{allow,deny}技术 ( tcp_wrappers) 已过时 (公告)这并不意味着它很快就会出现在更主流的发行版中,但前景看起来也并不光明。

相关内容