<quote pablo> Tengo un equipo con dos tarjetas de red (eth0=externa, eth1=interna). Quiero configurar NAT para que puedan salir los demás equipos a través de este a internet, y sólamente quiero dar acceso a este equipo desde el exterior mediante ssh. Lo tenía hecho con una politica por defecto ACCEPT, y funcionaba correctamente. Pero quiero ponerle una política DROP, para mayor seguridad. </quote>
desde mi punto de vista, deberias tener las siguientes reglas por default: iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT suponiendo lo anterior, me parece que el tema viene por lo siguiente: no veo una regla que permita algun tipo de input desde la eth1 distinto a icmp. ej: supongamos que queres conectarte al web server de google. lo primero que va a hacer tu pc es generar un paquete tcp con el flag syn activado y lo va a enviar al linux para que este lo redirija a internet. pero cuando llega al linux, no matchea con ninguna regla input que coincida con la eth1 por lo cual utilizaria la regla por default drop. esto produciria que se bloquee el inicio del 'three-way handshaking' necesario para establecer una conexion tcp. otra cosa: si dejaras la regla: iptables -P OUTPUT DROP iptables -A OUTPUT -o eth0 -j ACCEPT no estarías considerando lo sale por la eth1? me explico? asi que me parece correcto que pongas: iptables -P OUTPUT ACCEPT ademas, veo que pones una regla para cuando la conexion esta establecida tipo tcp: iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT pero no consideras a los paquetes udp. aca tengo ciertas dudas en como se comporta el firewall de linux, si alguien sabe que lo aclare. un par de cosas mas: 1) a que llamas no funciona? podrias describir si haces un intento te conexion http, ssh? un ping, o que? 2) intentaste poner el default del input para ver si esta en esa tabla el problema? 3) intentaste poner un sniffer antes y despues del firewall para ver si los paquetes atraviesan el firewall y el problema es que no vuelven? o si realmente no atraviesan el firewall? de paso hago una pregunta yo: #Nat : echo -n "Activando NAT..." iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -o eth0 -j MASQUERADE eso hace que se le cambie la direccion ip origen a los paquetes que llegan desde la red interna y van hacia internet? <quote pablo> Pese a poner iptables -P OUTPUT ACCEPT, y mover las reglas de la política por defecto al final del script, no funciona. </quote> poner las reglas por defecto al final o al principio no influye en nada, justamente son los valores por defecto. estos son los ultimos en evaluarse en el caso de que ninguna regla matchee. bueno, espero que te sirva. y ya saben, cualquier cosa de las que dije que estuviera mal, aganmelo saber. saludos, velkro.