我只想让特定的 IPAddess 编辑(添加、删除、更新...(我的可视 svn 服务器,但所有其他 IPAddess 必须能够读取...
我认为有必要在文件%VISUALSVN_SERVER%confhttpd-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>
但不太了解Visual SVN服务器。 正确的方法是什么?
Visual SVN Server 3.2 x64
安装在Windows 2008 R2 Server x64
来自 VisualSvn 支持的更新
此功能在开箱即用的 VisualSVN 服务器 3.2 中不可用, 但是,我们考虑将来实施它的可能性 版本。[...]一般来说,可以实现 通过修改 httpd-custom.conf 文件进行基于 IP 的限制,但是我们 强烈建议不要采用这种方法。VisualSVN Server 有 启用了"SVNPathAuthz short_circuit"选项,这极大地改变了 提高了授权性能。该选项有限制, 不过:服务器配置不能依赖其他授权 诸如"authz_host_module"之类的模块(负责基于 IP 检查(,否则您会遇到意外行为 授权。另一方面,如果您禁用"short_circuit"您 运行时肯定会注意到性能下降 针对存储库的授权密集型操作(例如 运行
svn log
、svn checkout
、'SVN 导出等或运行 图形存储库浏览器,例如一个TortoiseSVN客户端 提供(
由于SVN中没有内置的支持,因此您可能需要寻找解决方法。
您可以将SVN服务器配置为使用身份验证,然后仅允许选定的经过身份验证的用户/组执行提交,并将所有人保留为只读访问权限。安全性可以在IIS中强化,SSL/TLS可以轻松使用,您甚至可以检测和阻止暴力密码尝试,如果这是您考虑IP过滤的主要原因。
如果出于某种原因必须进行 IP 过滤,我建议使用另一个 SVN 服务器实例(在不同的 IP 端口上运行(并对该实例进行存储库复制(在主实例上使用 svn 转储,然后在只读实例 2 上使用 svn 加载(。然后让您的防火墙允许提交者(按 IP 过滤(访问主 SVN 服务器,所有其他 IP 都可以访问只读 SVN 服务器实例。
使用 svn 转储和加载,您实际上复制了所有内容 - 所有提交、历史记录、注释等。您可以根据需要随时执行此操作,也可以将这些操作绑定到提交后的钩子,以便在每次提交后发生。