为什么公司不允许 ssh 链接 gitlab

2022-10-21 13:15:03 +08:00
 breadykidliu

遇到 3 家公司不允许了,前两家是员工个位数的小作坊,搭建 gitlab 的人技术菜,我可以理解。
但是现在入职了中厂,有专门的的运维部门,运维人也不少,也不允许 ssh ,只能密码链接。
觉得无法理解,是有什么安全问题吗?

10056 次点击
所在节点    程序员
76 条回复
fox0001
2022-10-22 09:16:54 +08:00
是不是怕用户使用 ssh 登录 gitlab 服务器?
asuraa
2022-10-22 09:25:45 +08:00
我们公司就跟你们不一样 我们禁止密码连接 只允许 ssh 连接
James369
2022-10-22 09:41:44 +08:00
在我看来,90%的代码都是没用的,不要把代码看得那么值钱的样子,值钱的不是代码而是产品
nanmu42
2022-10-22 10:02:53 +08:00
Gitlab 的 ssh 本身的安全性还是挺有保障的,没有 shell ,我分析过,写了一篇文章:

当你 git push 时,Gitlab 上发生了什么?
https://nanmu.me/zh-cn/posts/2022/what-happens-on-gitlab-when-you-do-git-push/
SteveRogers
2022-10-22 10:10:40 +08:00
@Nitroethane
1.深 x 服对上传流量识别和终端抓取的访问记录匹配
2.定期扫描 github 里面含有内部关键词的仓库(国内安全大厂有这个服务直接买就行)
SteveRogers
2022-10-22 10:12:03 +08:00
@nanmu42 企业安全不会考虑技术上的绝对安全,只考虑相对、关键好管控,能轻易抓到违规才是安全人员的职责
SteveRogers
2022-10-22 10:13:18 +08:00
@JohnBull 内网确实要允许,是安全人员偷懒了
libook
2022-10-22 10:14:15 +08:00
HTTPS 是 HTTP 外套 TLS/SSL ,协商的时候大体上是:客户端接收服务器公钥和签名,根据客户端上的 CA 证书来验证服务器可信(认证),然后使用服务器公钥发送客户端的公钥和数据,服务器用服务器私钥解密再用客户端公钥加密数据返回,客户端用客户端私钥解密。
SSH 是 Secure Shell ,协商的时候大体上是:客户端接收服务器公钥,然后看本地是否记录过,未记录再提示用户验证是否可信(认证),然后客户端生成对称秘钥,用 Diffie - Hellman 算法在不直接传输秘钥的情况下、以服务器公钥加密相关参数的形式然后服务器自己把这个对称秘钥算出来,然后双方通过这个临时对称秘钥加密通信。
总体来说只要验证身份阶段把好关、秘钥和算法足够强、私钥不泄露,两种方式都是十分安全的。
关于 SSH 端口,其实可以分开运维用端口和 Git 端口,一种简单方式是把 Git 服务部署在 Docker 等隔离环境中,内部配置 SSHD 仅允许 git 用户访问 git-shell ,需要运维则登录到宿主机再使用 Docker 的 exec 指令打开 shell 操作。SSH 不使用 22 端口,用户也可以在客户端配置 remote 的时候指定其他端口。
有的企业可能规定不允许记住登录状态,比如配置公钥自动登录这种就不符合要求,但其实可以打开两步验证,实际上现在等保会要求两种及以上验证方式同时使用。
个人认为题主的情况要么是因为其他原因,要么是运维人员水平有限,要么是安全负责人员懒政。
SteveRogers
2022-10-22 10:14:53 +08:00
@swulling 对、两道防线
1.所有机器加域了、证书早就内置了
2.大厂还部署了专门的解密器、所有流量复制了一份给解密器,异步解密识别
SteveRogers
2022-10-22 10:16:59 +08:00
@James369 所以阿里、腾讯相对宽松一些、互联网的安全主要防攻击、对内部人员的行为不会太严,他们主要聚焦核心算法、或极少数核心代码、对大部分人设置红线。
SteveRogers
2022-10-22 10:17:41 +08:00
@darklinden 流量识别、你换啥端口都一样、我们后台看到的都是 ssh 协议
leonshaw
2022-10-22 10:49:46 +08:00
前面有说了,SSH 没有 PKI 支持,需要额外的 host key 信任机制。大家 ssh 的时候有几个会注意 finger print 的?
wangyzj
2022-10-22 11:06:58 +08:00
只用 https 对基础设施运维扩展长期是有好处的
对于流量监控审计也更方便
当然,不上规模的企业也不用考虑这些
ho121
2022-10-22 11:41:23 +08:00
盲猜是网关屏蔽了所有生产环境的 22 端口,gitlab 是只是顺带屏蔽了,而不是故意不开 gitlab 的 ssh
darklinden
2022-10-25 10:01:30 +08:00
@SteveRogers 我前面回复的是禁用 22 端口的问题。
为了拆所有的包看于是自定义证书然后只允许 https ?有路由不知道是 git 服务器的 ssh 连接,有记录不知道是 git 服务器的提交,所有代码提交都要安全部门过一遍,安全部门可以拿到所有的代码和更改?有种东厂西厂的感觉了
SteveRogers
2022-12-27 08:40:20 +08:00
@darklinden 22 禁用主要是不方便识别。公司出去的流量必须拆包识别出来、防止打包带走的行为的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/888699

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX