Si siguió nuestra guía de 2FA para VPN con RADIUS, ya tiene todo lo necesario para proteger algo más: el acceso al propio router. WinBox, WebFig, SSH y la API pueden autenticarse por RADIUS y, como el Notakey auth-proxy es RADIUS transparente, apuntar el servicio de login del router hacia él hace que cada acceso de administración necesite una aprobación en el teléfono, no solo una contraseña.
El flujo es idéntico al del caso de la VPN:
Router login ──RADIUS──▶ Notakey auth-proxy ──RADIUS──▶ your RADIUS server
│
└──▶ push notification ──▶ admin's phone
En el lado del router solo cambian tres cosas, que se detallan a continuación.
Requisitos
- Un auth-proxy en funcionamiento delante de un servidor RADIUS, configurado exactamente como en los pasos 1 a 3 de la guía de VPN. Sirve cualquier RADIUS de destino: FreeRADIUS, Microsoft NPS, el propio User Manager de MikroTik o el plugin RADIUS de Notakey.
- El nombre de usuario del administrador presente en el servidor RADIUS de destino y en el servicio de Notakey, con un teléfono registrado: el proxy dirige la push por nombre de usuario.
Paso 1: decida qué mensaje push ven los administradores
El proxy envía el mensaje que tiene en su propia configuración: los mismos
message_title / message_description que se usan para los accesos por VPN.
Tiene dos opciones:
- Reutilizar el proxy de la VPN tal cual. Es lo más rápido. Los accesos de administración mostrarán en el teléfono el texto de la VPN (por ejemplo, «VPN authentication — allow john login?»). Perfectamente válido para una instalación pequeña.
- Ejecutar una segunda instancia del proxy con su propia aplicación de
Notakey y un mensaje del tipo «Router admin login as {0}?». Con el proxy en
contenedor esto no es más que un segundo contenedor a la escucha en otro
puerto (por ejemplo
18120), con unNOTAKEY_ACCESS_IDdistinto; el proxy integrado del appliance es una instancia única, así que el segundo se ejecuta como contenedor junto a él.
Un mensaje dedicado bien vale los cinco minutos: un administrador que ve «Router admin login» mientras no está accediendo a ningún router sabe al instante que algo va mal, y lo rechaza.
Paso 2: añada el proxy como servidor RADIUS de login
En el router, añada el proxy como servidor RADIUS para el servicio login:
/radius
add service=login address=<proxy-address> secret=secret_to_radius_server timeout=30s
Esta es la línea /radius de la guía de VPN con service=ppp sustituido por
service=login, y se aplica la misma advertencia: el tiempo de espera RADIUS
por defecto de MikroTik es de 300 milisegundos. Una persona que aprueba una
push necesita al menos 30 segundos, así que timeout=30s no es opcional. Sin
él, cada acceso falla antes incluso de que vibre el teléfono.
Paso 3: active RADIUS para los usuarios del router
/user aaa
set use-radius=yes default-group=full
Eso es todo: RouterOS consulta ahora a RADIUS (a través del proxy) para
cualquier acceso cuyo nombre de usuario no figure en la base de datos local
/user.
Aquí hay dos cosas que conviene acertar:
Elija default-group con criterio. Los usuarios autenticados por RADIUS
reciben los privilegios de este grupo —read, write o full— salvo que su
servidor RADIUS devuelva por usuario un atributo de fabricante Mikrotik-Group
(ID de fabricante 14988). Si todos los que entran por RADIUS son administradores
plenos, default-group=full está bien; si no, asígnele el menor privilegio que
funcione y devuelva Mikrotik-Group desde RADIUS para las excepciones.
Conserve una cuenta de administrador local. RouterOS consulta primero la
base de datos local de usuarios y solo pregunta a RADIUS por los nombres que no
conoce. Esa cuenta de administrador local es su respaldo si alguna vez el proxy,
el servidor RADIUS o el servicio de Notakey quedan inaccesibles; sin ella, una
caída lo deja fuera de su propio router. Asígnele una contraseña única y
robusta, y valore restringirla a una dirección de gestión con
/user set <name> address=<mgmt-subnet>.
Pruébelo, con cuidado
No cierre todavía su sesión actual. Abra una segunda sesión de WinBox o SSH e inicie sesión con un nombre de usuario de RADIUS:
- El diálogo de inicio de sesión se queda a la espera: es el proxy manteniendo abierto el intercambio.
- La push llega al teléfono. Apruebe → está dentro, con los privilegios del grupo. Rechace o ignore → el inicio de sesión falla al agotarse el tiempo de espera.
- Confirme que el administrador local sigue entrando de la forma habitual.
Solo después de que ambas comprobaciones pasen, cierre la sesión original.
Si los accesos fallan al instante aunque la push llegue, vuelva a comprobar
timeout=30s en /radius: el valor por defecto de 300 ms es el error más
frecuente. Si no llega ninguna push, casi con seguridad el nombre de usuario
difiere entre RADIUS y el servicio de Notakey.
Dónde encaja esto
Un solo proxy, un solo servidor RADIUS, y ahora tanto la VPN como el plano de administración del router exigen una aprobación en el teléfono. El mismo patrón se extiende a cualquier otra cosa que hable RADIUS.
Guías relacionadas
- 2FA para VPN con RADIUS: la configuración completa del auth-proxy: la configuración del proxy sobre la que se apoya esta guía
- 2FA en SSH de Linux con pam_radius: el mismo proxy protegiendo SSH, sudo y su
- 2FA para VPN de MikroTik: la configuración completa basada en scripts: una alternativa sin RADIUS para la propia VPN