Hola neurus.
Si tu dices que no son errores lo acepto porque yo no soy un experto en la materia.
¿Me puedes explicar como hago para que el servidor iptables salga a internet?¿Que es lo que estoy haciendo mal?
A la pregunta de si tengo conexion a internet te contesto que antes de ejecutar el script soy capaz de navegar por internet, pero luego no. Debe haber un error en el script que he posteado más arriba. Te agradecería que lo revisaras y me dijeras que es lo que hago mal.
Un saludo y muchas gracias.
Editado -- Sab Sep 18, 2010 3:03 pm --Hola de nuevo.
He decidido empezar desde 0 con ayuda del manual de pello, he consiguido algunas cosas.
eth0= es internet
eth1= lan interna
Todas la politicas por defecto son DROP.
Quiero poder navegar desde el propio firewall. Esto lo he conseguido sin problemas con la ayuda de pello.
Tambien quiero poder navegar desde mi red interna pero aquí es donde ya estoy desesperado y no encuentro la forma de llevarlo a cabo. Espero que alguno de vosotros sepa que estoy haciendo mal porque yo no.
A continuacion pongo las partes de código:
Código:
#!/bin/sh
echo -n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
## Establecemos politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Permitimos que la maquina pueda salir
/sbin/iptables -A INPUT -p tcp -m tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
# Ya tambien a webs seguras
/sbin/iptables -A INPUT -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
# Permitimos la consulta a un primer DNS
/sbin/iptables -A INPUT -s IP_DNS -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -d IP_DNS -p udp -m udp --dport 53 -j ACCEPT
# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras máquinas puedan salir a traves del firewall.
echo 1 > /proc/sys/net/ipv4/ip_forward
# Ahora hacemos enmascaramiento de la red local
# y activamos el BIT DE FORWARDING (imprescindible!!!!!)RANGO_IP_INTERNO -o eth0 -j MASQUERADE
# Aceptamos que vayan a puertos 80
/sbin/iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 80 -j ACCEPT
# Aceptamos que vayan a puertos https
/sbin/iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 443 -j ACCEPT
# Aceptamos que consulten los DNS
/sbin/iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 53 -j ACCEPT
/sbin/iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -p udp --sport 53 -j ACCEPT
# Barrera de backup por si cambiamos a modo ACCEPT temporalmente
# Con esto protegemos los puertos reservados y otros well-known
/sbin/iptables -A INPUT -p tcp -m tcp --dport 1:1024 -j DROP
/sbin/iptables -A INPUT -p udp -m udp --dport 1:1024 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 1723 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 5432 -j DROP
echo " OK . Verifique que lo que se aplica con: iptables -L -n"
Bueno ese es mi script.
Si pongo la politica por defecto de FORWARD en ACCEPT funciona.
Si comento las linias de los puertos del forward y añado estas las que pongo debajo tambien funciona.
Código:
# Aceptar paquetes para reenviar procedentes de la red local
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
# Aceptar paquetes para reenviar procedentes de internet de conexiones ya establecidas
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
¿Que es lo que tengo que hacer para poder filtrar los puerto internos hacia afuera?
Espero con ansia que alguien me conteste. Gracias por vuestro tiempo