我有一个 Ubuntu VPS,有时我会用它作为SOCKS
代理来浏览互联网。我使用 ssh 动态端口转发命令如下:
ssh -fNTC -D 1080 username@vpsIP
然后将我的浏览器的代理设置localhost:1080
为SOCKS
。
我已经创建了一个额外的用户,用户名是“哥们' 在 VPS 上让几个朋友也能够 ssh 端口转发并获得类似于 VPN 的东西(我们不需要 VPN 的网络部分)。
现在我真的不想将我的 VPS 作为 VPN 服务器运行,所以我想坚持使用 ssh 端口转发或类似功能。
我该如何预防哥们用户是否能够打开安全外壳并开始在 VPS 上搞乱事情?
答案1
那么如何去掉用户‘dudes’的外壳呢?
usermod -s /sbin/nologin dudes
或者如果你的操作系统没有 nologin :
usermod -s /bin/false dudes
答案2
可能性不大。但最简单的可能是ForceCommand
中的选项sshd_config
。它不允许运行任何命令,如果他们想运行某些命令,它将运行这个命令。
示例片段sshd_config
:
Match User dudes #your dudes user -- you can also match group
ForceCommand /bin/true
答案3
如果您使用基于密钥的身份验证(我强烈建议您这样做),那么您可以限制每个密钥通过文件可以执行的操作authorized_keys
。
command="/bin/false"
在键前面指定将阻止他们调用 shell 或除您输入的命令之外的任何命令authorized_keys
。
您还可以通过 施加其他限制authorized_keys
。有关完整列表,请参阅sshd
手册页。