O comprimento de queda do iptables e a condição TTL não funcionam

O comprimento de queda do iptables e a condição TTL não funcionam

Com iptableso utilitário no host Linux, é necessário criar um mini firewall. Preciso eliminar todas as conexões de entrada com comprimento de pacote maior que 722 E TTL maior que 22. Preciso exatamente AND. Descarte somente se ambas as condições forem VERDADEIRAS.

sudo iptables -N LOGDROP
sudo iptables -A OUTPUT -m ttl --ttl-gt 22 -j LOGDROP
sudo iptables -A INPUT -m ttl --ttl-gt 22 -j LOGDROP
sudo iptables -A LOGDROP -m length --length 722:65535 -j DROP

O endereço IP do host está 10.6.7.9com firewall.

Fiz 4 testes neste host, tentando executar ping em outro host:

ping -s 10000 -t 250 10.6.7.10 //fail (TTL AND LENGHT are wrong)
ping -s 100 -t 200 10.6.7.10 //success (TTL is wrong)
ping -s 10 -t 10 10.6.7.10 //success (Both are right)
ping -s 10000 -t 10 10.6.7.10 // fail, BUT SHOULD BE TRUE.

Por que o último ping não funciona e como consertar?

Responder1

Se as duas condições devem ser verdadeiras ao mesmo tempo, você deve construir as condições como:

sudo iptables -A OUTPUT -m ttl --ttl-gt 22 -m length --length 722:65535 -j DROP

sudo iptables -A INPUT -m ttl --ttl-gt 22 -m length --length 722:65535 -j DROP

Responder2

Uma boa possibilidade é que a resposta do ping do host remoto tenha um TTL maior, pois a -topção define apenas o TTL do pacote de saída. Um TTL padrão comum atualmente é 64. (Acredito que a recomendação seja o dobro da largura da Internet.)

Outra possibilidade seria que, como o ping de 10.000 bytes tivesse que ser fragmentado, o host remoto se recusasse a respondê-lo. Tente enviar um ping de 800 bytes.

Além disso, se você fizer sudo iptables -L -visso, ele informará quantas vezes a regra foi atingida. Isso pode ser útil para depuração.

Outra opção de depuração é fazer uma regra como:

sudo iptables -A LOGDROP -m length --length 722:65535 -j LOG

Antes da regra DROP. Isso registrará o pacote no log do kernel (lido com dmesg) antes de descartá-lo. Você pode então descobrir o que foi descartado.

informação relacionada