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
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
- instalar el paquete apt-get install libpam-radius-auth
- crear un fichero /etc/pam.d/[nombre_de_aplicacion] Con las líneas:
auth required pam_radius_auth.soaccount required pam_radius_auth.so
y otras que se requieran. - 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
- añadir con
vim /etc/freeradius/clients.conflos datos del host cliente (ip y secret)
Configuración de la autenticación saslauth → pam
Comando de pruebas
Pruebas radius
Probar la autenticación
- El número 10 es arbitrario, pero necesario
- Las claves de servidor se encuentran en
/etc/freeradius/clients.confdel servidor Radius
Poner en forma de debug explícito
# 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:
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