Forums:
Buenas amigos!...
Actualmente tengo un firewall con politica accept funcionando perfectamente. Pero ahora he querido cambiar la politica a drop usando squid y dansguardian por algunos problemillas que he tenido...
La cuestion es que no he logrado hacer que las pc´s de mi lan naveguen, creo que no estoy entendiendo muy bien el funcionamiento logico del iptables y pues me gustaria me echaran una mano, esta pagina me ha servido de mucho pero todavia no logro mi objetivo.
Este es el script de mi firewall:
IPT=/sbin/iptables
echo -n "Inicializando Firewall..."
## Variables
EXT="eth0" #Al mundo
INT="eth1" #a la LAN
## Flush de reglas
echo -n "Flush de reglas: "
${IPT} -F
${IPT} -X
${IPT} -Z
${IPT} -t nat -F
echo -n "Aplicando Reglas de Firewall..."
## Politica por defecto
echo -n "Politica por defecto DROP"
${IPT} -P INPUT DROP
${IPT} -P OUTPUT DROP
${IPT} -P FORWARD DROP
${IPT} -t nat -P PREROUTING ACCEPT
${IPT} -t nat -P POSTROUTING ACCEPT
##==========================================##
# Permitiendo conexiones y reglas necesarias #
##==========================================##
##
echo 1 > /proc/sys/net/ipv4/ip_forward
## Acceso localhost
${IPT} -A INPUT -i lo -j ACCEPT
${IPT} -A OUTPUT -o lo -j ACCEPT
## Acceso al firewall
${IPT} -A INPUT -i $INT -j ACCEPT
${IPT} -A OUTPUT -o $INT -j ACCEPT
## Enmascaramiento de la LAN
${IPT} -t nat -A POSTROUTING -s 10.50.1.0/24 -d 0.0.0.0/0 -j MASQUERADE
## Redirigir el puerto de navegacion
${IPT} -t nat -A PREROUTING -i $EXT -p tcp --dport 80 -j REDIRECT --to-port 3128 #Del mundo hacia la LAN
${IPT} -t nat -A PREROUTING -i $INT -p tcp --dport 80 -j REDIRECT --to-port 8080 #De la LAN hacia el mundo
## Navegacion
${IPT} -A INPUT -i $EXT -p tcp --sport 3128 -j ACCEPT #Accepto la entrada para que funcione la redireccion al squid
${IPT} -A OUTPUT -o $EXT -p tcp --dport 3128 -j ACCEPT
${IPT} -A INPUT -i $EXT -p tcp --sport 80 -j ACCEPT #Accepto la entrada para que funcione la redireccion al dansguardian
${IPT} -A OUTPUT -o $EXT -p tcp --dport 80 -j ACCEPT
## Acceso a pop3 y smtp
${IPT} -A FORWARD -s 10.50.1.0/24 -d 216.25.164.162/0 -p tcp --dport 25 -j ACCEPT
${IPT} -A FORWARD -s 216.25.164.162/0 -d 10.50.1.0/24 -p tcp --sport 25 -j ACCEPT
${IPT} -A FORWARD -s 10.50.1.0/24 -d 216.25.164.162/0 -p tcp --dport 110 -j ACCEPT
${IPT} -A FORWARD -s 216.25.164.162/0 -d 10.50.1.0/24 -p tcp --sport 110 -j ACCEPT
echo -n "Firewall activo..."
Logré hacer que funcionara la salida y entrada del correo, pero la navegacion me tiene en jaque, nose si sera que hago mal la redireccion de puertos o que, cualquier correccion bienvenida sea. Algunas reglas estan comentadas con lo que supuestamente deberian de hacer..
Haciendo algunas
Haciendo algunas modificaciones en las reglas logre que el navegador o mas bien el squid me responda esto desde cualquier pc de la lan:
The requested URL could not be retrieved
While trying to retrieve the URL: http://www.google.co.cr/
The following error was encountered:
Unable to determine IP address from host name for www.google.co.cr
The dnsserver returned:
Timeout
This means that:
The cache was not able to resolve the hostname presented in the URL.
Check if the address is correct.
Your cache administrator is root.
Generated Tue, 04 May 2010 20:50:22 GMT by proxy.##########.com (squid/2.6.STABLE4)
Las reglas modificadas quedan asi:
IPT=/sbin/iptables
echo -n "Inicializando Firewall..."
## Variables
EXT="eth0"
INT="eth1"
## Flush de reglas
echo -n "Flush de reglas: "
${IPT} -F
${IPT} -X
${IPT} -Z
${IPT} -t nat -F
echo -n "Aplicando Reglas de Firewall..."
## Politica por defecto
echo -n "Politica por defecto DROP"
${IPT} -P INPUT DROP
${IPT} -P OUTPUT DROP
${IPT} -P FORWARD DROP
${IPT} -t nat -P PREROUTING ACCEPT
${IPT} -t nat -P POSTROUTING ACCEPT
##==========================================##
# Permitiendo conexiones y reglas necesarias #
##==========================================##
## Forward activado
echo 1 > /proc/sys/net/ipv4/ip_forward
## Acceso localhost
${IPT} -A INPUT -i lo -j ACCEPT
${IPT} -A OUTPUT -o lo -j ACCEPT
## Acceso al firewall
${IPT} -A INPUT -i $INT -j ACCEPT
${IPT} -A OUTPUT -o $INT -j ACCEPT
## Enmascaramiento de la LAN
${IPT} -t nat -A POSTROUTING -s 10.50.1.0/24 -d 0.0.0.0/0 -j MASQUERADE
## Redirigir el puerto de navegacion
${IPT} -t nat -A PREROUTING -i $EXT -p tcp --dport 80 -j REDIRECT --to-port 3128 #Del mundo hacia la LAN
${IPT} -t nat -A PREROUTING -i $INT -p tcp --dport 80 -j REDIRECT --to-port 8080 #De la LAN hacia el mundo
## Navegacion
#Acepto todas salidas y entradas para que funcione la redireccion al 3128 y 8080
${IPT} -A INPUT -p tcp --sport 3128 -j ACCEPT
${IPT} -A OUTPUT -p tcp --dport 3128 -j ACCEPT
${IPT} -A INPUT -p tcp --sport 8080 -j ACCEPT
${IPT} -A OUTPUT -p tcp --dport 8080 -j ACCEPT
## Acceso DNS
#${IPT} -A FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -p udp --dport 53 -j ACCEPT
#${IPT} -A FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -p udp --sport 53 -j ACCEPT
## Acceso a pop3 y smtp
${IPT} -A FORWARD -s 10.50.1.0/24 -d 216.25.164.162/0 -p tcp --dport 25 -j ACCEPT
${IPT} -A FORWARD -s 216.25.164.162/0 -d 10.50.1.0/24 -p tcp --sport 25 -j ACCEPT
${IPT} -A FORWARD -s 10.50.1.0/24 -d 216.25.164.162/0 -p tcp --dport 110 -j ACCEPT
${IPT} -A FORWARD -s 216.25.164.162/0 -d 10.50.1.0/24 -p tcp --sport 110 -j ACCEPT
echo -n "Firewall activo..."
Tu servidor no puede
Tu servidor no puede resolver, debes abrir el puerto 53 que corresponde al DNS.
There are only 10 types people in the world:
Those who understand binary and those who don't