我想保护除办公室静态 IP 之外的所有 IP 对我们的实时 Web 服务器的 SSH 访问。
有些员工会从他们的动态 IP 连接到此实时服务器。因此,每当员工的动态 IP 发生变化时,我并不总是能够更改实时服务器中的 iptables 规则。
我尝试将它们放入办公室 VPN 并仅允许从办公室 IP 进行 SSH 访问,但与我们员工的私人互联网连接相比,办公室连接速度很慢,而且它给我们的办公室网络增加了额外的开销。
有什么方法可以解决这个问题?
答案1
我建议取消 IP 限制,并要求同时进行基于密钥和基于密码的身份验证才能登录。我认为这最终会为您提供更好的安全性,然后您就不必担心动态 IP。
答案2
您可能需要考虑端口敲击http://en.wikipedia.org/wiki/Port_knocking和http://www.zeroflux.org/projects/knock允许在有限的时间内开放特定的动态 IP,并在稍后撤销它们。
我个人没有使用过这种方法,但是网站上有一些很好的例子。
答案3
有多少员工拥有动态 IP?如果数量很少,您可以付费让他们拥有静态 IP,这样您的安全策略就可以保持完整,配置也很简单。我相信您已经考虑过这一点了。
如果您愿意放宽一些政策,理论上您可以找出您的员工 ISP 子网并限制对这些子网的访问,这可能会大大减少暴露,尽管我认为这是一种不寻常的方法。
如果你真的想确保 SSH 的安全,你应该查看密钥登录仅有的,但要求密钥受密码保护,甚至可能按计划过期。
不要授予 SSH 用户 root 访问权限。使用 sudo 授予 root 类型命令的访问权限。使用 logwatch 或类似程序来监视正在发生的事情。
此外,这是一个 Web 服务器 - 您的 SSH 默认配置可能比您故意暴露在互联网上的系统的其他方面安全得多,即使受到损害会更加严重。不要忘记保护服务器的其余部分以及您在其上运行的代码。
一个可以在这里找到有关保护 Linux 服务器的出色指南。具体来说是 CentOS/RedHat,但它涵盖了所有发行版所共有的许多选项。
答案4
配置服务器防火墙可以设置为自动将动态 IP 列入白名单。您需要为每个客户端设置一个动态域名才能实现此功能 - 一些动态 IP 站点将为您提供一个客户端可执行文件,以保持 IP 为最新。我为此使用 no-ip.com。