O tráfego HTTP de saída sendo bloqueado pelo filtro de saída APF está desativado

1

Estou usando o CentOS 6.4 dentro de um contêiner OpenVZ. Estou tentando configurar o APF 9.7-2 para permitir tráfego SSH e HTTP de entrada (somente) e tráfego HTTP e HTTPS de saída (não me importo muito se outros trabalhos de saída). Meu arquivo conf.apf está configurado para os padrões, com as seguintes exceções:

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

(Observe que não habilitei a filtragem de saída; o EGF ainda é igual a 0.)

Quando inicio o APF, descubro que todas as conexões de saída estão bloqueadas.

[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... 

Isso não é concluído. Posso ver o tráfego sendo bloqueado pela regra de entrada: (substituí o IP do servidor por 1.2.3.4)

[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 

O valor para DPT é alterado em todas as solicitações.

Confirmei que o HTTP e HTTPS de saída funcionam quando o APF está desativado. O que preciso fazer para funcionar com o APF?

    
por np_ 19.11.2013 / 18:33

1 resposta

0

Eu encontrei o problema. A configuração do contêiner no nó de hardware precisa ter os módulos iptables corretos ativados. O padrão para contêineres no meu servidor era:

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

Eu modifiquei isso na configuração do meu contêiner (/etc/vz/conf/CONTAINERNUMBER.conf no hardware)

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"

Não sei exatamente quais precisam, mas com essa configuração, os filtros de entrada e saída funcionam conforme o esperado.

Eu já tinha visto esta dica em outro lugar na web, mas parecia que você precisava configurar o IPTABLES para o iptables funcionar, enquanto no meu caso o iptables estava funcionando (embora quebrando) sem que eu o tivesse definido.

    
por 20.11.2013 / 03:39