有没有办法限制用户仅允许从一台服务器登录?

有没有办法限制用户仅允许从一台服务器登录?

我的老板担心未经授权的登录和跟踪员工所连接的服务器。他想出了这种方法,希望我尝试实施。我不希望有人为我做这件事,但我想分享建议的方法,看看有什么方法可以做到这一点。

这个概念很简单……我们将设置一个“登录服务器”。所有用户都将连接到 Ubuntu LINUX 服务器,我们称之为“中央”。该服务器已安装 oathtool 以允许双因素身份验证,并且该功能已运行。我输入登录名“sample”,它会提示输入来自 Google Authenticator 的六位数代码。接下来它会提示输入个人密码。如果两者都成功,则允许用户进入系统。

现在事情变得有点奇怪了。从这台中央身份验证 PC 上,公司希望我们的用户必须通过 SSH 连接到我们网络上的其他各种服务器。例如,您可能必须使用“ssh dvlp_server”来执行开发工作,或者使用“ssh acme-corp”跳转到客户服务器。但他们不希望任何用户在没有先通过中央登录服务器授权的情况下直接进入该目标服务器。换句话说,我可以打开一个 putty 会话并以“steve@central”的身份通过 ssh 连接到中央服务器,然后从那里通过 ssh 连接到 dvlp-server,但我绝不应该被允许使用 putty 直接进入“steve@dvlp-server”。

这有可能预防吗?是否有某种 /etc/hosts.allow 文件强制 SSH 会话仅在源自特定服务器或 IP 地址时才进行连接?

目前我知道的唯一方法是向 /etc/profile 添加逻辑,这样在您登录后,它会验证您的主机名或 IP(使用 who -m 字段),如果名称不是“central”或 IP 不是“xxx.xxx.yyy.zzz”,则将您踢出。但这意味着我只能在他们已经登录后捕获登录,然后强制他们退出。目的首先是不接受来自非中央服务器的登录!

如果有人能给我指明正确的方向,比如命令、更好的身份验证方法的链接等,我真的会用到的。我不确定老板希望我实施的是否真的是最好的方法。目前,我们还没有考虑 Active Directory 或 LDAP 服务器,但也许我们应该考虑?我们已经在一些服务器上使用了 RSA SecurID 2FA。但我认为他们想要一个开源解决方案。

提前感谢有关更好方法的任何想法。

史蒂夫

答案1

看起来这个问题的解决方案可能与更改 sshd_config 文件有关。

其中有一个“匹配”选项部分,我之前不知道。我们可以强制 SSH 仅在连接来自特定 IP 地址(或可能是主机名)或用户名在授权(匹配)名称列表中时才接受流量。您甚至可以将其组合起来……例如,UserA 只能在来自 192.168.77.251 时才能连接。

更多信息请访问此处: 限制 SSH 中的某些用户或组

相关内容