![限制ldap和linux用户只能使用ssh?](https://linux22.com/image/178113/%E9%99%90%E5%88%B6ldap%E5%92%8Clinux%E7%94%A8%E6%88%B7%E5%8F%AA%E8%83%BD%E4%BD%BF%E7%94%A8ssh%EF%BC%9F.png)
我有一台 RHEL 7 服务器,我们将其用作跳转盒来对所有服务器进行身份验证。通常,用户会从本地计算机登录到 Jumpserver(rhel 7),然后登录到各自的虚拟机,但最近用户将数据存储在 Jumpserver 中的目录中,这是一个非常小的虚拟机,我们不知道用户在其中存储任何数据 -事实上,我希望通过禁用所有其他运行任何命令的权限来限制用户仅将其用作跳转服务器。
流程:localmachine(open-ldap auth) --> Jumpserver-rhel 7(仅 ssh) ---> 虚拟机
有人可以阐明如何限制域/LDAP 和 linux 用户只能使用 ssh,除了跳转到虚拟机之外什么也不做。
Env:一切都是基于 rhel 7 的。
答案1
根据您的用户的聪明程度,您可能必须禁用 SFTP。
对于 SSH 部分:您可以
- 将每个人的 shell 设置为
rbash
- 创建例如
/usr/local/bin/restricted
- 创建一个符号链接
ssh
(也许还有其他允许的命令)/usr/local/bin/restricted
- 设置
$PATH
为/usr/local/bin/restricted
仅在/etc/profile
//etc/bash.bashrc
- 删除所有主目录(和)中的
~/.bash_profile
、~/.bash_login
、 和~/.profile
/etc/skel
答案2
您可以使用一个脚本ForceCommand
进行配置sshd_config
,该脚本检查是否仅在这种情况下以该命令行SSH_ORIGINAL_COMMAND
启动并运行该命令行。ssh
所以用户必须使用
ssh jumphost ssh realtarget
代替
ssh jumphost
ssh realtarget
并在交互式 shell 中运行。