如何在 VisualSVN 服务器中限制对某些特定 public IP 的访问
How to restrict in VisualSVN Server access only to some specific public IPs
我已经在 Visual SVN 服务器上连接了一个 USB 网络适配器,并在上面配置了一个 public ip。现在,所有了解 link 的人都可以通过互联网通过 https link 访问存储库。
我只想允许从我们的美国办公室访问 SVN(我有美国办公室的 public ip)。来自任何其他位置或 public ip 的人应该无法访问 SVN。 VisualSVN 服务器安装在 Windows 10 机器上。这在 Windows 上可行吗?如果是,谁能告诉我怎么做。
- VisualSVN Server 是幕后的 Apache - 所有与 SVN 不直接相关的任务都由 Apache 管理,并且有可能
- 你必须使用 Apache 的 Access Control 形式
Order deny,allow
Deny from all
Allow from us.ip.address
- 您必须检查是否启用了上述技巧的
mod_authz_host
(re-read LoadModule
部分 httpd.conf)
- 不要用您的修改触及主要 httpd.conf(它将在更新服务器上丢失),将您的自定义添加到
%VISUALSVN_SERVER%conf\httpd-custom.conf
文件
首先,您可以调整Windows防火墙规则,根据IP地址拒绝某些客户端访问VisualSVN Server。这是我们 VisualSVN 目前建议的方法。
在服务器计算机上,执行以下步骤:
在“控制面板”中,单击“系统和安全”,然后单击“Windows防火墙”。
单击高级设置。
在入站防火墙规则列表中找到 VisualSVN Server (TCP-In) 规则并双击它。
Select 范围选项卡。
在远程 IP 地址下指定 IP 地址。默认情况下,防火墙规则配置为 "Allow the connection"。因此,此列表包含允许访问 VisualSVN Server 的 IP 地址。未列出的 IP 不允许访问 VisualSVN 服务器。您可以在“操作”部分的“常规”选项卡上调整此行为。
有关编辑 Windows 防火墙规则的更多信息,请阅读 TechNet article "Add or Edit Firewall Rule"。
关于@LazyBadger 的建议:的确,可以通过修改 httpd-custom.conf file
来实施 IP-based 限制,但是 我们强烈反对采用这种方法 . VisualSVN Server 启用了 SVNPathAuthz short_circuit
选项,这大大提高了
授权性能。但是,该选项有一个限制:服务器
配置不得依赖其他授权模块,例如
authz_host_module
(负责 IP-based 检查),
否则你会遇到意外的授权行为。
另一方面,如果你禁用short_circuit
你肯定会
注意 运行 authorization-intensive 时性能下降
针对您的存储库的操作(例如 运行 svn log
、svn checkout
、svn export
等或 运行 图形存储库浏览器
例如 TortoiseSVN 客户端提供的一个)。
因此应用此类 IP-based 限制的推荐方法是使用
防火墙设置。
我已经在 Visual SVN 服务器上连接了一个 USB 网络适配器,并在上面配置了一个 public ip。现在,所有了解 link 的人都可以通过互联网通过 https link 访问存储库。
我只想允许从我们的美国办公室访问 SVN(我有美国办公室的 public ip)。来自任何其他位置或 public ip 的人应该无法访问 SVN。 VisualSVN 服务器安装在 Windows 10 机器上。这在 Windows 上可行吗?如果是,谁能告诉我怎么做。
- VisualSVN Server 是幕后的 Apache - 所有与 SVN 不直接相关的任务都由 Apache 管理,并且有可能
- 你必须使用 Apache 的 Access Control 形式
Order deny,allow Deny from all Allow from us.ip.address
- 您必须检查是否启用了上述技巧的
mod_authz_host
(re-readLoadModule
部分 httpd.conf) - 不要用您的修改触及主要 httpd.conf(它将在更新服务器上丢失),将您的自定义添加到
%VISUALSVN_SERVER%conf\httpd-custom.conf
文件
首先,您可以调整Windows防火墙规则,根据IP地址拒绝某些客户端访问VisualSVN Server。这是我们 VisualSVN 目前建议的方法。
在服务器计算机上,执行以下步骤:
在“控制面板”中,单击“系统和安全”,然后单击“Windows防火墙”。
单击高级设置。
在入站防火墙规则列表中找到 VisualSVN Server (TCP-In) 规则并双击它。
Select 范围选项卡。
在远程 IP 地址下指定 IP 地址。默认情况下,防火墙规则配置为 "Allow the connection"。因此,此列表包含允许访问 VisualSVN Server 的 IP 地址。未列出的 IP 不允许访问 VisualSVN 服务器。您可以在“操作”部分的“常规”选项卡上调整此行为。
有关编辑 Windows 防火墙规则的更多信息,请阅读 TechNet article "Add or Edit Firewall Rule"。
关于@LazyBadger 的建议:的确,可以通过修改 httpd-custom.conf file
来实施 IP-based 限制,但是 我们强烈反对采用这种方法 . VisualSVN Server 启用了 SVNPathAuthz short_circuit
选项,这大大提高了
授权性能。但是,该选项有一个限制:服务器
配置不得依赖其他授权模块,例如
authz_host_module
(负责 IP-based 检查),
否则你会遇到意外的授权行为。
另一方面,如果你禁用short_circuit
你肯定会
注意 运行 authorization-intensive 时性能下降
针对您的存储库的操作(例如 运行 svn log
、svn checkout
、svn export
等或 运行 图形存储库浏览器
例如 TortoiseSVN 客户端提供的一个)。
因此应用此类 IP-based 限制的推荐方法是使用 防火墙设置。