Skip to content

apermuy/squid2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Packages

 
 
 

Contributors