Estoy haciendo pruebas con IPTables y Wireshark. El workspace es el siguiente:
Cliente (PC) <--> Servidor (PC) <--> Internet (Router).
Nota: Entre el cliente y el router, se encuentra el servidor (puesto con un Man in the Middle).
Pues a ver, mi objetivo es bloquear una IP al cliente, usando IPTables desde el servidor, y para ello hago lo siguiente:
iptables -A OUTPUT -s IP_A_BLOQUEAR -j DROP
Esto lo que me hace es dropear los paquetes que salen del servidor que tengan como origen la IP a bloquear. Es decir, que los paquetes que van del servidor al cliente con esa IP nunca llegan.
Mi objetivo ahora, es hacer el camino inverso: que los paquetes del servidor al router no lleguen.
Para ello, he probado haciéndolo con INPUT (e incluso con FORWARD) y no me sale. He probado lo siguiente:
iptables -A INPUT -d IP_A_BLOQUEAR -j DROP
iptables -A INPUT -d IP_A_BLOQUEAR -j REJECT
iptables -A FORWARD -d IP_A_BLOQUEAR -j DROP
iptables -A FORWARD -d IP_A_BLOQUEAR -j REJECT
De ninguna de las maneras me sale, y no entiendo el porqué, ya que estoy tratando paquetes que entran (y/o que van direccionados) a un destino en concreto. Pero nada, pasan sin problemas, los puedo ver desde el Wireshark perfectamente.
Después, haciendo iptables -nvx -L (para ver la cantidad de tráfico que llega a cada cadena) me he dado cuenta de que apenas pasan paquetes por INPUT (poquísimos) y al FORWARD no le llega ni uno. Y el caso es que deberían pasar muchos, ya que las pruebas las hago descargando a gran velocidad.
Qué puede ser? Por qué ocurre esto?
Un saludo y gracias!