![As regras do iptables têm controle sobre pacotes de soquete brutos?](https://rvso.com/image/776299/As%20regras%20do%20iptables%20t%C3%AAm%20controle%20sobre%20pacotes%20de%20soquete%20brutos%3F.png)
Um programa que uso gera algumas conexões TCP usando o modo de pacotes brutos. Digamos que eu executei esses dois comandos:
/sbin/iptables -A INPUT -s 8.0.0.0/8 -j DROP
/sbin/iptables -A OUTPUT -d 8.0.0.0/8 -j DROP
É seguro presumir que nenhum pacote será enviado para essa rede?
Responder1
Parece que infelizmente não funciona. Veja como eu verifiquei. Vamos usar dois servidores - 1.1.1.1 e 2.2.2.2. 1.1.1.1 irá enviar pacotes, 2.2.2.2 irá escutar.
Primeiro, vamos configurar o sniffing no 2.2.2.2:
➜ ~ sudo tcpdump -vv 'src 1.1.1.1'
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
Agora, vamos enviar um pacote pela porta 995 para esse IP:
$ zmap --whitelist-file=<( echo 2.2.2.2 ) -p 995 -n 1
Como esperado, estamos vendo tráfego da versão 1.1.1.1 para a versão 2.2.2.2:
11:18:49.330632 IP (tos 0x0, ttl 250, id 54321, offset 0, flags [none], proto TCP (6), length 40)
1.1.1.1.47495 > 2.2.2.2.pop3s: Flags [S], cksum 0x5e8a (correct), seq 4248475135, win 65535, length 0
11:18:49.331688 IP (tos 0x0, ttl 59, id 0, offset 0, flags [DF], proto TCP (6), length 40)
1.1.1.1.47495 > 2.2.2.2.pop3s: Flags [R], cksum 0x5e87 (correct), seq 4248475136, win 0, length 0
Agora, vamos tentar bloquear isso em 1.1.1.1 e repetir a investigação:
$ /sbin/iptables -A OUTPUT -d 2.2.2.2 -j DROP
$ zmap --whitelist-file=<( echo 2.2.2.2 ) -p 995 -n 1
Infelizmente, estamos vendo mais alguns dados do tcpdump. Isso significa que não funcionou.
Acabei resolvendo o problema em uma camada diferente, usando a funcionalidade de firewall do meu provedor de nuvem.