我有一个网络服务器,我目前正在一家专门托管 svn 的公司支付 SVN 托管费用。
我想在我的专用服务器上安装 SVN,这有什么安全隐患吗?
Small correction to Jedi: it's VisualSVN Server from http://www.visualsvn.com/server/
我使用来自http://www.visualsvn.com/server/的VisualSVN 服务器,非常容易安装并且可以与活动目录集成。在win2008上安装没有问题。
这取决于你想考虑这个问题的程度。
如果你想自己安装 Subversion 服务器,看起来你有两个选择:
无论哪种情况,问题不在于两人做了什么,而在于两人无意中做了什么。
如果 Apache 中存在允许外部攻击者访问您的数据的错误,那么这很糟糕。如果 Subversions 自己的服务器中存在允许相同的错误,那就不好了。
您需要做的是考虑场景的风险和后果,并在可能的情况下提出满足您要求的服务器设置。
您至少必须考虑的情况是:
就我个人而言,我已经考虑过现在有多少通过 Apache 托管 subversion 服务器,并且毫无疑问地安装了VisualSVN Server来托管我自己的源代码。
对于简单的安全要求,使用 svnserve 设置 Subversion 几乎是微不足道的。即使让它在 Apache 下运行以满足更广泛的安全需求也不是太困难。
这是一个很好的演练:
http://donie.homeip.net:8080/pebble/Steve/2006/02/27/1141079943879.html
VisualSVN 是如此罕见 - 一个安装工具,在 Windows 上安装 SVN 比在 Linux 上更容易。考虑到 Linux,你只需要输入“yum install subversion”,这是值得称赞的。
但是,如果您真的担心,我会安装 VMware 并在您的 Web 服务器上的来宾操作系统中运行您的 SVN 服务器。
安全性:如果您运行 svnserve,则只需阻止除您的计算机之外的所有端口(3960)访问该端口。如果没有,您需要保护 svn auth 配置文件。如果您使用 apache 运行它,那么它只是另一个需要保护的网站,与往常一样。
Apache and SVN are fairly easy to get running together but there are a number of steps. It is definitely easier today than 2 years ago when I first tried. Make sure you have matching versions of the modules and spend some time playing with Apache locally before deploying to your server. There are versions of Apache with and without SSL. Check you have the one with OpenSSL included to protect credentials on the wire.
Install Apache so that it can be manually started eg. not as a service. You'll want to do this to avoid a collision with any IIS apps on your server. You can install Apache to run as a service later, once your config is right.
Normally Apache will use Basic Authentication. You need to secure this using SSL, the credentials are not encrypted in transit. You put user details in a test file on disk. If you want to authenticate users against windows or active directory, you will have a larger task on your hands (perhaps see VisualSVN for this).
I had a quick look at VisuaSVN and it seems to be a good option. However a little Apache config experience can go a long way. Coming from an IIS background it wasn't too difficult, it just took some time to review all of the options/settings.
生产 svn 服务器在可用性方面很重要,但它永远不够,无论是 Windows Srvr 2007,还是 RH Linux 都无关紧要。你需要一个深思熟虑的备份策略并注意访问管理。
SVN 在 Windows 环境中很难设置,至少如果你想托管 SVN,本地存储库是不同的。我的建议是坚持公司或寻找更便宜的 SVN,不会花费那么多钱。它们并不难设置,但您会讨厌由于备份不当而丢失所有源代码。