[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ayuda con un sript de iptables.



<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.




Reply to: