我想保护从我们的办公室静态IP以外的所有IP访问我们的实时Web服务器的SSH。
有些员工通过dynamicIP连接到这台实时服务器。 因此,只要员工的dynamicIP发生变化,我并不总是可以在活动服务器中更改iptables规则。
我试图把他们放在办公室的VPN,只允许从办公室的IP访问SSH,但办公室连接相比,我们的员工的私人互联网连接速度慢,此外,它增加了额外的开销,我们的办公室networking。
有什么办法可以解决这个问题吗?
我会build议丢失IP限制,并要求基于密码和基于密码的身份validation才能login。 我认为这将最终为您提供更好的安全性,然后您将不必担心dynamicIP。
我个人并没有使用这个方法,但是在网站上有一些好看的例子。
有多less员工拥有dynamicIP? 如果只有一小部分,您可以付钱给他们获得静态IP,并保持安全策略的完整性和configuration的简单性。 我相信你已经考虑过了。
如果你愿意放松一些政策,理论上你可以find你的员工的ISP子网,并限制访问这些,这可能会大大减less暴露,虽然我认为这是一个不寻常的方法。
如果您认真对待SSH保护,则应该仅查看密钥login,并且要求密钥受密码保护,甚至可能按计划到期。
不要给你的SSH用户root权限。 使用sudo来访问根types命令。 使用日志或类似的东西来关注正在发生的事情。
此外,这是一个networking服务器 – 即使妥协会更严重,您的SSH默认configuration可能比您故意向互联网公开的系统的其他方面安全得多。 不要忘记保护服务器的其余部分以及在其上运行的代码。
在这里可以find保护Linux服务器的绝佳指南 。 细节是CentOS / RedHat,但它覆盖了所有发行版通用的很多选项。
除了其他build议之外,您还可以考虑在非标准端口号上运行sshd。 这样做不会减缓有针对性的攻击,但是它会避免一些自动化的暴力攻击,扫描在22端口上运行sshd的主机。
ConfigServer防火墙可以设置为自动将dynamicIP列入白名单。 您需要为每个客户端设置一个dynamic域名才能使其工作 – 一些dynamicIP站点将为您提供一个客户端可执行文件,以保持IP最新。 我使用no-ip.com来达到这个目的。
有些防火墙支持使用DNS条目,所以像http://www.no-ip.com/services/managed_dns/free_dynamic_dns.html这样的服务可以用来限制访问。
如果你只是想使用iptables,你可能会有脚本来检查DNS名称(我不认为iptables支持使用DNS条目来授予访问权限)。
但凯尔在要求基于密钥的身份validation方面有很好的答案。 我不知道如何要求密钥和密码,所以我的方法是要求密钥访问服务器。