hosts.allow和hosts.deny WHM主机访问控制 – 如果我的IP更改?

我想使用WHM / Cpanel的主机访问控制界面来更改hosts.allow和hosts.deny中的一些设置。 我想阻止从我们办公室的IP上获得我们的SSH免除。

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

但是我担心如果我们的知识产权发生变化会发生什么事情,一周两次。 我将如何重新编辑hosts.allow / hosts.deny文件?

  1. 订阅免费的dynamicDNS(大量)为您的办公室IP。
  2. 请务必定期更新该dynamicDNS。
  3. hosts.deny中添加: sshd: ALL
  4. hosts.allow中添加: sshd: /path/to/allowed_ip.file
  5. 在主机的crontab上: */30 * * * * host your_office_ddns_domain | awk '{print $4}' > /path/to/allowed_ip.file */30 * * * * host your_office_ddns_domain | awk '{print $4}' > /path/to/allowed_ip.file
  6. 你完成了。

警告:在玩弄远程主机的tcpd包装时,请务必始终打开一个活动的ssh会话,因为如果出现错误,将无法build立新的连接。

你不会的。 所以,如果你没有一个静态的IP来限制访问,那么不要通过IP来限制对服务器的访问。 如果您禁用密码SSH访问,并且只允许通过公共密钥访问,则可以打开对世界的SSH访问权限,没有实际的危险。 更危险的是WHM网页控制面板,这是一个瑞士奶酪的脆弱性,不能轻易保护 – 就是你想要集中安全注意力的地方。

更新:请下面的答案。 在ssh协议中,客户端不提供主机名,所以tcp_wrappers可能基于客户端的IP地址反向名称,这显然是你不能控制的。

总的来说,坦白说,你不应该使用基于IP的安全性的ssh 。 您不能期望IP地址能正确识别Internet上的任何人。

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

如果你真的想要一个额外的安全层,进一步:添加一个VPN或双重身份validation( Yubikey ,不是我对他们的业务感兴趣)。


我可能会说明这一点:在/etc/hosts.{allow,deny}使用主机名而不是IP。

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

但是,如果名称parsing中断,你卡住了! 所以我强烈build议同时允许一个“跳转主机”:一个具有你可以访问的静态IP地址的机器。 朋友的服务器可以做,如果你的资源是有限的。

您将在hosts_access(5)find更多关于这些文件的可能性。

请注意,Arch Linux认为hosts.{allow,deny}技术( tcp_wrappers )死亡( 通告 )。 这并不意味着它会在更多的主stream发行版中随时随地出现,但是未来也不会很亮。