Quiero que iptables filtre solo una interfaz, eth0, que se enfrenta a WAN. ¿Cómo se puede hacer esto? Y quiero mantener abiertos los puertos ftp y ssh en eth0.
Quiero que iptables filtre solo una interfaz, eth0, que se enfrenta a WAN. ¿Cómo se puede hacer esto? Y quiero mantener abiertos los puertos ftp y ssh en eth0.
Respuestas:
Entonces, para todas las interfaces, excepto una, desea aceptar todo el tráfico, y en eth0 desea eliminar todo el tráfico entrante, excepto ftp y ssh.
Primero, podríamos establecer una política de aceptar todo el tráfico por defecto.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
Entonces, podríamos restablecer las reglas de su firewall.
iptables -F
Ahora podríamos decir que queremos permitir el tráfico entrante en eth0 que es parte de una conexión que ya permitimos.
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
También que queremos permitir conexiones ssh entrantes en eth0.
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
Pero que cualquier otra cosa entrante en eth0 debería descartarse.
iptables -A INPUT -i eth0 -j DROP
Para obtener un poco más de profundidad, vea esta entrada wiki de CentOS .
FTP es más complicado que ssh ya que puede usar un puerto aleatorio, así que mira esta pregunta anterior .
Algo como esto debería hacer el trabajo:
iptables -A INPUT -i eth1 -p all -j DROP
iptables -A INPUT -i eth0 -p all -j ACCEPT
ACCEPT
todo lo demás en las otras interfaces.
La opción de especificar una interfaz en la regla de iptables es -i
, por ejemplo: -i eth0
.
Es muy simple cuando haces una iptables
regla, entonces tienes que especificar la interfaz. La opción para especificar la tarjeta LAN en la que iptables
debería funcionar es-i
Seguir las reglas puede darte un buen ejemplo
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset
La última regla es rechazar cualquier otro paquete que no coincida con las 2 primeras reglas. Todas las reglas iptables
se ejecutan en el orden dado, por lo que la regla para rechazar paquetes es siempre la última.