Esta é uma boa pergunta.
Na verdade, tcpdump é o primeiro software encontrado depois do fio (e do NIC, se você quiser) no caminho IN , e o último no caminho OUT .
Wire -> NIC -> tcpdump -> netfilter/iptables
iptables -> tcpdump -> NIC -> Wire
Assim, todos os pacotes chegam à sua interface e todos os pacotes saem da sua interface. Como os pacotes para a porta 53 não recebem uma resposta, como visto pelo tcpdump, você verificou com sucesso que as regras do iptables foram configuradas corretamente.
EDITAR
Talvez eu deva adicionar alguns detalhes. O tcpdump é baseado em libpcap , uma biblioteca que cria um socket de pacote . Quando um pacote normal é recebido na pilha de rede, o kernel primeiro verifica se existe um soquete de pacote interessado no pacote recém-chegado e, se houver, encaminha o pacote para esse pacote soquete. Se a opção ETH_P_ALL for escolhida, então os protocolos all passarão pelo soquete do pacote.
libpcap implementa um tal soquete de pacote com a opção ativada, mantém uma cópia para uso próprio e duplica o pacote de volta para a pilha de rede, onde é processado pelo kernel da maneira usual , incluindo passar primeiro para netfilter , a contraparte do espaço do kernel de iptables . A mesma coisa, na ordem inversa ( isto é, , primeiro netfilter, depois a passagem pelo soquete do pacote), na saída.
Isso é propenso a hackers? Mas é claro. Certamente, existem rootkits à prova de conceito usando o libpcap para interceptar as comunicações destinadas ao rootkit anterior ao qual o firewall pode colocar suas mãos sobre eles. Mas até isso é insignificante em comparação com o fato de que uma simples consulta do Google descobre o código working ocultando o tráfego mesmo de libpcap . Ainda assim, a maioria dos profissionais acha que as vantagens superam largamente as desvantagens, na depuração de filtros de pacotes de rede.