10 métodos alternativos para gestión de autenticación en servidores Apache

Buenas,

Siempre he pensado que la seguridad hay que desplegarla de manera proporcionada. En el caso de servidores domésticos, gestionar el acceso de los usuarios a los contenidos puede hacerse de muchas maneras. En un entorno controlado y no expueto no hace falta implementar medidas de seguridad extremas, ya que si a fin de cuentas los que accedemos somos nosotros y algún que otro invitado eventual, no es justificable disponer de las mismas medidas que tendría un servidor expuesto a tráfico anónimo.

Algunas de estas maneras alternativas pueden merecer la pena, porque son sencillas y porporcionan suficiente seguridad para el propósito perseguido. Veamos algunas de ellas, de entre las muchas soluciones que el mundo del código abierto nos proporciona.

1. mod_auth_MAC

Este módulo de servidor Apache proporciona un medio de autenticación basada en la MAC del equipo que pretende obtener acceso. Si posees esa MAC, estás dentro. Si no, no ves nada. Por desgracia, este método puede ser anulado mediante MAC spoofing, con lo que quizás solo sea recomendable aplicarlo como complemento a otro método de autenticación.

2. mod_auth_samba

Es un módulo discontinuado y con cierta solera, pero sigue funcionando tan bien como cuando vió la luz. Mediante mod_auth_samba, dotaremos al servidor Web de autenticación contra servidores Samba. Así, la visualización de los contenidos del servidor requieren autenticación exitosa contra el servidor smb.

3. mod_auth_openpgp

Este módulo dota al servidor de autenticación basada en clave pública. Es un poco más intrincado, pero efectivo. En líneas generales, podríamos plantear este módulo en un escenario donde exista un formulario de autenticación (usuario y contraseña) y donde además se validen firmas criptográficas: es decir, no vale sólo con enviar un usuario y contraseña válida, sino que además, la petición tiene que ir firmada. Mediante extensiones como Enigform, podemos dotar al navegador de enviar peticiones GET y POST firmadas, que son validadas por el servidor Apache mediante mod_auth_openpgp. Si el login es correcto, y el servidor comprueba que la petición está firmada adecuadamente, se gana acceso a los contenidos.

4. mod_auth_ldap

Similar al módulo de autenticación vía Samba, pero en este caso, Apache se apoya en LDAP para autenticar a los usuarios.

5. mod_authn_pop3

Útil si en la máquina sólo coexisten servidor POP3 y servidor Web. En este caso, se requiere autenticación que es gestionada por el servidor de correo entrante.

mod_authn_pop3 se distribuye junto a otros módulos de autenticación para Apache: mod_authn_cache (cachea información de autenticación de otros módulos en memoria compartida para mejorar el rendimiento), mod_authn_dbi (emplea libdbi para proporcionar autenticación contra base de datos), mod_authn_mysql (emplea libmysqlclient para proporcionar autenticación basada en base de datos), mod_authn_pam (autenticación mediante PAM) y mod_authn_pgsql (autenticación dinámica con base de datos Postgres)

6. mod_auth_digest

En este caso, la autenticación se basa en someter a los usuarios y contraseñas a cifrado mediante sumas de control MD5. Por sí mismo no es un modo de autenticación, pero sí puede resultar interesante para no conservar, empleando otros métodos, almacenamiento en claro de contraseñas.

7. mod_auth_radius

Mediante este módulo podemos basar la autenticación del servidor en RADIUS. Aunque RADIUS no es muy popular en el usuario final, hay muchos dispositivos que permiten autenticación mediante este conocido protocolo. Es el caso de los routers ADSL, muchos de los cuales la permiten para autenticar WiFi.

8. mod_auth_shadow

Este método emplea el fichero de claves de /etc/passwd (o equivalentes) de los sistemas derivados de UNIX para autenticar a los usuarios del servidor Web.

9. mod_auth_tacacs

A TACACS (Terminal Access Controller Access Control System) le pasa algo similar que a RADIUS: no goza del beneplácito del amplio espectro de usuarios, ni tan siquiera administradores de sistema. Pero con este módulo, Apache puede basar su autenticación en este particular protocolo de autenticación.

10. mod_auth_remedy

Otro caso más de modalidad de autenticación poco usual, pero que sí merece una cita. En este caso, la autenticación se basa en el empleo de Remedy Action Request System (ARS). Es un módulo sólo orientado a gente con ganas de curiosear (y mucho), intrincado y muy dependiente de la instalación de determinados componentes en el sistema. Lo dicho, para jugar :)

Un saludo,

6 comentarios sobre “10 métodos alternativos para gestión de autenticación en servidores Apache

  1. Ostia, el tipico TACACS xD

    Muchos no los conocía, aunque en muchos escenarios no sean viables o por el mero hecho de no estar continuados sea una locura desplegarlos.

  2. Hola, he echado a faltar autenticación por medio de certificados, ¿no lo has tenido en cuenta por alguna razón?, creo que es una buena técnica de autenticación de usuarios para areas corporativas de una web.

    Te dejo un enlace por si estas interesado:
    http://www.garex.net/apache/
    Un saludo

  3. Gura,

    No te metas con el TACACS, que sigue dando guerra :P

    Pollox,

    Pues mira, si no lo he citado es porque no lo conocía. Gracias por compartirlo con nosotros, tiene una pinta muy buena ;)

    Saludos para los dos,

  4. Respecto de mod_openpgp y Enigform, la proxima version trae unas mejoras bastante interesantes (creo!):

    Administracion de Sesiones basada en OpenPGP (OpenPGP Session Management).

    El navegador envia una solicitud de inicio de sesion al server (sin poner ni usuario ni clave, pero firmada con su llave publica openpgp). El server responde con un hash de sesion encriptado con pgp hacia ese usuario. Ese hash se anexa a cada request, que tambien es firmado. Con esto, el server puede determinar: 1) validez de la sesion, 2) validez de la firma digital del request y aceptar o rechazar acordemente :)

Comentarios cerrados.