Tengo muchas ganas de usarlo addrtype
en combinación con -src
una de mis cadenas de filtros como para dejar caer algunos bogon ips:
-A INPUT -p tcp --dport 80 -m addrtype --src-type UNICAST ! -s 127.0.0.0/8 -j WEB
La página del manual dice lo siguiente
addrtype
Este módulo hace coincidir los paquetes según su tipo de dirección. Los tipos de dirección se utilizan dentro de la pila de red del núcleo y clasifican las direcciones en varios grupos. La definición exacta de ese grupo depende del protocolo específico de la capa tres.Son posibles los siguientes tipos de dirección:
- UNSPEC una dirección no especificada (es decir, 0.0.0.0)
- UNICAST una dirección unicast
- LOCAL una dirección local
- TRANSMISIÓN de una dirección de difusión
- ANYCAST un paquete de difusión ilimitada
- MULTICAST una dirección de multidifusión
- BLACKHOLE una dirección de agujero negro
- Inaccesible una dirección inalcanzable
- PROHIBIR una dirección prohibida
- LANZAR FIXME
- NAT FIXME
- XRESOLVER
No está claro cuáles son las definiciones exactas y dice que depende del protocolo específico de la capa 3. Esto es lo que creo:
- UNICAST (! BROADCAST,! MULTICAST,! ANYCAST)
- LOCAL (
127.0.0.0/8
) - TRANSMISIÓN (
*.*.*.255
) - CUALQUIER COSTA (
*.*.*.*
) - MULTICAST (
224.0.0.0/4
)
¿Alguien tiene una idea clara de lo que eso significa y cómo lo implementa iptables (por ejemplo, cómo sabe dónde demonios está BLACKHOLE)?
LOCAL
ciertamente no lo es127.0.0.0/8
. Descubrí de la manera difícil :( ... aparentemente una dirección local se refiere a cualquier dirección asignada a una interfaz.127.0.0.0/8
está reservado específicamente para loopback, sin embargo, LOCAL no se limita solo a ese rango.Respuestas:
Creo que depende de usted hacer que el núcleo sepa cuál es el tipo de dirección de agujero negro.
Desde el archivo xt_addrtype.h en el código fuente de iptables, puede ver:
Y en
rtnetlink.h
, verás la misma definición:Puede ver
iptables
usar la misma definición de tipo de dirección con la pila de red kernel tcp.Luego de
man ip
:Entonces, cuando define una ruta a una red por
ip
comando y la marca como una ruta de agujero negro, el núcleo ahora hace que este tipo de agujero de dirección de red:fuente
blackhole
tipo de dirección, no todo tipo de dirección.iptables
addrtype
Muestro que la extensión usa la misma definición addrtype con el núcleo. Y la definición del núcleo del tipo de dirección se puede ver enman ip
.ip route list type local
pero todos los tipos producen una cadena vacía, excepto la unidifusión que dadefault via 192.168.1.1 dev eth0 proto static metric 1024 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
. ¿Puedes proporcionar más información sobre cómo interpretarlos? Gracias.ip route add blackhole
frente al uso del firewall para bloquear esa subred en particular? ¿Existe una diferencia funcional / de rendimiento o una forma diferente de lograr el mismo fin?