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