teoría-icmp: (0.02) Nociones de ICMP necesarias para el filtrado de paquetes Resumen de contenido: -------------------- ICMP Tipo/Código en vez de puerto ICMP necesarios FRAGMENTATION NEEDED <- 3/4 PING -> 8/- y PONG <- 0/- Traceroute (PORT UNREACHABLE <- 3/3 y TTL EXCEDEED <- 11/0) ICMP sospechosos/peligrosos PING <- 8/- REDIRECT <- 5/- SOURCE QUENCH <- 4/- PARAMETER PROBLEMS -> 12/- PORT UNREACHABLE -> 3/3 AMENAZAS ICMP BOMBAS ICMP CANALES ICMP MAS INFO SOBRE ICMP ICMP Tipo/Código en vez de puerto Los paquetes ICMP no tienen puerto de origen ni de destino, en su lugar tienen un tipo y un "subtipo" o código que abreviaremos como: 3/4 Por desgracia solo iptables permite especificar como números el tipo/código al filtrar ICMP En ipchains podemos filtrar por el número de tipo (sin código) o con el nombre del tipo+código, p.ej.: fragmentation-needed ICMP necesarios Hay unos cuantos paquetes ICMP que son necesarios para un funcionamiento adecuado Yo diría que conviene permitir la ENTRADA de todos los ICMP del tipo 3 (destination-unreachable) y los de tipo 11 (time-exceeded), ya que permiten conocer a nuestros sistemas problemas de comunicación FRAGMENTATION NEEDED <- 3/4 Se utiliza en el proceso de descubrir la unidad máxima de transferencia en conexiones transcontinentales, debe permitirse siempre: - entrada de: fragmentation-needed 3/4 PING -> 8/- y PONG <- 0/- Si deseas poder hacer "ping" a IPs en Internet necesitas permitir: - salida de ping (la pregunta): echo-request 8/- - entrada de pong (la respuesta): echo-reply 0/- Traceroute (PORT UNREACHABLE <- 3/3 y TTL EXCEDEED <- 11/0) Para que el comando "traceroute" funcione debes permitir: - entrada de: port-unreachable 3/3 - entrada de: ttl-zero-during-transit 11/0 - salida de: paquetes UDP hacia el rango de puertos 33434:33600 ICMP sospechosos/peligrosos PING <- 8/- Generalmente todo escaneo de tus puertos va precedido de una detección mediante un ping ICMP Hay que considerar que también puedes ser detectado con un "ping TCP" si usas ipfwadm o ipchains (iptables por probar) Para saber más sobre el ping TCP busca la opción "-PT" en el "man nmap" de potato REDIRECT <- 5/- Alguien intenta redirigir nuestro router, esto significa que alguien intenta un ataque "de hombre en medio" redirigiendo nuestro tráfico a través de su máquina SOURCE QUENCH <- 4/- Puede ser un intento de ataque DoS, ya que estos paquetes enlentecen la comunicación, RFC1122 dice que un cortafuegos DEBE descartarlos PARAMETER PROBLEMS -> 12/- Salidas de ICMP parameter-problem 12/- indican que se nos está aplicando alguna técnica de detección de sistema operativo (fingerprinting), o que están intentando algún tipo de hackeo PORT UNREACHABLE -> 3/3 Como vimos en "teoria-tcp-ip" las salidas de port-unreachable 3/3 de nuestro sistema delatan que están escaneando nuestros puertos UDP AMENAZAS ICMP BOMBAS ICMP Hay determinados tipos de paquetes ICMP (el ping de la muerte) que deja frito a un Win, aunque nuestro Linux es inmune a ellos. Este es un buen motivo para limitar los paquetes ICMP que reciben los PC de nuestra red desde el cortafuegos CANALES ICMP Parece ser que los paquetes ICMP pueden ser utilizados como un vehículo de comunicación por hackers expertos. Este es un buen motivo para prohibir todos los ICMP posibles en tu sistema, tu decides... MAS INFO SOBRE ICMP Hay una buena descripción de todos los paquetes ICMP en: FAQ: Firewalls: What am I seeing? (en inglés, me parece muy bueno) http://www.robertgraham.com/pubs/firewall-seen.html RFCs: paquete doc-rfc en /usr/doc/doc-rfc, en general muy técnicos RFC792 (Inglés) Definición del protocolo ICMP (va bien para saber tipos) RFC1256 ICMP Router Discovery Messages (para redes multicast) RFC2463 Internet Control Message Protocol (ICMPv6, para IP v6)