我有一个安装了 Firewalld 的 CentOS 7 最小版本,它充当公司的防火墙/路由器。在网络内部,我们有一个 git 服务器,我们将其命名为:gitlab-server。我希望它可以通过互联网访问,这样我们也可以从其他地方使用我们的存储库。我们通过 SSH 克隆存储库,出于安全原因,没有其他可用的东西。现在的问题是:如何使用防火墙将传入连接转发到特定 IP 地址,但前提是 SSH 的用户名为git
?
愚蠢的方式:我想执行git clone git@gitlab-server:myuser/myrepository.git
并能够在家完成。而且有时我必须推动,所以我git push origin master
也需要执行。
答案1
在启动 SSH 连接时,FirewallD 无法知道请求的用户 ID 是什么——它只知道有人正在启动与端口 22 的连接。
您可以通过在客户端上添加 SSH“ProxyCommand”来实现类似的功能,参考 https://superuser.com/questions/107679/forward-ssh-traffic-through-a-middle-machine:
# .ssh/config on hostA:
Host hostC
ProxyCommand ssh hostB -W %h:%p