Inicio > Internet y redes, Windows > Configurar proxy con squid en Windows

Configurar proxy con squid en Windows

domingo, 21 de septiembre de 2008

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.

image

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.

image

Firefox

Opciones -> Avanzadas -> Red -> Configuracion

image

  • abdel

    zxzxsxs´ñxs´ñddsd

  • CodecWeb

    Muchas gracias por la información, esta bien explicada e ilustrada. Me fue muy util.

  • rurvina

    Bacan amigo, simple y preciso

  • Moises Andrade

    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.

    • Alexis Abarca

      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

  • Moises Andrade

    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.

  • Edwin Ortiz Herazo

    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