防火墙后面的Subversion服务器和Apache反向代理展示间歇性挂起

这是我的情况:

1)DMZ:我在Apache服务器(我们的堡垒主机)上configuration了一个自签名的SSL证书,作为其他7个局域网服务器(subversion,ldap,jenkins,confluence,jira,mapi等)的反向代理

2)防火墙:在DMZ堡垒主机(位于DMZ子网192.168.1.X)之间,我configuration了一个思科防火墙,可以让(特定)通信从DMZ堡垒主机端发送到特定的LAN主机。 局域网子网是192.168.50.X. 路由器是Cisco RV042。

3)局域网:我有7台服务器在UBuntu上运行各种应用程序,通过ufw启用iptables。

4)Subversion:7个服务器中的一个运行Subversion 1.5.4,并且暴露一个HTTP端口给堡垒主机。 非常像这篇文章讨论。

除了一件事我似乎无法解决的一切都已经运行了很多年了:如果没有人使用Subversion服务器几个小时/天(不完全一样),所有通过堡垒主机运行到LAN Subversion服务器的HTTPS Subversion命令都会失败当然)。

这导致了一个真正的问题,因为远程开发人员做了一堆本地更改,提交…然后Eclipse挂起,必须手动杀死,客户端源清理等….一个真正的麻烦。 然后,我接到一个电话…我导航到堡垒主机,并尝试查看一些来源,这几个点击开始工作后。 然后开发人员的下一次尝试提交始终工作。


以下是我所尝试的:

1)防火墙closures:如果我在Cisco路由器上禁用防火墙,那么它始终工作…始终,但我们没有DMZ / LAN安全!

2)局域网Subversion:如果你直接访问Subversion局域网服务器,它总是有效的。

3)防火墙configuration更改:启用防火墙时,我可以创build一个规则,以允许任何DMZ-> LANstream量通过,问题仍然存在。 实际上,防火墙已经打开但是完全打开了,问题仍然存在。 就好像路由器在堡垒主机和局域网颠覆服务器之间的防火墙需要在局域网端发起一个有状态的转换,但是我绝对testing过防火墙是开放的(如果不是这样,它永远不会工作……就像我说的如果频繁使用,它可以工作几天/星期)。

4)MTU不匹配:find一篇文章 ,提示这可能是问题,但根据ifconfig ,堡垒和颠覆服务器上的MTU是1500。

5)杂项的堡垒主机Apache的configuration更改…已经尝试了几十个东西在这里无济于事。 这里是在堡垒主机(反向代理)上的/etc/apache2/sites-enabled/default-ssl的Apacheconfiguration我已经在去年运行了:

 ProxyPass /svn http://virt-svn-srv.mycomp.int/svn keepalive=on <Location /svn> ProxyPassReverse http://virt-svn-srv.mycomp.int/svn SetEnv force-proxy-request-1.0 1 </Location> 

我真的在我的智慧结束这一切…所有的build议是值得欢迎的。

这看起来像超时问题(防火墙从会话表中删除会话)。

我不完全熟悉Subversion和Eclipse,但是;

如果在启动时打开与Subversion服务器的连接,则在60分钟(思科)默认超时设置后尝试使用相同的会话提交代码,则会失败。

您的防火墙将丢弃数据包,说明找不到匹配的会话。

您可以尝试添加一个class级地图和一个策略地图,以匹配去往您的Subversion服务器的stream量。

 access-list acl-timeout-subv extended permit tcp any host [subversionIP] eq [subversionPort] 

然后

 class-map cls-timeout-subv match access-list acl-timeout-subv exit 

然后

 policy-map timeout-subv class cls-timeout-subv set connection timeout idle 08:00:00 exit 

这将设置所有stream量到您的颠覆在指定的端口超时8小时。