Hola, quiero compartir mi experiencia con LinOTP y dar un ejemplo de autenticación fuerte usando LinOTP + FreeRADIUS y Wallix Bastion.
LinOTP es una plataforma de código abierto flexible de nivel empresarial para una autenticación sólida.
Wallix Bastion es una solución de gestión de acceso privilegiado (PAM).
Habré ya tiene algunos artículos sobre LinOTP - 1 , 2 . Aquí usamos nuevas versiones de SO y productos, y también revisamos la configuración de principio a fin, vamos.
Que usamos:
LinOTP 2.12.3
Debian 10 ( también compatible )
FreeRADIUS 3
Bastión de Wallix 8
Agregue el repositorio linotp.org:
1. Instalación de LinOTP
Agregue el repositorio linotp.org:
echo 'deb http://www.linotp.org/apt/debian buster linotp linotp-deps' > /etc/apt/sources.list.d/linotp.list
Para verificar el paquete, importe la clave de firma del paquete:
apt-get install dirmngr
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 913DFF12F86258E5
Instale la base de datos ( bases de datos compatibles ):
apt-get update
apt-get install mariadb-server
mysql_secure_installation
Finalmente, instale LinOTP:
apt-get install linotp
2. Integración con Active Directory
Puede comunicarse con el administrador web de LinOTP siguiendo el enlace: https: // <linotp_ip> / manage
Vaya a LinotpConfig -> UserIdResolvers y cree un nuevo UserIdResolver, eligiendo el tipo de LDAP :
Ahora debe agregar un dominio: asígnele un nombre y especifique el solucionador LDAP que acaba de crear.
UserIdResolver- «», LinOTP. Realm-e UserIdResolver- (multitenancy, ).
User View.
3. LinOTP FreeRADIUS
FreeRADIUS :
apt-get install linotp-adminclient-cli python-ldap freeradius python-passlib python-bcrypt git libio-all-lwp-perl libconfig-file-perl libtry-tiny-perl
freeradius:
ln -s /etc/freeradius/3.0/sites-available /etc/freeradius/sites-available
ln -s /etc/freeradius/3.0/sites-enabled /etc/freeradius/sites-enabled
ln -s /etc/freeradius/3.0/clients.conf /etc/freeradius/clients.conf
ln -s /etc/freeradius/3.0/users /etc/freeradius/users
linotp-auth-freeradius-perl:
git clone https://github.com/LinOTP/linotp-auth-freeradius-perl.git
cd linotp-auth-freeradius-perl/
cp radius_linotp.pm /usr/share/linotp/radius_linotp.pm
:
nano /etc/freeradius/sites-enabled/linotp
server linotp {
listen {
ipaddr = *
port = 1812
type = auth
}
listen {
ipaddr = *
port = 1813
type = acct
}
authorize {
preprocess
update {
&control:Auth-Type := Perl
}
}
authenticate {
Auth-Type Perl {
perl
}
}
accounting {
unix
}
}
sites-enabled linotp:
ls /etc/freeradius/sites-enabled
linotp
RADIUS-. Wallix Bastion:
nano /etc/freeradius/clients.conf
client Wallix { ipaddr = 192.168.10.10 secret = your_secret }
perl :
nano /etc/freeradius/users
DEFAULT Auth-type := perl
nano /etc/freeradius/3.0/mods-available/perl
perl { filename = /usr/share/linotp/radius_linotp.pm func_authenticate = authenticate func_authorize = authorize }
mods-enabled eap:
ln -s /etc/freeradius/3.0/mods-available/perl /etc/freeradius/3.0/mods-enabled/perl
rm /etc/freeradius/3.0/mods-enabled/eap
, Radius:
nano /etc/linotp2/rlm_perl.ini
URL=https://<Linotp_ip>/validate/simplecheck REALM=realm1 RESCONF=resolver1 Debug=True SSL_CHECK=False
4.
. LinOTP selfservice , .
LinOTPConfig > policies . TOTP, Google Authenticator, :
URL : https://<LINOTP_ip> https://<LINOTP_ip> /selfservice/login
5. Wallix Bastion
Wallix Bastion , -, .
Configuration> External authentication - RADIUS. Secret , freeRADIUS.
LDAP/AD domains ( , ) , LinOTP. Secondary authentication linotp . :
Wallix Bastion , LinOTP.
6. Troubleshoot.
Si algo no funciona, puede buscar errores:
Registros RADIUS:
/var/log/freeradius/radius.log
Registros de LinOTP:
/var/log/linotp/linotp.log
Puede verificar el token de la siguiente manera:
https://<yourlinotpserver>/validate/check?user=<login>&pass=<OTPvalue>
En lugar de salida
En este artículo, configuramos una plataforma local para el segundo factor de autenticación: LinOTP y la atornillamos a la solución Wallix Bastion con FreeRADIUS como conector.
Mi artículo está en inglés. - medio
Gracias por tu tiempo, espero que la información te haya sido útil.