-
Notifications
You must be signed in to change notification settings - Fork 0
apermuy/squid2
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
# squid.conf — Squid 5.7 con autenticación OpenLDAP y TLS - Debian 12
Configuración de proxy Squid 5.7 para *Debian 12* con autenticación contra OpenLDAP via LDAPS y cifrado TLS entre cliente y proxy.
## Características
- Proxy HTTP transparente en puerto 3128
- Proxy HTTPS cifrado (TLS) en puerto 13129
- Autenticación Basic contra OpenLDAP via LDAPS (puerto 636)
- Caché con política LFUDA
- Listas negras de dominios y palabras clave
- Dominios con acceso directo sin caché
## Requisitos
### Paquetes
```bash
apt install squid-openssl
```
> El paquete `squid` estándar no incluye soporte SSL. Es imprescindible `squid-openssl`.
### Certificados
Squid necesita leer el certificado y la clave privada:
```bash
mkdir -p /etc/squid/ssl
cp /etc/ssl/certificado.crt /etc/squid/ssl/
cp /etc/ssl/certificado.key /etc/squid/ssl/
chown root:proxy /etc/squid/ssl/certificado.key
chmod 640 /etc/squid/ssl/certificado.key
chmod 644 /etc/squid/ssl/certificado.crt
```
El fichero `.crt` debe contener la cadena completa (certificado + intermedios). Verificar:
```bash
grep -c "BEGIN CERTIFICATE" /etc/squid/ssl/certificado.crt
# Debe devolver 3 o 4
```
### OpenLDAP
Se requiere una cuenta de servicio con permisos de lectura sobre `ou=People`:
```
DN: cn=ldap-reader,ou=Service,dc=domain,dc=com
```
Verificar que el helper de autenticación funciona antes de arrancar Squid:
```bash
echo "usuario password" | /usr/lib/squid/basic_ldap_auth \
-H ldaps://127.0.0.1 \
-b "ou=People,dc=domain,dc=com" \
-D "cn=ldap-reader,ou=Service,dc=domain,dc=com" \
-w "PASSWORD" \
-f "uid=%s"
# Debe devolver: OK
```
## Ficheros de configuración
| Fichero | Descripción |
|---|---|
| `/etc/squid/squid.conf` | Configuración principal |
| `/etc/squid/denydomains` | Dominios bloqueados (regex) |
| `/etc/squid/denywords` | URLs bloqueadas por palabras clave (regex) |
| `/etc/squid/sincache` | Dominios con acceso directo sin caché (regex) |
## Instalación
```bash
# Verificar sintaxis
squid -k parse
# Iniciar servicio
systemctl enable --now squid
# Verificar puertos
ss -tlnp | grep squid
```
## Gestión del servicio
```bash
# Recargar configuración sin interrumpir conexiones activas
systemctl reload squid
# Reinicio completo (interrumpe conexiones activas)
systemctl restart squid
# Estado
systemctl status squid
# Logs en tiempo real
tail -f /var/log/squid/access.log
tail -f /var/log/squid/cache.log
```
## Configuración del cliente
El puerto 13129 usa TLS, por lo que el cliente debe soportar **proxy HTTPS explícito**.
### Firefox
El cliente nativo de Firefox **no soporta proxy HTTPS**. Usar la extensión [FoxyProxy](https://addons.mozilla.org/es/firefox/addon/foxyproxy-standard/):
```
Proxy HTTPS: proxy.dominio.com
Puerto: 13129
```
### curl
```bash
curl -x https://proxy.dominio.com:13129 \
--proxy-user usuario:password \
https://example.com
```
### Variables de entorno
```bash
export https_proxy=https://usuario:password@proxy.dominio.com:13129
export http_proxy=https://usuario:password@proxy.dominio.com:13129
```
## Logs
| Fichero | Contenido |
|---|---|
| `/var/log/squid/access.log` | Registro de accesos |
| `/var/log/squid/store.log` | Registro de objetos en caché |
| `/var/log/squid/cache.log` | Registro del sistema y errores |
## Notas
- El puerto 13129 está expuesto a Internet. Restringir mediante firewall a las IPs de los clientes si es posible.
- El certificado de OpenLDAP debe estar vigente. Verificar con `openssl s_client -connect 127.0.0.1:636`.
- La directiva `cache_access_log` usa el prefijo `stdio:` requerido por Squid 5.x.About
Public configs for Squid 2.x versions
Resources
Stars
Watchers
Forks
Releases
No releases published