Proxy HTTP/HTTPS con caché web, filtro de acceso, acelerador reverse proxy, balanceador simple, autenticador y limitador de ancho de banda
# cp /etc/squid/squid.conf{,.defaults}
Modificamos/adaptamos los siguientes ajustes basicos:
# nano /etc/squid/squid.conf
http_port 3128 #puerto de escucha
cache_mem 100 MB #Tamaño memoria caché
cache_dir ufs /var/spool/squid 700 16 256 #directorio y tamaño
acl localnet src 192.168.1.0/24 #Nombre y red a la que afecta
http_access allow localhost #permitir acceso a toda la red
http_access allow deny all #Denegamos a los de fuera de la red
auth_param basic /usr/lib/squid/ncsa_auth /etc/squid/passwd #ruta a usuarios
auth_param basic realm “Mensaje de acceso” #mensaje al logearse
auth_param basic children 5 #Procesos de autentificación
auth_param basic basic credentialsttl 1 hours #tiempo
# squid -k parse
# systemctl start squid
# grep -v '^#' /etc/squid/squid.conf | sed '/^$/d'
# egrep -v '^#|^$' /etc/squid/squid.conf
# squid -k reconfigure
# squid -k shutdown
# squid -z
$ squid -v
$ curl -x http://127.0.0.1:3128 https://example.com
$ tail -f /var/log/squid/access.log
Algunos conceptos
TCP_HIT --> salió de caché
TCP_MISS --> descargado de internet
TCP_REFRESH_HIT --> caché validada
TCP_DENIED --> ACL bloqueó
NONE_NONE --> conexión rara/fallida
1.-
Ejemplo mínimo de un proxy LAN funcional
# nano /etc/squid/squid.conf
http_port 3128
acl localnet src 192.168.1.0/24
http_access allow localnet
http_access deny all
cache_mem 512 MB
maximum_object_size 100 MB
Permite la red local, bloquea el resto y cachea objetos grandes.
2.-
Ejemplo de bloquear una web
# nano /etc/squid/squid.conf
Colocar las dos lineas siguientes:
acl badsite dstdomain facebook.com
http_access deny badsite
3.-
Ejemplo de bloquear descargas
# nano /etc/squid/squid.conf
Colocar las dos lineas siguientes
acl downloads urlpath_regex \.iso$ \.mp4$
http_access deny downloads
4.-
Configuración de usuarios (/etc/squid/passwd):
# htpasswd -c /etc/squid/passwd user1
# htpasswd /etc/squid/passwd usuario2