¿Por qué no funciona mi regla de iptables?

9

Tengo dos interfaces en mi VPS: eth0y eth0:0. Quiero bloquear los paquetes entrantes en el puerto 80 al eth0:0usar iptables. Intenté esto, pero no funciona:

iptables -A INPUT -i "eth0:0" -p tcp --destination-port 80 -j DROP

Si cambio eth0:0a eth0funciona correctamente. ¿Cuál es el problema?

sinoohe
fuente
44
Resolví mi pregunta de esta manera: mi interfaz era virtual, por lo que iptables no podía acceder a ella, así que bloqueé la interfaz por la IP de mi interfaz y no por el nombre de mi interfaz mi comando es: iptables -A INPUT -p tcp --dport 80 -d {ETH0: IP de 0} -j
RECHAZAR

Respuestas:

6

La historia corta: la forma en que lo hizo es correcta (según su comentario a la pregunta).

La larga historia: en Linux, un 'dispositivo' de red llamado foo:bares un alias de 'foo' utilizado cuando necesitamos asignar múltiples configuraciones de red a la interfaz 'foo', por ejemplo, para que responda en múltiples subredes en el mismo cable.

Esta es una forma poco clara de hacerlo, e inconsistente para arrancar. Para IPv6, todas las direcciones asignadas a la interfaz eth0 se enumeran juntas en la entrada eth0. Hay un método más moderno para hacerlo (a través del ip addrcomando).

Puede detectar interfaces de alias porque tienen dos puntos :en sus nombres, la parte a la izquierda de los dos puntos es un nombre de interfaz existente, y la estrofa de interfaz cuando lo hace ifconfiges muy corta. El HWaddrtambién debe ser idéntico al de la interfaz 'padre'. Tampoco se incluirán en la lista /proc/net/dev. Si tuviera que decir ip addr, eth0:0aparecería como la segunda dirección de la interfaz eth0. (busque la línea sangrada que comienza con inet)

Los alias y sus padres comparten una gran cantidad de configuraciones y campos, ya que comparten la capa física. El núcleo no los trata como interfaces completamente separadas. Por un lado, el tráfico aparece en la interfaz principal , no en el alias. ¡Es posible que hayas notado que el alias ni siquiera tiene contadores de paquetes / bytes!

Si necesita detectar tráfico, firewall, etc. en una interfaz de alias, debe usar su padre en su lugar. Dado que la única diferencia que tiene un alias de su padre es su configuración de IPv4, la única forma de hacer coincidir el tráfico en un alias es usar esa configuración de IP. Con iptables, coincide con la dirección IPv4 del alias tal como lo hizo en el comentario a su respuesta.

Alexios
fuente