Configurar proxy con squid en Windows
Un proxy es un servicio que se ocupa de recibir las solicitudes de paginas Web del cliente, solicitar la pagina al servidor y devolverla al cliente. Actua como intermediario en la navegacion, se usa para compartir la conexion a Internet o para bloquear recursos, ya que se pueden cerrar todos los puertos y unicamente habilitar el proxy para navegar (caso PUCV).
SQUID es el proxy mas conocido por ser opensource y estable.
Primero necesitas descargar la version para Windows de squid. (tambien esta disponible para linux)
http://www.squid-cache.org/Download/ (link directo http://www.acmeconsulting.it/SquidNT/)
El archivo zip debes descomprimirlo en C:\, deberia quedar la carpeta squid en C: y dentro el programa como la imagen.
Ahora debes configurarlo, para eso abres la carpeta etc (C:\squid\etc) y hay cuatro archivos .conf.default, debes dejarlos como .conf
cachemgr.conf
mime.conf
squid.conf
squid_radius_auth.conf
Ahora abres squid.conf con un editor de texto
Tienes que configurar las reglas de acceso, que son los clientes con permiso a usar el proxy. Por defecto tiene permiso la red local con la IP clase A, B y C.
- Clase A: rango de 10.0.0.0 a 10.255.255.255
- Clase B: rango de 172.16.0.0 a 172.31.255.255
- Clase C: rango de 192.168.0.0 a 192.168.255.255
Para poner mas IP buscas acl localnet src 192.168.0.0/16 y debajo pones otra linea similar, pero reemplazando las IP correspondientes.
Por defecto los puertos permitidos son (A)
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
Si necesitas mas copias una de las lineas y pones el numero del puerto correspondiente. Estos puertos pasaran por el proxy.
Hay puertos que los conectara directamente sin usar el proxy, que es el HTTPS (443) que por ser encriptado no lo puede manejar el proxy. (B)
acl SSL_ports port 443
Añades mas puertos de ser necesario.
Mas abajo estas reglas aplican los permisos
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
La primera bloquea las conexiones a los puertos que no estan en la lista de permitidos (A), la segunda bloquea la conexion directa por otros puertos que no sean los SSL (B) y la tercera da acceso a los de la red local.
squid usa el puerto 3128 para recibir conexiones, puedes agregar mas copia la linea y pone el numero de puerto
http_port 3128
Y descomenta esta linea (quitar el # que esta al principio)
cache_dir ufs c:/squid/var/cache 100 16 256
Ahora en una terminal ejecuta
c:\squid\sbin\squid.exe -z
Con eso squid crea las carpetas de cache.
Ahora puedes instalar squid de dos formas, como servicio que se inicia automaticamente al encender el PC o correr squid manualmente cada vez que se necesite.
Para instalarlo como servicio ejecuta
c:\squid\sbin\squid.exe -i
Luego para iniciarlo
net start squid
Recuerda abrir el puerto 3128 en el firewall (y si pusiste mas puertos de escucha tambien debes abrirlos).
Si no lo vas instalar como servicio simplemente ejecutas esto para levantar el proxy
c:\squid\sbin\squid.exe
Mientras se este ejecutando aparecera la pantalla negra, para bajar el proxy simplemente cierras esa ventana.
Ahora debes configurar los navegadores
Internet Explorer
Opciones de internet -> Conexiones -> Configuracion de LAN
Esta configuracion ademas de usarla IE, tambien la usa Windows Live Messenger, y otros programas que comparten esta configuracion.
Firefox
Opciones -> Avanzadas -> Red -> Configuracion
zxzxsxs´ñxs´ñddsd
Muchas gracias por la información, esta bien explicada e ilustrada. Me fue muy util.
Bacan amigo, simple y preciso
Saludos amigo, tengo una duda hacerca de la configuracion para los puertos IMAP y SMTP ya que trato de liberarlos y no me funcionan.
El imap es 993 y el smtp es 587
Uso una cuenta de google apps vinculada a mi dominio y mi gestor es thunderbird
Trate de hacer esto
acl Safe_ports port 993 # imap
acl Safe_ports port 587 # smtp
pero tampoco me funciona, habria que hacer alguna coniguracion adicional. espero tu mas pronta respuesta y ayuda amigo.
squid es un proxy HTTP, por lo que no trabaja con otros protocolos (con el FTP hace algo basico nomas xd), tienes que abrir esos puertos por firewall
ah ok me lo imagine amigo queria confirmar la duda, pero en los foros que he verificado me aparece para configurarlo con IPTABLES y otros firewalls que son para linux, cual me recomendarias para poder utilizarlo.
Hasta donde he entendido dedo redirigir estos puertos
IMAP 993
SMTP 587
al puerto 80 que es la salida de HTTP en SQUID
o solamente seria habilitarlos y ya se soluciona el problema?
habria que hacer alguna configuaracion adicional en squid despues de esto?
Gracias por responder amigo.. saludos desde Venezuela.
Hola
la verdad he configura squid en otras ocaciones estuve trabajando por mas de un tiempo con squid y de un momento a otro el squid en las terminales me indica un error NO DNS RECORDS, ya reinstale el equipo server, cambie las terminales y he hecho de todo . ahi mando el contenido de configuracion
Contenido del Squid.Conf
http_port 3128
#httpd_accel_with_proxy on
#httpd_accel_host virtual
#httpd_accel_port 0
# Recommended minimum configuration:
cache_mem 2048 MB
cache_dir ufs c:/squid/var/cache 10000 16 256
cache_access_log c:/squid/var/logs/access.log
emulate_httpd_log on
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
acl permitidos1 src «/squid/etc/permitidos1.txt»
acl permitidos2 src «/squid/etc/permitidos2.txt»
acl restringidos1 url_regex -i «/squid/etc/restringidos1.txt»
acl restringidos2 url_regex -i «/squid/etc/restringidos2.txt»
acl extensiones urlpath_regex -i «/squid/etc/extensiones.txt»
http_access allow manager localhost
http_access deny extensiones
http_access deny restringidos1
http_access allow permitidos1
http_access deny restringidos2
http_access allow permitidos2
http_access deny all
#cache_access_log c:/squid/etc/logs/access.txt
error_directory c:/squid/share/errors/Spanish
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
visible_hostname 192.168.0.105
httpd_accel_with_proxy on
# lasiguiente línea la coloque para ver si solucionaba el problema de los dns y #nada
# dns_nameservers 200.30.79.39 200.30.79.40