在哪里维护中央源代码库?


10

关于确保对源代码的访问的最佳行业做法是什么?我在考虑通过apache进行的仅SSL连接允许在不影响其他端口的晦涩端口上转移到我们的服务器。困扰我的是将源代码存储在面向公众的服务器上,即不仅可以通过LAN访问。而且,该服务器有多种用途。Apache已经为其他公司内部网站提供服务。我希望每个人都可以从任何地方(房屋,机场等)访问源代码,只要他们具有正确的凭据即可。有什么建议吗?

Answers:


13

如果您担心它位于面向公众的服务器上,但希望从任何地方进行访问,则应考虑让开发人员使用基于客户端的VPN远程登录网络以访问内部源代码控制服务器。


1
您能否解释一下为什么您认为VPN比基于SSL / TLS的服务器更安全的原因,因为两者都需要“面向公众”?VPN使用对SSL / TLS的常用加密。因此,如果您可以破解VPN,您将获得一切。
马特2010年

1
@Matt如果没有理由将他的存储库放在公共场所,那么为什么要将它放在那里?此外,VPN可能会对他的开发人员有其他好处。您还将注意到,我从未在任何地方说过“ VPN比SSL / TLS更安全”,所以不要在嘴里说:)
phoebus 2010年

1
真正。我认为myr声明中暗含了安全性。也许您可以限定以下条件:“如果您担心它位于面向公众的服务器上”
Matt

我认为,在VPN后面拥有专用服务器/服务是分层方法的一部分。它有助于防止可能导致源公开的配置错误。不需要,但很聪明。
马丁·海姆斯

4

我不太确定为什么人们会认为VPN方法是最好的。它不一定更安全,仅提供我能想到的一项优势。

例如,众所周知PPTP的安全性不尽人意,尽管我认为自从首次引入以来它已经有所改进...所以请注意使用哪种VPN解决方案。我会选择OpenVPN或IPSEC。

但是,如果没有VPN,您将无法享受SSL / TLS的便利(请进一步阅读)。为了使其更加安全,您只能使其成为证书。

但是,如果您认为您可能会提供源控制以外的其他服务,那么请考虑使用VPN解决方案,因为您将在其上建立其他服务的通道。

使用VPN的缺点是您的PC实际上成为其所连接的网络的一部分。这也是一个优势。但是,如果您离家一百万英里,并且与家庭基地的网络连接不太快,那么每次您要进行比较或签入或签出代码时,您可能会发现自己正在连接和断开VPN。

作为开发人员,我可以从个人经验谈起,做这件事真是让人头疼!!!理想情况下,两个选项都是首选。

因此,如果您要浏览网络等,则可能会使阅读新闻等速度变慢。但是至少您可以安全访问电子邮件。因此,请考虑一下您将如何首先使用它...如果我是我,则考虑同时实现两者。


3

其实,我喜欢你的建议。如果您仅通过SSL / TLS来访问源代码存储库,并且确定您的开发人员没有使用易于暴力破解的口令(或者最好使用证书),那么它应该和任何东西一样安全。 。

相反,您可以将服务器隐藏在局域网内,并迫使开发人员使用VPN进行访问,但这仅意味着开发人员需要将其用户名/密码(和/或证书)放入另一个登录框中。我建议不要在您的网络中创建一个入口点,该入口点的安全隐患可能并不总是显而易见的,只是为了允许访问一项服务。如果您已经为其他用途配置并保护了VPN,那么请确保这是一件容易的事,请继续使用它。否则,通过SSL / TLS直接使服务本身可用可能更简单,因此更安全。


3

行业标准可能取决于您(或您的客户)的行业:-)

实际上,您需要考虑要授予谁访问权限,以及他们可以处理的内容。您可能想要/需要访问的某些人所能应付的不仅仅是用户名/密码。其他人也许可以绕过ssh,并且只要您可以安全地获取给他们的密钥,私钥就可以了。TortoiseSVN客户端可以处理ssh + svn并通过一些手臂扭曲来支持私钥。对于我来说,这已经足够了。

VPN隧道也是一个合理的建议,尽管在许多地方,您很乐意让外部人员访问您的源代码控制,而不是整个网络!


2

像其他人一样,我更喜欢VPN。一种替代方法是SSH隧道,我实际上以为实际上是一种VPN。


0

使其仅内部使用,并实施远程用户VPN解决方案。/ Doh-重复。


0

如果您想从任何地方访问,则需要一台面向公众的服务器-这很清楚。

在该服务器上,您希望公开的尽可能少,最好仅公开 Mercurial / Subversion,而不公开其他任何内容。这是为了防止安全漏洞从源代码控制扩展到公司的其他部门。因此,当Matt说VPN可能很危险时,我会同意他的观点:VPN提供的访问范围超出了所需。

对于Mercurial,您可以通过使用hg-ssh限制通过SSH连接的客户端可用的命令来紧密锁定所有内容。通过使用SSH,您可以轻松地要求客户端使用公共密钥身份验证而不是密码。这样可以保护您的服务器免受暴力登录攻击。

即使SSH密钥被盗用(也许它的密码短语很弱,并且存储它的笔记本电脑被盗了),攻击者可能造成的最严重破坏还是在Mercurial中添加了垃圾记录。所使用的协议本质上是仅追加的,因此不能使用删除任何协议hg push

对于HTTPS,身份验证由前端Web服务器完成。这意味着您可以根据需要获得客户端站点证书,从而获得安全性,例如上面的SSH公钥身份验证。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.