Autenticación en sistema Radius

Palabras clave: contraseña, password, clave, radius, freeradius, pam.

Servidor

El servidor Radius está ejecutándose en el host srv.lechuga.eu implementado con freeradius.

Añadir usuarios TODO: Ahora es PAP contra archivo users, redactar

en srv.lechuga.eu editar el fichero /etc/freeradius/3.0/users

La autenticación se hace contra la bbdd unix de usuarios

Crear un usuario nuevo básico para autenticación:

Lista de usuarios: RedLechuga.UsuariosyGrupos

# A ejecutar en srv.lechuga.eu, la contraseña que se ponga aquí es la que se usará para autenticar

adduser --shell /usr/sbin/nologin --no-create-home [usuario] --uid [uid usuario]
usermod --comment "Para autenticacion RADIUS" [usuario]

# Y lo añadimos al samba
smbpasswd -a [usuario]


# En los hosts donde se quiera tener el nombre de usuario, sin derecho a login:
adduser --disabled-login --no-create-home [usuario] --uid [uid]

Atención:
La parte después de un @ (p.ej @lechuga.eu) se ignora si ésta está como realm en el fichero /etc/freeradius/proxy.conf
Por ejemplo, hugo@lechuga.eu se autenticará como hugo en el fichero users

Cambiar claves TODO: Ahora es PAP contra archivo users, redactar

Al haber varios servicios que hay que tener sincronizados, se ha creado una utilidad llamada cambio_passwd.

Para añadir un usuario al grupo que puede cambiar passwords: usermod -a -G cambio_passwd [usuario]

Para ejecutar el programa: /usr/local/bin/cambio_passwd/cambio_passwd.sh

Configuración de la autenticación pam → radius en cliente

En el host cliente

  1. instalar el paquete apt-get install libpam-radius-auth
  2. crear un fichero /etc/pam.d/[nombre_de_aplicacion] Con las líneas:
    auth required pam_radius_auth.so
    account required pam_radius_auth.so
    y otras que se requieran.
  3. Ajustar el contenido del archivo vim /etc/pam_radius_auth.conf según el servidor radius
    srv.lechuga.eu:1812 ##contraseña host## 3

El el servidor radius

  1. añadir con vim /etc/freeradius/clients.conf los datos del host cliente (ip y secret)

Configuración de la autenticación saslauth → pam

Comando de pruebas

testsaslauthd -u [usuario_radius] -p [password_radius] -s [aplicacion_en_pam.d]

Pruebas radius

Probar la autenticación

radtest hugo@lechuga.eu [clave usuario] srv 10 [clave servidor]
  • El número 10 es arbitrario, pero necesario
  • Las claves de servidor se encuentran en /etc/freeradius/clients.conf del servidor Radius

Poner en forma de debug explícito

systemctl stop freeradius

# Ponemos freeradius en debug
freeradius -fX

# ... Ahora ejecutamos los procesos que queremos comprovar

# dejamos todo como estaba
systemctl start freeradius

Autenticación Apache2 contra Radius

Se realiza mediante a través de PAM, conectándose éste servicio a Radius.


# Instalamos los modules de Apache
apt-get install libapache2-mod-authnz-pam
apt-get install libpam-radius-auth

# Activamos el módulo
a2enmod authnz_pam
systemctl restart apache2

# Para que apache pueda acceder a la autenticación radius
chgrp www-data /etc/pam_radius_auth.conf
chmod g+r /etc/pam_radius_auth.conf

Los .htaccess deben tener el esquema:

AuthName "Clave de paso, con cuidadito"
Authtype Basic
AuthBasicProvider PAM
AuthPAMService html-srv-internet
require user hugo wikilechuga

# Esta directiva permite que los hosts locales pueda
# acceder sin contraseña
require ip 192.168.1