Configuración del Proxy Squid

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Un proxy es un elemento de comunicaciones que permite el tráfico entre dos redes distintas. Es típico que los servidores que están aislados desde Internet, es decir, que no se puede acceder a ellos desde la red pública, necesiten conectarse al exterior para ciertas tareas como, descarga de parches o acceder a un servicio externo.

Por lo tanto, un proxy es una buena manera de proteger a los servidores de aplicaciones o de bases de datos y que éstos, a la vez, sí puedan conectarse a Internet.

Algunos proxys también tienen funciones de cacheo de datos con el objetivo de acelerar la carga de páginas WEB. Por ejemplo, pueden cachear los objetos estáticos para no tener que interrogar cada vez al servidor origen. Por ejemplo, se puede usar para cachear WEBs estáticas.

Algunos proxys pueden restringir el tráfico. Es decir, pueden permitir el uso de este servicio desde algunas IPs o redes concretas o mediante autentificación con usuario y contraseña.

También es muy útil el almacenamiento de todo el tráfico que pasa por un proxy en un log con el objetivo de poder analizarlo a posteriori.

Administración del proxy squid

En Linux se utiliza mucho el proxy squid como proxy HTTP. Es de código abierto y muy fácil de configurar.

El fichero de configuración suele estar en /etc/squid/squid.conf y algunas de las directivas más comunes que se suelen configurar son:

  • visible_hostname Nombre:  Sirve para proporcionar un hostname propio al proxy.
  • http_port: Indicamos el puerto de comunicaciones por donde escuchará el proxy. Por defecto, es el 3128.
  • dns_nameservers: Son los DNSs que va a utilizar el proxy para resolver los nombres a los que se va a conectar.
  • cache_mem: Es la cantidad de memoria física que se va a utilizar para cachear objetos.
  • cache_dir: Es el directorio donde se van a guardar los objetos cacheados.
cache_dir ufs /var/spool/squid 200 20 200

La directiva anterior utiliza 200MB de disco, almacena hasta veinte directorios de primer nivel y doscientos de segundo.

  • acl [nombre_lista] src [componentes_lista]: Permitimos el uso del proxy solamente a una serie de IPs origen. También podemos establecer reglas de denegación de acceso. Ejemplo:
acl MiRed src 130.177.169.0 localhost 192.126.1.229
 acl web_denegadas dstdomain  .sex.com
 acl SSL_ports port 443 445
 acl CONNECT method CONNECT
 http_access allow MiRed deny !SSL_ports http_access deny CONNECT !SSL_ports

  • cache_mgr email: Envía un correo electrónico las incidencias relacionadas con la caché.
  • http_accel_host servidor: Aceleramos el tráfico en un servidor. Es típico cachear los objetos de una WEB y cargar los datos desde el proxy en vez desde el servidor original, siempre que no haya habido ningún cambio en origen.

Ejemplo básico de configuración de un proxy squid:

visible_hostname myserver.com localhost
http_port 3128 
cache_effective_user sqdadm
cache_access_log /etc/squid/logs/access.log 
cache_log /etc/squid/logs/cache.log 
cache_store_log /etc/squid/logs/store.log 
pid_filename /etc/logs/squid.pid
cache_dir ufs /etc/squid/cache 200 20 300 coredump_dir /etc/squid/cache
acl All src 0/0 acl MyNetwork src 192.168.169.0 localhost
http_access allow MyNetwork http_access deny All

Arrancar squid

La primera vez que configuramos squid, tenemos que ejecutar el comando squid -z para que se cree la estructura de directorios, luego ya podemos arrancarlo como servicio.

Proteger el proxy squid mediante usuario y contraseña

En mi caso uso Centos7, así que para instalar httpd-tools ejecutaré el comando:

yum -y install httpd-tools

Con httpd-tools podré crear un usuario y contraseña que asociaré a la configuración de squid.

Seguidamente, añadimos las siguientes directivas en el fichero squid.conf:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/.htpasswd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 5 hours
acl password proxy_auth REQUIRED
http_access allow password

Guardamos el fichero y creamos un usuario y contraseña. En este caso:

# htpasswd -c /etc/squid/.htpasswd david
New password: 
# set password
Re-type new password: 
Adding password for user cent
#

Finalmente, reiniciamos el proxy squid:

systemctl restart squid

Si quieres, puedes probar curl para que utilice el proxy.

Te podría interesar

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Artículos Recientes

Deja un comentario

About Author