Squid transparente no funciona cuando redirecciono al puerto 3128

  • A32es
Escrito el 6 Junio, 2006 - 17:44

Permitanme explicarles lo que sucede con mi servidor: Estoy configurando un servidor Proxy de internet ademas de otros servidores, lo que sucede es que iptables esta activado en el kernel, al menos eso indica cuando levanta el sistema, y la configuración del squid es para que funcione en forma transparente.
Cuando pongo los siguientes comandos : squid -k parse; squid -z y squid _NCd1 no tengo ningun error y ningun problema.

La dificultad esta cuando quiero navegar desde otro cliente. El servidor es linux y los otros clientes son winXP. Ahora bien, en la computadora cliente configuro las opciones de Internet para que las solicitudes sean dirigidas al puerto 3128, pero no tengo ningun resultado. Me aseguro previamente de que este funcionando el squid y me da el número de proceso pero aun asi no puedo navegar por la internet en los clientes, pero en el servidor si puedo.

Ahora bien, en el internet encontre un script que sirve para redirigir las solicitudes al puerto 3128. Al ejecutar el script y revisar las tablas de iptables, se redirigen las solicitudes http al puerto 3128. Lo interesante viene a continuacion: cuando navego ahora en los clientes con la configuracion anterior recien puedo navegar, pero cuando quito la aquella configuracion no puedo navegar. Hago ping desde el cliente a la puerta de enlace y tengo respuesta pero aun asi no puedo navegar.

¿Qué estoy haciendo mal? o ¿qué me falta por hacer?

El script es diferente a los que vi antes, asi es que lo pego para que lo revisen:

#!/bin/sh
##ScripT de Iptables para hacer forward del puerto 80 y mandarlo al squid
# Binario Iptables
IPTABLES="iptables"

# Redes
REDLOCAL="10.19.4.0/24"

# Interfaces
IF_LOC=eth0

# IP's
IP_LOC=`ifconfig $IF_LOC | grep inet | cut -d : -f 2 | cut -d \ -f 1`

#### FUNCION 'FLUSH_IPTABLES' #####
flush_iptables() {
echo "Limpiando posibles configuraciones previas..."
#
# reset the default policies in the filter table.
#
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
#
# reset the default policies in the nat table.
#
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
#
# reset the default policies in the mangle table.
#
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
#
# flush all the rules in the filter and nat tables.
#
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
#
# erase all chains that's not default in filter and nat table.
#
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
} # Fin función flush iptables

#### FUNCION 'START_IPTABLES' #####

start_iptables()
{

echo "Configuración existente de interfaces de red:"
echo " - Interfaz LAN: $IF_LOC - $IP_LOC"

#RESETEO IPTABLES
flush_iptables

#POLITICAS POR DEFECTO
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

#OPCIONES DE SYSCTL
echo "Configurando las opciones sysctl..."
#Habilita el forwarding en el kernel
echo 1 > /proc/sys/net/ipv4/ip_forward
#Deshabilita ataques de IP Spoofing
echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
#No responde a broadcast dirigidos (Smurf-Amplifier-Protection)
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#Bloquea source routing
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
#Elimina timestamps
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
#Habilita SYN Cookies
#echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#Elimina redirects
#echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
#Habilita bad error message protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#Log martians (paquetes con direcciones no validas)
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
#Set out local port range
echo "32768 61000" > /proc/sys/net/ipv4/ip_local_port_range
#Reduce la posbilidad de ataques DoS reduciendo timeouts
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 2400 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
echo 0 > /proc/sys/net/ipv4/tcp_sack

#REGLAS
iptables -t nat -A PREROUTING -s 0/0 -d 0/0 -p tcp --dport 80 -j
REDIRECT --to-port 3128

} # Fin función start_iptables

case "$1" in
stop)
echo "Parando el Firewall... "
flush_iptables
echo "HECHO"
;;
status)
echo ""
echo "###################"
echo "## Tabla: filter ##"
echo "###################"
$IPTABLES --list
echo ""
echo "################"
echo "## Tabla: nat ##"
echo "################"
$IPTABLES -t nat --list
echo ""
echo "###################"
echo "## Tabla: mangle ##"
echo "###################"
$IPTABLES -t mangle --list
echo ""
;;
restart|reload)
$0 stop $2
$0 start $2
;;
start)
echo "Arrancando el Firewall... "
start_iptables
echo "HECHO"
;;
*)
echo "Modo de uso: $0 (start|stop|restart|status)"
exit 1
;;
esac

Por favor, ayudenme a solucionar esto. Mis agradecimientos de antemano.

Saludos

Erik

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.

USA TITULOS ESPECIFICOS Y CON SENTIDO

  • Gravatar de drakedalfa
  • drakedalfa
  • 05/16/05
  • 6 Junio, 2006 - 17:55

Netiqueta: Cómo hacer preguntas de manera inteligente
http://blogdrake.net/node/2492

--

Temporada de caza de Koalas | ¿Quien es Jesucristo?

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.
Feed
Feed