viernes, 26 de febrero de 2010

Configurando Squid para Acceso por Autenticación (3/3)

Bueno, ya esta es la última entrega de la trilogía de la que hable anteriormente sobre la configuración de un Servidor Proxy  con Squid en Linux!

Introducción.

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 "Servidor proxy con Squid" y que ha configurado exitosamente Squid como servidor proxy.


Software requerido.

Para poder llevar la cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitará tener instalado al menos lo siguiente:
  • squid-2.5.STABLE3
  • httpd-2.0.x (Apache) (opcional)
  • openldap-servers-2.2.x (opcional)

Eligiendo el módulo de autenticación.

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.
Autenticación a través del módulo LDAP.
Considerando que se ha configurado exitosamente Cómo configurar OpenLDAP como servidor de autenticación, solo basta 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


Parámetros en /etc/squid/squid.conf


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.


Autenticación a través del módulo NCSA


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.


Creación del fichero de claves de acceso.


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.


Parámetros en /etc/squid/squid.conf


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.


Listas y reglas de control 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:


Listas de Control de Accesos: autenticación.


#
# 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:


Reglas de control de acceso: Acceso por clave de acceso.


#
# 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


Finalizando procedimiento.


Finalmente, solo bastará reiniciar Squid para que tomen efecto los cambios y podamos hacer pruebas.


service squid restart


Fuente: http://www.linuxparatodos.net/portal/staticpages/index.php?page=19-1-como-squid-autenticacion


Autor: Joel Barrios Dueñas


Correo electrónico: jbarrios arroba linuxparatodos punto net Sitio de Red: http://www.linuxparatodos.net/


Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1



© 1999-2006 Linux Para Todos. Algunos Derechos Reservados 2007 Factor Evolución SA de CV. 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. 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.






No hay comentarios.:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...