将 shellinabox 用户限制为特定帐户

将 shellinabox 用户限制为特定帐户

设置和目标

我正在运行一台服务器,ssh并且shellinabox希望将登录限制为 shellinabox仅限一个特定用户。

推理与方法

出于安全原因,主用户仅main_acc具有基于证书的ssh访问权限(直接使用ssh且在 LAN IP 范围之外时)。我可以确认通过命令从互联网访问时密码访问不起作用ssh

shellinabox使用情况下,必须通过密码登录,因为这是专门针对我的电脑没有可用私钥的情况。这个想法是通过使用具有受限制的 shell 的“代理”用户来添加一层安全性,shiabox_acc其中唯一允许的命令是在本地主机上ssh执行的main_acc。这样我就拥有两层密码和两层可以用来fail2ban给暴力攻击者带来困难的层。

所以我所做的是

  1. sshd_config
  • 用户main_acc一般没有密码认证
  • main_acc允许从 LAN-IP 范围和端口 22 进行密码身份验证(出于本地维护原因)
  • 用户shiabox_acc在端口 1011(shellinabox 端口)上允许从本地主机进行密码身份验证
  1. apache网站设置中
  • revese 代理将对我网站的 ssh-loaction 的访问转发到shellinabox端口
  1. 在路由器防火墙设置上
  • 无法从 WAN 访问端口 1011
  • 端口 22 和 443 已开放

现在问题来了:

仍然可以main_acc通过via和密码登录。shellinabox

为什么?如何限制shiabox_acc只能访问?

根据我的理解,apache 在端口 443 上接收基于网站的请求,并将其在本地主机上转发到端口 1011。然后ssh规则应该将访问端口与 1011 匹配,因此不允许main_acc.

我哪里错了?

PS:我知道用于apache身份验证的选项,但更想了解为什么我的方法失败。


设置在/etc/ssh/sshd_config

#Global:
#DenyUsers
AllowUsers main_acc
PasswordAuthentication no

#shellinabox access
Match LocalPort 1011 User shiabox_acc
        PasswordAuthentication yes
        PubkeyAuthentication no

#LAN access w/ password
Match Address <LAN-IP>,127.0.0.1,::1 LocalPort 22 User main_acc
        PasswordAuthentication yes
        PubkeyAuthentication yes

站点中的设置apache

<Location /shellinabox>
    ProxyPass http://localhost:1011/
    Order allow,deny
    Allow from all
</Location>

shellinabox设置:

SHELLINABOX_PORT=1011
SHELLINABOX_ARGS="--no-beep --localhost-only --disable-ssl"  

版本

  • 阿帕奇/2.4.57
  • ShellInABox 版本 2.20
  • 操作系统:Raspbian 12

相关内容