Rob*_*boy 6 authentication authorization portforwarding ssh-tunnel
如果用户位于特定的Active Directory组中,是否可以仅允许通过SSH端口隧道使用端口?
我有一台客户端计算机,一台Windows Web服务器和一台带有数据库的Linux服务器.我希望客户端能够使用SSH连接到数据库,但前提是它们位于特定的AD组中.
有没有办法实现这个目标?
基本上:没有。任何具有 shell 访问权限的用户都可以使用自己的转发器并获得对端口的访问权限。所以如果你有用户root,bob并且dbtunnel在 Linux 计算机上,这三个用户都可以“导出”对数据库的访问权限。
但你真正想做的是什么?因为在我看来,您想要加密(可能压缩)Web 服务器和数据库之间的数据库连接。您完全可以在没有 SSH 的情况下做到这一点。
使用 SSH,您可以做的是完全禁用端口转发和shell(除了该组之外)。sshd_config allowgroups支持LDAP。您将严格限制 Linux 计算机上的所有(或大多数)用户。
一些数据库(例如MySQL)提供本机加密,但与“天生”的解决方案相比,性能可能不那么好。MySQL 还具有压缩的客户端/服务器协议(每当使用第三方加密连接时最好将其禁用)。
您可以设置 VPN,并仅允许从 VPN 接口访问端口 3306。
此外,您还可以限制来自 Web 服务器的连接(SSH 和 VPN),以减少数据库计算机的攻击面。
一个奇特的解决方案是在 Linux 计算机上根本不安装 SSHd,而在 Windows 计算机上安装它,即使它对安全性没有多大作用。然后Linux机器可以与autossh客户端连接并将其本地3306端口转发到远程。Windows 计算机上的任何人仍然可以连接到数据库。而且隧道用户甚至不需要存在于 Linux 计算机上。然后,您可以禁用除管理目的之外的所有用户的 SSH 访问bob。要通过自动 SSH打开从 Linux 到 Windows 的隧道,您需要一些SSH 服务器或其他适用于 Windows 的服务器。
VPN、iptables 和反向隧道没有什么区别的原因是,攻击者如何“进入”Windows 计算机?他可能会利用网络服务器。但此时,无论 Web 服务器和数据库之间存在什么连接,攻击者都将拥有完全访问权限。他只会利用现有的连接。
因此,防火墙 IP 限制和反向隧道解决方案对于用户识别没有任何作用,因为无论如何这都是没有意义的,而是消除了非管理员用户从 Web 服务器外部访问 Linux 计算机的漏洞。
...你就完成了。
现在谁可以连接到数据库?
(*) 如果端口转发受 LDAP 限制,任何其他用户也可以执行此操作 - 他们只需要等待,直到启用 LDAP 的用户执行连接,然后他们就可以利用它。