CentOs5 y Squid 2.6

Imagen de dragonxul

Forums: 

En una PIII 800 con 768MB de RAM y dos interfaces de red:
- eth0 hacia la red lan con ip 192.168.1.1
- eth1 hacia el router con ip 192.168.13.2 (el router tiene la ip 192.168.13.1)

Al querer montar un servidor proxy transparente para una red de computadoras, He instalado Centos5 sin la parte grafica, luego he instalado el servidor Apache2 y ahora he instalado el Squid 2.6, lo he configurado tal como dicen todos los manuales y tutoriales que he encontrado en la red; esto es en squid.conf:

- acl red1 src 192.168.1.0/255.255.255.0
- http_access allow red1
- http_port 192.168.1.1:8080 transparent
- cache_effective_user squid
- cache_effective_group squid
- half_closed_clients off
- coredumps_dir /var/spool/squid/cache

luego ejecute:

#iptables -A INPUT -i eth0 -p tcp -d 192.168.1.0/24 --dport 80 -j ACCEPT
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Ejecute squid -k parse , para saber si hay algun error, pero no sale ningun error,
luego ejecute squid -z , para crear la cache, tambien no sale ningun error,
y luego squid -N -d1 ; y espere

La configuracion de acceso a internet de los clientes los deje tal como esta, como conexion directa por 192.168.1.1, con esto los clientes no tienen salida a internet; pero al poner usar servidor proxy y poner la direccion 192.168.1.1 y el puerto 8080, el squid si funciona.

Ademas al poner en el navegador de cualquier cliente la direccion del servidor proxy carga la pagina de bienvenida del Apache2 (con esto creo que me dice que no esta funcionando el iptables, por que no lo redirije al puerto 8080 donde esta escuchando el squid).

Habilite net.ipv4.ip_forward = 1, del archivo /etc/sysctl.conf , para que funcione el reenvio de paquetes
Puse la funcion NOZEROCONF = yes, del archivo /etc/sysconfig/network
Desabilite el IPv6.

¿Que estoy haciendo mal?, al configurar el servidor proxy transparente, y con salida para messenger.
Despues de esto pienso instalar Shorewall pa mayor seguridad.

Si algo te falta ...!!!

Imagen de chasquiweb

Hay te envio una guia para que la analisis. A mas de lo que descomentaste veo que talvez te falta esto:

*http_port 3128
*acl red1 src 192.168.0.0/255.255.255.0
- acl red1 src 192.168.1.0/255.255.255.0
- http_access allow red1
- http_port 192.168.1.1:8080 transparent
*cahe_dir ufs /var/spool/squid (2 - 3000) 16 256
- cache_effective_user squid
- cache_effective_group squid
*visible_hostname red1
*httpd_accel_port 80
*httpd_accel_host virtual
*httpd_accel_with_proxy on
*httpd_accel_uses_host_header on

- coredumps_dir /var/spool/squid/cache
/////////////////////////////////////////////////

luego ejecute:

#iptables -A INPUT -i eth0 -p tcp -d 192.168.1.0/24 --dport 80 -j ACCEPT
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

/////////////////////////////////////////////////////////////
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A PREROUTING -i eht0 -p tcp --dport 80 -j REDIRECT --to-port 3128

/////////////////////////////////////////////////////////
Me imagino que esto lo configuraste dentro del archivo que esta dentro de (/etc/rc.local).
nano rc.local

////////////////////////
Bueno si esto te corre. Y al hacer ping no fusiona puede que te falta o hayas desactivado, la ejecucion de firewall.

///////////////////////////////
Espero que te pueda ayudar en algo...!!!

8)

Nota: Por cierto la dirección que utiliza la otra tarjeta pienso que tienes la que te dio tu proveedor?.

Juyayai Ecuadormanta...!! Cel:0981537630

Muchas Gracias

Imagen de dragonxul

Gracias por la ayuda :)
Solo me faltaba ejecutar:
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
y ya funciona mi servidor proxy.

ahora si lo voy a subir al rc.local :)

Por lo que veo le falta

Imagen de damage

Por lo que veo le falta hacer el enmascaramiento.

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE

#iptables -A INPUT -i eth0 -p tcp -d 192.168.1.0/24 --dport 80 -j ACCEPT ------- No tienes para que abrir el puerto 80 (al menos que tengas algo configurado en el apache).

Además ve que te dicen los log's y miralos cuando haces

service squid restart

Keep The Fire Burning.....
Stryper 1988

Sign by Dealighted -

Antes de intentar hacer un

Imagen de Monkito

Antes de intentar hacer un proxy transparente deberías:

1. bajar el firewall "service iptables stop"
2. Ver si el servidor proxy tiene Internet haciendo ping a servidores conocidos como google
3. configurar el proxy NO-Transparente, y probar si funciona configurando el navegador de un cliente para usar tu proxy

con eso compruebas que el proxy esté funcionando y si lo hace, continuamos la configuración para hacerlo transparente, habilitar el nat, el redireccionamiento y de último pensar en la seguridad de los puertos.

es mi humilde opinión.

------------
counter.li.org

Cogito Ergo Sum

------------
counter.li.org

Cogito Ergo Sum

Problema con Squid Transparente

Hola espero me puedan ayudar ya que he buscado en google y no he podido hallar respuesta a mi inquietud.
Primero comenzare diciendo lo que uso:
- Fedora 7
- Squid 2.6
- Pentium 3

El problema es el siguiente....., he configurado un servidor proxy (convencional, o sea no es transparente) con squid 2.6 sobre Fedora 7 y funciona muy bien; en el cliente (Windows) no hace falta colocar el DNS que va a resolver la url ya que el servidor squid coge los servidores que se encuentran en su archivo resolv.conf y con esos valores resuelve, solo basta configurar el browser del cliente que apunte al servidor proxy.

Si alguien piensa decirme hasta aqui que squid no otorga DNS para resolver etc etc, pues que lea bien lo que estoy escribiendo ya que no he dicho que otorgue DNS sino que SQUID utiliza el DNS de su resolv.conf para resolver; ademas cuenta con mucha logica ya que por eso es un proxy (un intermediario que resuelve por el cliente).
Si nunca lo han hecho deberian probarlo y no configurar en el cliente el DNS y veran como el squid resuelve usando su archivo resolv.conf.

Hasta aqui todo va muy bien y no me presenta ningun inconveniente el squid (ya que he configurado las ACL y todo bien).

Bueno... ahora decidi hacer un proxy transparente para evitar estar colocando en el browser de cada cliente el servidor proxy, ademas configure el squid.conf para que trabaje como transparente (http_port 3128 transparent), desde luego la regla en el iptables para que toda peticion que llega para el puerto 80 se direccione al puerto 3128 y el net.ipv4.ip_forward = 1.

En el cliente coloque que el gateway sea el servidor proxy y otra vez no le coloque DNS; PERO ESTA VEZ NO RESOLVIO LA URL, pero si coloco el DNS en el cliente si pasa por el proxy (vi los logs y eso quiere decir que la regla del iptables si funciona ya que en el browser del cliente ya no hay ningun proxy)y resuelve.

Entonces mi pregunta es: Por que cuando hago un proxy convencional no necesito colocar en el cliente el DNS y cuando hago un servidor proxy transparente si necesito colocar el DNS en el cliente?

He tratado de ser lo mas claro posible, espero la ayuda de todos ya que nadie ha podido darme aun una explicacion.

Saludos desde Lima - Peru.

Para que el proxy

Imagen de jcyepez

Para que el proxy transparente funcione, se requiere que la máquina resuelva los dns, No hay otra manera de que funcione. Cuando configuras el proxy manualmente es verdad que no se requiere DNS's en el equipo pues como tu mismo mensionas quien resuelve es el servidor proxy.

Saludos

Juan Yépez
093681879

Saludos

Juan Yépez
0993681879
Dj - Discomovil Quito