O firewalld está bloqueando o tráfego de retorno?

O firewalld está bloqueando o tráfego de retorno?

Estou no Debian 7 tentando encaminhar solicitações para outras máquinas através do firewalld e tenho a seguinte configuração:

--HOSTNAME-- ----IP-----  ------------Configuration-------------
Firewall     192.168.0.2  (Debian 7, firewalld,       static ip)
DHCP         192.168.0.3  (Debian 7, isc-dhcp-server, static ip)
DNS (Master) 192.168.0.4  (Debian 7, bind9m,          static ip)
DNS (Slave)  192.168.0.5  (Debian 7, bind9,           static ip)

Minhas regras de firewalld no DNS (mestre e escravo)

<zone>
  <short>Public</short>

  <port protocol="udp" port="53"/>
  <port protocol="tcp" port="53"/>
</zone>

Minhas regras de firewalld no firewall

<zone>
  <short>Public</short>

  <forward-port to-addr="192.168.0.4" to-port="53" protocol="tcp" port="53"/>
  <forward-port to-addr="192.168.0.4" to-port="53" protocol="udp" port="53"/>
</zone>

Quando eu tento

$ ping hostname.mylocaldomain.com

De qualquer uma das máquinas deu certo, pois tenho tudo configurado no resolv.conf para usar meu servidor DNS. O problema é que gostaria de rotear todo o tráfego através do firewall. Sem entrar em detalhes sobre qual é o objetivo geral, descreverei o problema em questão:

Digamos que eu altere /etc/resolv.conf no DHCP para apontar para o firewall e permitir que ele encaminhe a solicitação para o local apropriado:

search mylocaldomain.com
nameserver 192.168.0.4
nameserver 8.8.8.8
nameserver 8.8.4.4

O ping falha, então usei o tcp dump e obtive o seguinte

# tcpdump port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
18:06:01.377752 IP PingFromMe.mylocaldomain.com.47588 > firewall.mylocaldomain.com.domain: 4279+ A? ns2.mylocaldomain.com. (34)
18:06:01.469696 IP PingFromMe.mylocaldomain.com.37619 > firewall.mylocaldomain.com.domain: 36025+ A? ns2.mylocaldomain.com.mylocaldomain.com. (47)
18:06:01.638045 IP firewall.mylocaldomain.com.42684 > ns1.mylocaldomain.com.domain: 41778+ PTR? 6.0.168.192.in-addr.arpa. (42)
18:06:01.639278 IP ns1.mylocaldomain.com.domain > firewall.mylocaldomain.com.42684: 41778* 1/2/0 PTR firewall.mylocaldomain.com. (113)
18:06:01.639486 IP firewall.mylocaldomain.com.36812 > ns1.mylocaldomain.com.domain: 54761+ PTR? 3.0.168.192.in-addr.arpa. (42)
18:06:01.639881 IP ns1.mylocaldomain.com.domain > firewall.mylocaldomain.com.36812: 54761* 1/2/0 PTR PingFromMe.mylocaldomain.com. (107)
18:06:02.641371 IP firewall.mylocaldomain.com.39348 > ns1.mylocaldomain.com.domain: 6957+ PTR? 4.0.168.192.in-addr.arpa. (42)
18:06:02.642031 IP ns1.mylocaldomain.com.domain > firewall.mylocaldomain.com.39348: 6957* 1/2/0 PTR ns1.mylocaldomain.com. (106)

Não tenho certeza se estou vendo isso corretamente, mas me parece que tudo está funcionando, o tráfego de retorno simplesmente não está sendo roteado de volta para PingFromMe.mylocaldomain.com

Minha pergunta é tripla.

  • O que eu acho que está acontecendo aqui é o motivo pelo qual não estou obtendo a resolução do nome do host?
  • O firewalld não está configurado para fazer roteamento assim?
  • E claro, como faço para corrigir isso?

*Nota: Os IPsDEVEserá o mesmo que na lista de configuração, então, ao olhar minha captura tcp, apenas por uma questão de brevidade, consulte as máquinas por nome de host, por favor.

informação relacionada