我需要为Subgit添加哪些防火墙规则?

时间:2015-01-21 18:34:39

标签: svn iptables bitbucket-server subgit

我已安装Stash,其中SVN mirror plugin - 安装了子记录。

我有iptables设置类似:

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:7990
ACCEPT     tcp  --  yyy.yyy.yyy.yyy      anywhere             tcp spt:mysql
ACCEPT     udp  --  anywhere             anywhere             udp spt:domain
ACCEPT     all  --  xxx.xxx.xxx.xxx      anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:7999
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:http state ESTABLISHED


Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             yyy.yyy.yyy.yyy         tcp dpt:mysql
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:ssh state ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:7990
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:38724
ACCEPT     all  --  anywhere             xxx.xxx.xxx.xxx
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:7999
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http state NEW,ESTABLISHED

其中xxx.xxx.xxx.xxx是SVN服务器的IP。初始同步适用于这些设置。但是当我承诺使用SVN时,这些变化将无法实现。如果我将INPUT和OUTPUT的策略更改为ACCEPT,则更改会立即同步。那我还需要什么呢?

2 个答案:

答案 0 :(得分:2)

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

做到了。

答案 1 :(得分:1)

我无法帮助确切的iptables配置,但对于SVN Mirror Add-On(和SubGit),以下是正确的:

1)SubGit需要完全访问它镜像的Subversion项目。

从协议的角度来看,它需要能够通过http(端口80或443)或svn协议(端口3690)访问目标Subversion存储库。此处的访问意味着在端口上与Subversion存储库主机建立连接,然后通过已建立的连接发送和接收数据。这就是iptables规则应该允许的内容。

有关Subversion用于不同协议的端口的详细信息,请参阅此帖子:what ports need to be open for svn tortoise to authenticate (clear text) and commit

2)SubGit启动后台进程并通过tcp协议与之通信。

该通信仅涉及localhost,并且从当前可用于特定用户的端口中随机选择端口。因此,您的iptables规则应该允许从localhost在本地主机上打开和访问任何端口。

希望有所帮助!