Squid mas nat

Imagen de xime

Forums: 

Muy buenas, nuevamente saludos a todos en el foro, nuevamente tengo un problema, ojala alguno de ustedes pueda aclararme el panorama, por que no estoy segura de cual es el problema. En un post anterior me ayudaron a configurar un Server squid, actualmente lo tengo funcionando bien, con bloqueo de direcciones IP cómo de MACS. He probado el acceso web y el uso de Messenger va bien, pero por ejemplo el uso de google talk, o de yahoo Messenger, no funciona. Entonces mi duda cómo puedo hacer para que estos servicios corran al igual que el Messenger?

Soy administradora chévere, no quiero bloquear accesos, quiero q hagan uso del Internet sin restricción jeje.

Básicamente lo que tengo en squid

# Squid normally listens to port 3128
http_port 172.16.0.1:8080

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

# Example rule allowing access from your local networks. Adapt
# to list your (internal) IP networks from where browsing should
# be allowed
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
#http_access allow our_networks

#############ACL'S LOCALES#########################################
#
####Usuarios normales permitidos
acl permitidos src "/etc/squid/permitidos"
acl bloqueados src "/etc/squid/bloqueados"
####Acceso MACS
acl macspermitidas arp "/etc/squid/listas/macspermitidas"
acl macsdenegadas arp "/etc/squid/listas/macsdenegadas"
acl allmacs arp 00:00:00:00:00:00
#############################################################
# And finally deny all other access to this proxy
http_access allow localhost
http_access allow permitidos !bloqueados
http_access allow macspermitidas !bloqueados !macsdenegadas
http_access deny bloqueados macsdenegadas
http_access deny allmacs
http_access deny all

Ahora en el script de firewall, salen mis problemas, probé habilitar el nat, pero al hacerlo, todas las pcs de la subred tienen acceso a Internet, sin tomar en cuenta las restricciones del squid, si no habilito el nat, la opción de Proxy transparente no funciona =( así que lo comenté para q al menos funcione Proxy manual.


#!/bin/sh
iptables=/sbin/iptables

echo "CARGAMOS LOS MODULOS PRINCIPALES DEL KERNEL ..."

# cargar los modulos
modprobe ip_conntrack
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_MASQUERADE
echo "COMENZAMOS BORRANDO TODAS LAS REGLAS ACTUALES ..."

# Flush de reglas
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
#HTB-GEN
htb-gen tc_all

# Para clientes con windows XP
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo " COMENZAMOS CON LAS REGLAS ... "

# Politicas por defecto
iptables -P INPUT ACCEPT
#iptables -P INPUT DROP
iptables -P FORWARD ACCEPT # Aceptamos el FOWARD (para LAN)
iptables -P OUTPUT ACCEPT # Permitimos todo lo emergente desde nuestra pc.

# Acceso ilimitado al local host
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#NAT Permitimos conexión de LAN
#iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i eth0 -j ACCEPT

# Redireccionamos Internet a LAN
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#redireccionar al proxy el puerto 80
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

# Permitimos la comunicación con el servidores dns
iptables -A INPUT -p UDP --dport 53 -j ACCEPT
iptables -A INPUT -p TCP --dport 53 -j ACCEPT

# Dejo pasar los paquetes ICMP
iptables -A INPUT -i eth0 -p ICMP -j ACCEPT

Ahora alguna idea de cómo permitir el uso de las otras aplicaciones a los usuarios permitidos por el squid?

Desde ya muchas gracias por su ayuda ;)

Te falta agregar la opción de

Imagen de acl

Te falta agregar la opción de transparent en la configuración de squid. Esa puede ser una causa del porqué al NATear no hace caso a la configuración de squid. Los otros messengers deberían funcionar dado que tu política de FORWARD está en ACCEPT. Puedes intentar capturar el tráfico con tcpdump o wireshark en el proxy/firewall para ver qué paquetes están entrando y saliendo cuando intentas entrar a las aplicaciones que quieres permitir.

Otra cosa es que como tus políticas en OUTPUT y FORWARD son ACCEPT, no hace falta que aceptes explícitamente nada. Si la política es ACCEPT, los paquetes que no coincidan con ninguna regla, tendrán como acción ACCEPT. No afecta en mucho, pero llena de reglas superfluas tu script. Además la línea de RELATED,ESTSABLISHED no es necesaria cuando haces NAT. El kernel se comporta como si la tuviera puesta en ese caso.

Si tenia la opcion de

Imagen de xime

Si tenia la opcion de transparente en la configuración, pero cómo explique antes la cambié, por q no funcionaba la regla en el firewall, es decir si pongo la regla de redireccionar el trafico al 8080 no funciona, a menos que active el nat en el iptables =S, por eso opté por dejarlo sin transparente, pero no funcionan los otros servicios

http://poquiblog.blogspot.com/

Cita: es decir si pongo la

Imagen de acl

[quote]es decir si pongo la regla de redireccionar el trafico al 8080 no funciona, a menos que active el nat en el iptables[/quote]
Pero así es como tiene que estar - la opción de transparent en squid y el redirect y masquerade en la tabla de nat (además de que los clientes puedan resolver dns y tengan como gateway a tu fw/proxy).

Si colocas el transparent en squid.conf, y activas la regla de redirect y la de masquerade, ¿qué falla te da?

cuando hago eso, es cómo si

Imagen de xime

cuando hago eso, es cómo si el proxy no hiciera nada, es decir todos los usuarios de la red tienen acceso a internet, incluyendo los que deberia excluir el squid, es mas estaba probando, apagué el squid, pero igual todos los usuarios seguian con internet, directamente por el nat, sin tomar en cuenta al squid.

Los clientes si tienen dns configurado, y como gateway la direccion del squid, y estan dentro de la subred.

Estaba probando colocando en DROP las reglas por default, pero si las pongo así, en cambio no deja salida a internet a nadie, con o sin squid.

http://poquiblog.blogspot.com/

Si corres iptables -nvL -t

Imagen de acl

Si corres iptables -nvL -t nat PREROUTING te va a salir la línea de tu tabla de nat con un contador como primer campo. Ese es el numero de paquetes que coincidieron con la regla. Si está en cero quiere decir que no redireccionaron a squid. Verifica igual con las reglas de las otras cadenas y ve por donde pueden estarse yendo los paquetes.

Holas! Lo que te recomiendo

Imagen de zo0m

Holas!
Lo que te recomiendo es que primero veas que realmente las peticiones de tu Red LAN están siendo dirigidas al puerto de squid y luego de eso empieces a crear tus reglas de filtro (acl y http_acces) en el squid.conf.

También deberías como dice el compañero @acl colocar squid de modo transparente, asignando el parámetro transprent al puerto de escucha de la siguiente manera.


http_port 3128 transparent

y creas tu regla iptables en tu script:


iptables -t nat -A PREROUTING -i $iterfaz -p tcp --dport 80 -j REDIRECT --to-port 3128

$interfaz = colocas tu interfaz correcta (eth0,eth1, etc)

Luego de eso no deberías navegar (solo navegar) puesto que no tienes las reglas ni listas de control habilitadas y squid por defecto bloquea las peticiones.

pd. Te recomiendo que dejes como puerto de escucha el 3128 que viene por defecto.

Saludos

____________________________________
Me gusta aprender, me gusta Linux !!

te estas haciendo full

Imagen de WolfAnt

te estas haciendo full bolas... yo creo que debes hacer lo que dice zo0m
borra todo y comienza viendo desde 0 que esta pasando en tu red.
por otro lado tienes que permitir el puerto 5222 para el googletalk y el 5050 para el yahoo, pero en tu caso todo ya esta permitido, pensando un poquito, si tu bajas el squid y tus clientes navegan quiere decir que tienen una ruta directa sin pasar por tu proxy o si pasan, el esta redireccionando todo. mira si quitas esto

echo 1 > /proc/sys/net/ipv4/ip_forward

asi desactivas el reenvío de paquetes, luego mira si aun pueden navegar, si lo hacen el getway que tienen configurado no es tu proxy..
sino pues ahi si empieza de cero,

por otro lado por que no usas algo mas fácil como EndianFirewall o IpCop?

Saludos

Att: Antonio Insuasti ®

Muchas gracias por las

Imagen de xime

Muchas gracias por las respuestas voy a volver a hacer la configuración de nuevo, cambiandole el puerto al squid, y probando las cosas. ;)

http://poquiblog.blogspot.com/

Luego de algunas pruebas,

Imagen de xime

Luego de algunas pruebas, solucioné el problema cambiando el puerto del squid al 3128, y bloqueando el acceso de las ips no asignadas, mediante iptables, no se si sea lo mas eficiente pero al menos para las pruebas realizadas ha funcionado bien.

Gracias a todos por sus respuestas ;)

http://poquiblog.blogspot.com/