我想只启用一个特定的IPAddess来编辑(添加,删除,更新......)我的visual svn服务器,但所有其他IPAddess必须能够读取...
我认为文件%VISUALSVN_SERVER%conf\httpd-custom.conf
<VirtualHost *:80>
<Location /svn>
# write access
<LimitExcept GET PROPFIND OPTIONS REPORT>
Order deny,allow
deny from all
Allow from XXX.XXX.XXX.XXX
</LimitExcept>
</Location>
</VirtualHost>
但不清楚视觉svn服务器。什么是正确的方法?
Visual SVN Server 3.2 x64
已安装在Windows 2008 R2 Server x64
来自VisualSvn支持的更新
此功能在VisualSVN Server 3.2中不可用,开箱即用, 但是我们考虑将来实施它的可能性 版本。 [...]一般来说,可以实施 通过修改httpd-custom.conf文件的基于IP的限制,但是我们 强烈反对采取这种方法。 VisualSVN Server有 启用“SVNPathAuthz short_circuit”选项,这显着 提高授权性能。该选项有一个限制, 但是:服务器配置不得依赖其他授权 模块,如“authz_host_module”(负责基于IP的 检查),否则你会遇到意外的行为 授权。另一方面,如果您禁用“short_circuit” 肯定会注意到运行时性能下降 针对您的存储库的授权密集型操作(例如 正在运行
svn log
,svn checkout
,`svn export等或运行 图形存储库浏览器,例如一个TortoiseSVN客户端 提供)
答案 0 :(得分:1)
由于SVN中没有内置支持,您可能需要寻找解决方法。
您可以将SVN服务器配置为使用身份验证,然后仅允许选定的经过身份验证的用户/组执行提交,并让所有人都进行只读访问。在IIS中可以加强安全性,并且可以轻松使用SSL / TLS,甚至可以检测并阻止暴力密码尝试,如果这是您考虑IP过滤的主要原因。
如果出于某种原因必须进行IP过滤,我建议使用另一个SVN Server实例(在不同的IP端口上运行)并对该实例执行存储库复制(使用在主实例上转储svn,然后在只读实例上加载svn 2)。然后让您的防火墙允许通信者(通过IP过滤)访问主SVN服务器,所有其他IP可以访问只读SVN服务器实例。
使用svn dump和load你实际上复制了所有东西 - 所有提交,历史记录,评论等等。你可以随心所欲地做到这一点,你也可以将这些动作绑定到post-commit钩子,让它发生每次提交后。