分享或允许访问trac和svn以避免互联网用户安全的最佳做法?

什么被认为是最好的做法,分享或允许从互联网的用户是非公司相关的访问tracsvn

如果它在DMZ上,它应该是内部的某种forms的SSH连接或使用https?

如果你这么做,并且是安全的偏执,那么假设WAN上有基本的防火墙,那么最好的实践列表应该是如何在networking上像一个外围区域一样(远离内部用户,双重防火墙) 。

提前致谢。

假设你确实是偏执狂(又称矫枉过正):

  1. 在防火墙子网中放置一个反向代理(例如,使用apache2),只能通过https访问,只能从需要访问的外部用户的所选ip地址访问[这可以防止对apache / svn / trac中可能的漏洞进行盲目攻击] 。 转发只需要有效的URL [例如/ svn和/ trac]到位于单独子网中的实际服务器。 确保这个代理只能到达你的实际服务器,只能在80 / tcp端口上。 没有其他的。
  2. 把你的实际svn / trac服务器放在单独的子网中,控制访问:允许来自公司内部和代理的传入http连接。 不允许传出连接。

如果限制访问#1明确列出IP范围不是一个选项 – 再考虑一些forms的网守 – 以避免盲目的攻击。

在代理级别 – 考虑使用:

  • modsecurity避免例如对trac的sql注入/ xss攻击,
  • fail2ban对svn / tracauthentication机制的字典攻击有点困难。

取决于你的预算是什么。

尝试在前面的防火墙只允许HTTPS访问和两个方面的SSL在Apache的一面。

如果我这样做了,我会把trac放在公司主防火墙外面的一个盒子里,但是在防火墙规则里面放置防火墙来阻止对ssh(对于我)和http(对其他人)的访问。

另一个select可能是问自己:我们应该主持这个吗? 它会在sourceforge或savannah更好吗?{non} gnu.org或github?

只有https访问的标准服务器是相当安全的解决scheme,具有有限数量的开放端口等。

偏执configuration可以是公司以外的用户的VPN(例如openvpn )访问。 Trac和svn只能从您的私人networking和VPN访问。 用户访问VPN将由您签发的证书进行保护。 当然,没有其他的服务器和内部networking可以从VPN访问。

当然,这个解决scheme当然是唯一可能的,那就是来自公司以外的人员相当稳定,而且不会太大。 如果这些用户和特定人员的数量发生变化,那么使用https访问和良好的设置防火墙的第一个灵魂将成为唯一的(并被很多人和公司所使用)。