Escolar Documentos
Profissional Documentos
Cultura Documentos
Contenido:
● Configuración de Squid para autentificar usando los usuario en OpenLDAP.
● Configuración de quotas de navegación por “usuario”, en cantidad de MB
por día, semana, mes, y Horario de Navegación.
● Configuración de ACLs de Squid, según grupo al que pertenece el usuario
en LDAP.
● Sencilla Administración de todos estos parámetros usando Gosa.
Esta configuración esta hecha sobre Debian Etch y todo lo explicado aquí esta
sujeto al sistema de paquetería de Debian y su fácil modo de Instalación, de
igual forma no creo que sea mucha dificultad adaptarlo a otra distro.
Es muy importante que se tenga una noción básica de LDAP, OpenLDAP, Squid y
conocimientos básicos de Linux.
Y como alguien dijo alguna vez, no configure ni media aplicación sin echarle un
vistazo a /var/log/syslog y /var/log/messages.
No voy a explicar aquí que es Squid y como funciona.
Un vez terminada esta configuración quedará un Servidor Proxy (Squid) con
quotas de navegación, horario de Navegación y ACLs dependiendo del grupo al
que pertenecen los usuarios.
Configuramos algunos aspecto básicos de Squid para que este escuchando por el
puerto que deseamos y se este ejecutando correctamente.
Para integrar el Proxy Squid con LDAP vamos a necesitar unos Scripts que vienen
con Gosa, y que podemos encontrar en:
/usr/share/doc/gosa/contrib/scripts/
goQuota.pl
Lee de nuestro server LDAP las Quotas que hemos puesto y crea una BD con
esas Quotas para una rápida lectura de Squid, podemos poner una tarea en el
Crontab para que se ejecute cada cierto tiempo o modificar el código fuente de
Gosa para cuando demos clic en aplicar haga un php_exec(goQuota.pl).
goQuotaView.pl
Sirve para visualizar la quota de un usuario desde consola, según lo que este en
la BD creado por el script "goQuota.pl".
Nota: En este script debemos comentar una linea, quedando de la siguiente
forma:
#time2str("%d.%m.%Y %H:%M:%S",$cache{TIMESTAMP}),
goSquid.pl
Es el redirector que nos va a llevar a una web una vez hallamos excedido nuestra
Quota ya sea de Navegación en MB o de Tiempo, este script consulta la BD
creado por “goQuota.pl”.
Existe otro script que hace una lista de paginas censuradas y demás, pero no
nos ha funcionado.
Cada uno de estos script necesitan ser editado y debemos ponerle algunos
datos, como nuestro server LDAP, la Base de nuestro server LDAP y en algunos
casos el puerto donde escucha nuestra server LDAP.
Vamos a tomar como ejemplo los datos que debemos ponerle al script
goQuota.pl, si editamos dicho script podemos ver dentro en las primeras lineas
algo como lo siguiente:
my $LDAP_HOST = "ldap.cfg.x.cu";
my $LDAP_PORT = "389";
my $LDAP_BASE = "ou=people,dc=cfg";
Para autentificar a Squid contra LDAP usamos una linea como la siguiente:
auth_param basic program /usr/lib/squid/ldap_auth -h ldap.cfg.x.cu -b
ou=people,dc=cfg -v3 -f (&(uid=%s)(objectClass=gosaProxyAccount))
Continuando con la Configuración de Squid ahora vamos a crear una ACL Externa
para luego tener ACLs según el grupo al que pertenezca el usuario en LDAP.
external_acl_type ldap_group %LOGIN /usr/lib/squid/squid_ldap_group -R -b
ou=groups,dc=cfg -v3 -f
"(&(objectClass=posixGroup)(cn=%g)(memberUid=%u))" -h ldap.cfg.x.cu
Aquí vemos algo bastante parecido a la linea para autentificar al usuario, donde
creamos una ACL externa con nombre “ldap_group” y con la diferencia que la
Base de búsqueda es “ou=groups,dc=cfg” y además el filtro hace que el usuario
pasado mediante “%u” sea miembro del grupo que más adelante definimos
como una ACL.
Ahora vamos a hacer 2 ACLs como ejemplo para mostrar como seria con la ACL
externa “ldap_group”:
acl password proxy_auth REQUIRED
acl usuario_full external ldap_group user_full
acl usuario_res external ldap_group user_res
De esta forma queda claro, que debemos crear un grupo en LDAP, mediante
Gosa y hacer al usuario que queremos miembro de ese grupo.
Y con esto los usuario que pertenecen al grupo user_full de LDAP tendrán
navegación.
Lo que hacemos es decirle que las ACLs con determinados números IP o rangos
de Red no pasen por el Redirector.