如何限制VisualSVN Server仅访问某些特定的公共IP

时间:2016-01-18 04:43:11

标签: apache svn ip visualsvn-server

我已在Visual SVN服务器上连接USB网络适配器并在其上配置了公共IP。现在,通过Internet上的https链接可以访问存储库,以便知道该链接的每个人。

我想仅允许来自我们美国办事处的SVN访问(我有美国办事处的公共IP)。来自任何其他位置或公共IP的人员不应该能够访问SVN。 VisualSVN服务器是在Windows 10计算机上设置的。这可能在Windows上吗?如果是,有人可以告诉我如何。

2 个答案:

答案 0 :(得分:1)

首先,您可以调整Windows防火墙规则,拒绝某些客户端根据其IP地址访问VisualSVN Server。这是我们VisualSVN目前所建议的方法。

在服务器计算机上,请按照下列步骤操作:

  1. 在“控制面板”中,单击“系统和安全”,然后单击“Windows防火墙”。

  2. 点击高级设置。

  3. 在入站防火墙规则列表中找到 VisualSVN服务器(TCP-In)规则并双击它。

  4. 选择范围标签。

  5. 在远程IP地址下指定IP地址。防火墙规则配置为"允许连接"默认情况下。因此,此列表包含允许访问VisualSVN Server的IP地址。不允许未列出的IP访问VisualSVN服务器。您可以在“操作”部分的“常规”选项卡上调整此行为。

  6. 有关编辑Windows防火墙规则的详细信息,请阅读TechNet article "Add or Edit Firewall Rule"

    关于@LazyBadger的建议:事实上,可以通过修改httpd-custom.conf file来实施基于IP的限制,但我们强烈反对采用这种方法。 VisualSVN服务器启用了SVNPathAuthz short_circuit选项,这显着改善了 授权性能。但是该选项有一个限制:服务器 配置不能依赖其他授权模块,如 authz_host_module(负责基于IP的检查), 否则你会在授权时遇到意外行为。

    另一方面,如果您禁用short_circuit,肯定会 注意运行授权密集型时性能下降 针对您的存储库的操作(例如运行svn logsvn checkoutsvn export等或运行图形存储库浏览器 例如TortoiseSVN客户提供的一个)。

    因此,建议使用此类基于IP的限制的方法是使用 防火墙设置。

答案 1 :(得分:0)

  1. VisualSVN Server是场景背后的Apache - 所有与SVN无直接关系的任务都由Apache管理并且可能性
  2. 您必须以
  3. 之类的形式使用Apache的Access Control
    Order deny,allow
    Deny from all
    Allow from us.ip.address
    
    1. 您必须检查是否已启用上述技巧mod_authz_host(重新阅读httpd.conf中的LoadModule部分)
    2. 请勿使用您的修改触及主httpd.conf(它将在更新服务器上丢失),将您的自定义添加到%VISUALSVN_SERVER%conf\httpd-custom.conf文件