Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2007 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.
Es muy útil el poder establecer un sistema de autenticación para poder acceder hacia Internet, pues esto permite controlar quienes si y quienes no accederán a Internet sin importar desde que máquina de la red local lo hagan. Sera de modo tal que tendremos un doble control, primero por dirección IP y segundo por nombre de usuario y clave de acceso.
Este manual considera que usted ya ha leído previamente, a detalle y en su totalidad el manual "Como configurar Squid: Servidor Proxy" y que ha configurado exitosamente Squid como servidor proxy.
Para poder llevar la cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitará tener instalado al menos lo siguiente:
Este manual considera poder autenticar a través de un fichero de texto simple con claves de acceso creadas con htpasswd o bien a través de un servidor LDAP, lo cual constituye una solución más robusta.
Considerando que se ha configurado exitosamente OpenLDAP como servidor de autenticación, solo se necesita definir el directorio (o subdirectorio) y el servidor LDAP a utilizar.
La sintaxis utilizada para squid_ldap_auth es la siguiente:
squid_ldap_auth -b "Directorio-o-DN-a-utilizar" servidor-ldap-a-utilizar |
Ejemplo:
squid_ldap_auth -b "cn=people,dc=su-dominio,dc=com" 127.0.0.1 |
Se debe editar el fichero /etc/squid.conf y se especificar el programa de autenticación se utilizará. Localice la sección que corresponde a la etiqueta auth_param basic program. Por defecto no está especificado programa alguno. Considerando que squid_ldap_auth se localiza en /usr/lib/squid/ncsa_auth, procederemos a añadir el siguiente parámetro:
auth_param basic program /usr/lib/squid/squid_ldap_auth -b "cn=people,dc=su-dominio,dc=com" 127.0.0.1
|
Lo anterior conecta al directorio dc=su-red-local,dc=com en el servidor LDAP en 127.0.0.1.
Squid puede utilizar el módulo ncsa_auth, de la NCSA (National Center for Supercomputing Applications), y que ya viene incluido como parte del paquete principal de Squid en la mayoría de las distribuciones actuales. Este módulo provee una autenticación muy sencilla a través de un fichero de texto simple cuyas claves de acceso fueron creadas con htpasswd.
Se requerirá la creación previa de un fichero que contendrá los nombres de usuarios y sus correspondientes claves de acceso (cifradas). El fichero puede localizarse en cualquier lugar del sistema, con la única condición que sea asequible para el usuario squid.
Debe procederse a crear un fichero /etc/squid/claves:
touch /etc/squid/claves |
Salvo que vaya a utilizarse un guión a través del servidor web para administrar las claves de acceso, como medida de seguridad, este fichero debe hacerse leíble y escribible solo para el usuario squid:
chmod 600 /etc/squid/claves chown squid:squid /etc/squid/claves |
A continuación deberemos dar de alta las cuentas que sean necesarias, utilizando el mandato htpasswd -mismo que viene incluido en el paquete httpd-2.0.x-. Ejemplo:
htpasswd /etc/squid/claves joseperez |
Lo anterior solicitará teclear una nueva clave de acceso para el usuario joseperez y confirmar tecleando ésta de nuevo. Repita con el resto de las cuentas que requiera dar de alta.
Todas las cuentas que se den de alta de este modo son independientes a las ya existentes en el sistema. Al dar de alta una cuenta o cambiar una clave de acceso lo estará haciendo EXCLUSIVAMENTE para el acceso al servidor Proxy. Las cuentas son independientes a las que se tengan existentes en el sistema como serían shell, correo y Samba.
Lo siguiente será especificar que programa de autenticación se utilizará. Localice la sección que corresponde a la etiqueta auth_param basic program. Por defecto no está especificado programa alguno. Considerando que ncsa_auth se localiza en /usr/lib/squid/ncsa_auth, procederemos a añadir el siguiente parámetro:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/claves |
/usr/lib/squid/ncsa_auth corresponde a la localización de el programa para autenticar y /etc/squid/claves al fichero que contiene las cuentas y sus claves de acceso.
El siguiente paso corresponde a la definición de una Lista de Control de Acceso. Especificaremos una denominada passwd la cual se configurará para utilizar obligatoriamente la autenticación para poder acceder a Squid. Debe localizarse la sección de Listas de Control de Acceso y añadirse la siguiente línea:
acl password proxy_auth REQUIRED |
Habiendo hecho lo anterior, deberemos tener en la sección de Listas de Control de Acceso algo como lo siguiente:
# # Recommended minimum configuration: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl redlocal src 192.168.1.0/255.255.255.0 acl password proxy_auth REQUIRED |
Procedemos entonces a modificar la regla de control de accesos que ya teníamos para permitir el acceso a Internet. Donde antes teníamos lo siguiente:
http_access allow redlocal |
Le añadimos passwd, la definición de la Lista de Control de Acceso que requiere utilizar clave de acceso, a nuestra regla actual, de modo que quede como mostramos a continuación:
http_access allow redlocal password |
Habiendo hecho lo anterior, la zona de reglas de control de acceso debería quedar más o menos de este modo:
# # INSERT YOUR OWN RULE(S) HERE TO allow ACCESS FROM YOUR CLIENTS # http_access allow localhost http_access allow redlocal password http_access deny all |
Finalmente, solo bastará reiniciar Squid para que tomen efecto los cambios y podamos hacer pruebas.
service squid restart |
Alcance Libre
http://www.alcancelibre.org/staticpages/index.php/19-1-como-squid-autenticacion