Squid, OpenLDAP y Gosa.

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. Este Manual a sido elaborado por: Yatniel González Hernández yatniel@gmail.com Alien T orres Sobrino thebug2k5@yahoo.es

my $LDAP_PORT = "389". “apt-get install squid” Configuramos algunos aspecto básicos de Squid para que este escuchando por el puerto que deseamos y se este ejecutando correctamente.En esta Configuración vamos a asumir que usted tiene un Servidor con OpenLDAP funcionando así como Gosa configurado correctamente. si editamos dicho script podemos ver dentro en las primeras lineas algo como lo siguiente: my $LDAP_HOST = "ldap.pl). goQuotaView. goSquid. la Base de nuestro server LDAP y en algunos casos el puerto donde escucha nuestra server LDAP.pl".pl.$cache{TIMESTAMP}). hay que configurar dentro del script nuestro Server LDAP y nuestra BASE. Existe otro script que hace una lista de paginas censuradas y demás.pl”.pl Sirve para visualizar la quota de un usuario desde consola. .cfg.dc=cfg". my $LDAP_BASE = "ou=people. Para integrar el Proxy Squid con LDAP vamos a necesitar unos Scripts que vienen con Gosa. Vamos a tomar como ejemplo los datos que debemos po nerle al script goQuota. según lo que este en la BD creado por el script "goQuota. y que podemos encontrar en: /usr/share/doc/gosa/contrib/scrip ts/ Una breve descripción de cada Script: goAgent. este script consulta la BD creado por “goQuota. puede ser útil cuando estamos pensando en Samba donde si necesitaríamos los Home de los Usuarios.%m. quedando de la siguiente forma: #time2str("%d. goQuota.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. 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. pero no nos ha funcionado.) Crea Directorios Home de los usuarios que están en LDAP.pl (No es necesario para Squid. Lo primero. instalamos squid. usted puede ver la guía de Samba-OpenLDAP y Gosa. como nuestro server LDAP. Nota: En este script debemos comentar una linea. si este no es el caso.%Y %H:%M:%S".cu".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.x. Bastaría con ajustarlo a nuestro caso y listo. Cada uno de estos script necesitan ser editado y debemos ponerle algunos datos.

Este ObjectClass se le pone a un usuario si abrimos Gosa y editando al usuario vamos a la Pestaña “Conectividad” y marcamos “Cuenta Proxy”. ya sea el numero IP o un nombre DNS como este caso “ldap. -b la base de búsqueda que en nuestro caso seria “ou=people.")). -f este parámetro nos permite especificar un filtro. done deben cumplirse 2 condiciones.cfg. donde creamos una ACL externa con nombre “ldap_group” y con la diferencia que la Base de búsqueda es “ou=groups.pl Que lo que hace es consultar la BD de las Quotas credada por “goQuota. print_red(_("OpenGroupware: Missing database configuration for opengroupware.x.cfg.que tenga ese usuario el 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. .Como pueden ver todos los scripts están hechos en perl y vamos a necesitar instalar una biblioteca de perl para que funcionen correctamente.cu Aquí vemos algo bastante parecido a la linea para autentificar al usuario. Para autentificar a Squid contra LDAP usamos una linea como la siguiente: auth_param basic program /usr/lib/squid/ldap_auth -h ldap.cu -b ou=people.que el UID puesto en el campo usuario exista. -v3 es que usaremos la version 3 del Protocolo LDAP para conectarnos a nuestro server.pl” y cuando la quota este excedida nos lleva a una URL que debemos po ner dentro del script.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.inc Y Comentamos las siguientes lineas:(como es PHP con // al inicio de la linea resolvemos. Luego tenemos otra linea: redirect_program /etc/squid/gosa/goSquid.dc=cfg -v3 -f (&(uid=%s)(objectClass=gosaProxyAccount)) -h nos permite especificar el host de nuestro server ldap.")).cu”. 1. Can't perform any database queries.dc=cfg”.x. para quitar el molesto cartel de error editamos: /usr/share/gosa/plugins/personal/connectivity/class_opengwAccount. recibimos un error. 2.x.) print_red(_("]OpenGroupware: Your configuration is missing a postgresql extension. en debian es tan sencillo como: “apt-get install libnet-ldap-perl” Terminado estos pasos previos podemos pasar a la Configuración de SQUID. sobre OpenGroupWare. Can't get or set any informations.cfg. Nota: Cuando damos clic en la Pestaña “Conectividad”.dc=cfg -v3 -f "(&(objectClass=posixGroup)(cn=%g)(memberUid=%u))" -h 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.pl” cada poco tiempo. . mediante Gosa y hacer al usuario que queremos miembro de ese grupo.cfg. es el tiempo donde queremos que el usuario NO NAVEGUE.Quedaría algo como esto en nuestro squid: authenticate_ip_ttl 5 minutes auth_param basic children 5 auth_param basic realm Servidor Proxy Cienfuegos! auth_param basic program /usr/lib/squid/ldap_auth -h ldap.cfg.pl” se puede cambiar al lugar que deseemos.cu -b ou=people. 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 Donde “usuario_full” es el nombre de la ACL que estamos creando de Tipo External usando las reglas de “ldap_group”.x.pl redirect_children 5 El camino al script “goSquid. para ahorrarnos el trabajo de tener que ejecutarlo cada vez que cam biemos la quota de un usuario.dc=cfg -v3 -f (&(uid=%s)(objectClass=gosaProxyAccount)) external_acl_type ldap_group %LOGIN /usr/lib/squid/squid_ldap_group -R -b ou=groups. Y luego perfectamente podemos hacer en nuestro squid algo como esto: http_access allow usuario_full Y con esto los usuario que pertenecen al grupo user_full de LDAP tendrán navegación. osea el horario.pl” para que actualice la BD que crea en el sistema que es consultada por el Script “goSquid” para permitirnos el acceso si no excedimos la quota o no tenemos quota en absoluto. que debemos crear un grupo en LDAP.x. Nota1: Cuando creamos un usuario en LDAP que pertenece a un grupo y le activamos la casilla “Cuenta Proxy” que esta en la Pestaña “Conectividad”. De esta forma queda claro. (es conveniente poner una tarea en el Crontab que ejecute el script “goQuota. nosotros lo hemos puesto en /etc/squid/gosa/. debemos ejecutar el script “goQuota. y “user_full” es un grupo en LDAP.cu auth_param basic credentialsttl 5 minutes auth_param basic casesensitive on authenticate_cache_garbage_interval 1 hour redirect_program /etc/squid/gosa/goSquid.) Nota2: El tiempo de navegación que sale en Gosa.

Ultima Actualización 27 de Mayo del 2008 . debemos hacer algo como esto: acl no_autntifica src 192.1 redirector_access deny no_autentifica all http_access allow no_autentifica Lo que hacemos es decirle que las ACLs con determinados números IP o rangos de Red no pasen por el Redirector.10.168.Nota3: Si queremos dar acceso a un número de IP o varios números de IP. sin que se autentifique el usuario.

Sign up to vote on this title
UsefulNot useful