出站HTTPstream量被APF阻止 – 出站filterclosures

我在OpenVZ容器内使用CentOS 6.4。 我试图configurationAPF 9.7-2允许入站SSH和HTTPstream量(仅)和出站HTTP和HTTPSstream量(如果其他出站工作不关心)。 我的conf.apf文件设置为默认值,但以下情况例外:

IFACE_IN="venet0" IFACE_OUT="venet0" SET_MONOKERN="1" SYSCTL_CONNTRACK="131072" IG_TCP_CPORTS="22,80" LOG_DROP="1" 

(请注意,我没有启用输出过滤;表皮生长因子仍然等于0.)

当我启动APF时,我发现任何出站连接都被阻塞。

 [root@beta ~]# wget http://www.google.com --2013-11-19 17:21:02-- http://www.google.com/ Resolving www.google.com... 173.194.115.20, 173.194.115.16, 173.194.115.19, ... Connecting to www.google.com|173.194.115.20|:80... 

这并没有完成。 我可以看到stream量被入站规则阻塞:(我用1.2.3.4replace了我的服务器IP)

 [root@beta ~]# grep "173.194" /var/log/messages | tail Nov 19 17:21:02 beta kernel: ** IN_TCP DROP ** IN=venet0 OUT= MAC= SRC=173.194.115.20 DST=1.2.3.4 LEN=48 TOS=0x08 PREC=0x00 TTL=57 ID=18487 PROTO=TCP SPT=80 DPT=57092 WINDOW=42900 RES=0x00 ACK SYN URGP=0 Nov 19 17:21:02 beta kernel: ** IN_TCP DROP ** IN=venet0 OUT= MAC= SRC=173.194.115.20 DST=1.2.3.4 LEN=48 TOS=0x08 PREC=0x00 TTL=57 ID=18488 PROTO=TCP SPT=80 DPT=57092 WINDOW=42900 RES=0x00 ACK SYN URGP=0 Nov 19 17:21:03 beta kernel: ** IN_TCP DROP ** IN=venet0 OUT= MAC= SRC=173.194.115.20 DST=1.2.3.4 LEN=48 TOS=0x08 PREC=0x00 TTL=57 ID=18489 PROTO=TCP SPT=80 DPT=57092 WINDOW=42900 RES=0x00 ACK SYN URGP=0 Nov 19 17:21:04 beta kernel: ** IN_TCP DROP ** IN=venet0 OUT= MAC= SRC=173.194.115.20 DST=1.2.3.4 LEN=48 TOS=0x08 PREC=0x00 TTL=57 ID=18490 PROTO=TCP SPT=80 DPT=57092 WINDOW=42900 RES=0x00 ACK SYN URGP=0 Nov 19 17:21:05 beta kernel: ** IN_TCP DROP ** IN=venet0 OUT= MAC= SRC=173.194.115.20 DST=1.2.3.4 LEN=48 TOS=0x08 PREC=0x00 TTL=57 ID=18491 PROTO=TCP SPT=80 DPT=57092 WINDOW=42900 RES=0x00 ACK SYN URGP=0 Nov 19 17:21:07 beta kernel: ** IN_TCP DROP ** IN=venet0 OUT= MAC= SRC=173.194.115.20 DST=1.2.3.4 LEN=48 TOS=0x08 PREC=0x00 TTL=57 ID=18492 PROTO=TCP SPT=80 DPT=57092 WINDOW=42900 RES=0x00 ACK SYN URGP=0 Nov 19 17:21:11 beta kernel: ** IN_TCP DROP ** IN=venet0 OUT= MAC= SRC=173.194.115.20 DST=1.2.3.4 LEN=48 TOS=0x08 PREC=0x00 TTL=57 ID=18493 PROTO=TCP SPT=80 DPT=57092 WINDOW=42900 RES=0x00 ACK SYN URGP=0 

每个请求的DPT值都会更改。

我已经确认出站HTTP和HTTPS在APFclosures时工作。 我需要做些什么来使它与APF一起工作?

我发现了这个问题。 硬件节点上容器的configuration需要启用正确的iptables模块。 我的服务器上的容器的默认值是:

 IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length" 

我已经在我的容器的configuration中覆盖了这个(硬件上的/etc/vz/conf/CONTAINERNUMBER.conf)

 IPTABLES="iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_conntrack ipt_state ipt_helper iptable_nat ip_nat_ftp ip_nat_irc ipt_REDIRECT" 

我不确定我需要哪一个,但是通过这种configuration,入口和出口filter都按预期工作。

我曾经在networking上的其他地方看过这个提示,但是这似乎意味着你需要设置iptables来使iptables工作,而在我的情况下,iptables正在工作(虽然很麻烦),没有设置它。