限制用户

时间:2016-11-07 11:40:28

标签: security ssh haproxy

我正在通过互联网设置git ssh访问。

git服务器托管在私有子网中,没有公开的SSH访问权限。为了提供访问(通过公共子网),已经建立了一个HAproxy,通过互联网将SSH访问转发到后端git服务器。

我希望用户可以通过以下网址访问git:

ssh://git@my-git-server.example.com:8022/repopath.git

我的HAProxy节看起来像这样:

my-git-server
    bind *:8022",
    mode tcp",
    server git 172.16.0.1:22 check port 22"

这可以工作,并且符合要求,但是有一个固有的安全问题 - 我们也暴露了git服务器上的所有其他用户。即我也可以连接到这样的非git用户:

ssh://privateuser@my-git-server.example.com:8022

我想确保公开 git用户(即无法通过互联网访问其他用户)。

我想通过haproxy这样做,如果可能的话,但是不知道如何更改我的haproxy规则来过滤掉没有“git @”的请求的URL。 如果在HAProxy中无法实现,请听取有关如何通过git服务器上的ssh-config进行管理的建议。

1 个答案:

答案 0 :(得分:0)

即使我已经快4年了,也许有人仍然对此感兴趣。据我所知,HAProxy无法做到这一点。但是,如果您仍然使用HAProxy服务器从远程/互联网连接到它,则可以在sshd_config文件中的Git服务器上轻松执行此操作。 只需将其添加到sshd_config文件的末尾即可:

Match Address IP.OF.HAPROXY.SERVER
    AllowUsers git

这样,当流量来自HAProxy的IP时,仅允许用户git登录。不过,在重新加载sshd之前,您可能需要使用以下命令测试新的sshd配置:

sshd -t