Sondeo

Escritorios alternativos Linux

¿Cuál prefieres?

  •  Xfce
  •  LXDE
  •  Razor-qt
  •  Enlightenment 0.17

Resultados
Other polls | 4,115 voters | 2 comentarios
· Próximas fechas Curso Global de Servidores con CentOS 6.
· Taller de programación de Python.
· Curso de programación de PHP.
· Prueba ALDOS 1.4.5. Nuestro sistema operativo para escritorio.

Configuración de Squid: Acceso por Autenticación.

Autor:dark Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2013 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.

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 contraseña.

Este documento considera que se ha leído previamente, a detalle y en su totalidad el documento titulado «Configuración de Squid: Servidor Proxy,» y que ha configurado exitosamente Squid como servidor proxy.

Equipamiento lógico necesario.

Para poder llevar la cabo los procedimientos descritos en este manual y documentos relacionados, se 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 archivo de texto simple con contraseñas creadas con htpasswd o bien a través de un servidor LDAP (una solución más robusta).

Autenticación a través del módulo LDAP.

Considerando que se ha configurado exitosamente OpenLDAP como servidor de autenticación, sólo 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-a-utilizar" servidor-ldap-a-utilizar

Ejemplo:

squid_ldap_auth -b "ou=People,dc=dominio,dc=tld" 127.0.0.1

Edite el archivo /etc/squid/squid.conf:

vim /etc/squid/squid.conf

Añada la siguiente configuración, misma que considera que squid_ldap_auth se localiza en /usr/lib/squid/ncsa_auth:

auth_param basic program /usr/lib/squid/squid_ldap_auth -b  "ou=People,dc=dominio,dc=tld" 127.0.0.1

Lo anterior conecta al directorio dc=su-red-local,dc=tld 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 archivo de texto simple cuyas contraseñas fueron creadas con htpasswd.

Creación del archivo de contraseñas.

Se requerirá la creación previa de un archivo que contendrá los nombres de usuarios y sus correspondientes contraseñas (cifradas). El archivo puede localizarse en cualquier lugar del sistema, con la única condición que sea asequible para el usuario squid.

Debe procederse a crear un archivo /etc/squid/claves:

touch /etc/squid/claves

Salvo que vaya a utilizarse un guión a través del servidor web para administrar las contraseñas, como medida de seguridad, este archivo debe tener atributos de lectura y escritura sólo 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 contraseña 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 contraseña 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.

Edite el archivo /etc/squid/squid.conf:

vim /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. De modo predeterminado esta opción viene desactivada y carece de valores. Considerando que ncsa_auth se localiza en /usr/lib/squid/ncsa_auth, se a añade lo siguiente:

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 especificando como argumento el archivo/etc/squid/claves, el cual corresponde al que contiene los nombres de usuario y sus respectivas contraseñas.

Listas y reglas de control de acceso.

se debe especificar una lista de control de acceso denominada passwd la cual se configurará para utilizar de modo obligatorio 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, debe haber algo similar a lo siguiente en la sección de Listas de Control de Acceso:

#
# Recommended minimum configuration:
acl all src 0.0.0.0/0
acl manager proto cache_object
acl localhost src 127.0.0.1/8

acl localnet src 192.168.1.0/24
acl password proxy_auth REQUIRED

Se procede entonces a modificar la regla de control de accesos que ya se tenía para permitir el acceso a Internet. Donde antes estaba lo siguiente:

http_access allow localnet

Se añade passwd, la definición de la Lista de Control de Acceso que requiere utilizar contraseña a la regla actual, de modo que quede como se muestra a continuación:

http_access allow localnet password

Habiendo hecho lo anterior, la zona de reglas de control de acceso debería quedar del siguiente modo:

#
# INSERT YOUR OWN RULE(S) HERE TO allow ACCESS FROM YOUR CLIENTS
#
http_access allow localhost
http_access allow localnet password

http_access deny all

Finalizando procedimiento.

Finalmente, sólo bastará recargar la configuración de Squid para que tomen efecto los cambios y se puedan realizar pruebas.

service squid reload

Última Edición: 29/03/2013, 11:50|Hits: 68,646 Ver la versión para imprimir