¿Posible? El servidor OpenVPN requiere un inicio de sesión basado en certificado y contraseña (a través del firmware del enrutador Tomato)

8

He estado utilizando la compilación de tomate de Shibby (versión NVRAM de 64k) en mi enrutador Asus N66U para ejecutar un servidor OpenVPN.

Tengo curiosidad por saber si es posible configurar este servidor OpenVPN para requerir un certificado Y un nombre de usuario / contraseña antes de que un usuario tenga acceso.

Noté que hay una entrada de "contraseña de desafío" al completar los detalles del certificado, pero todos dicen que la deje en blanco "o bien"; No tengo idea de por qué, y no puedo encontrar una explicación. Además, he solucionado este problema con Google y he notado que hay personas que hablan sobre un módulo PAM para OpenVPN para autenticarse a través de nombre de usuario / contraseña, pero eso parecía ser una opción u otra; en otras palabras, puedo forzar la autenticación mediante nombre de usuario / contraseña O certificado. Quiero exigir ambos.

es posible? ¿Si es así, cómo?

Eric
fuente

Respuestas:

4

La función de OpenVPN que estás buscando, lo que permitirá al servidor para autenticar clientes en base a tanto su certificado y una credencial, es auth-user-pass-verify. Esta característica permite que el servidor pase el nombre de usuario / contraseña proporcionado por el usuario remoto a un script que realiza la autenticación. En ese momento, puede validar las credenciales contra lo que desee: PAM, RADIUS, LDAP, señales de humo, etc.

No sé nada acerca de los firmwares "Tomate", así que ni siquiera voy a intentar darte un paso a paso aquí. Hice una búsqueda rápida y sospecho que podría usar la opción "Configuración personalizada" de OpenVPN para incluir una auth-user-pass-verifyreferencia. Necesitará un script para realizar la autenticación.

Realice una búsqueda y sospecho que encontrará referencias específicas de "Tomate".

Evan Anderson
fuente
2

La contraseña de desafío es una frase de contraseña utilizada para permitir el descifrado de la clave. Esa es la única forma en que realmente puede hacer una "contraseña" y una clave.

Realmente solo puede verificar por contraseña o clave, no ambas. Si tiene ambos métodos habilitados, primero intentará la autenticación de clave, y si eso falla, recurrirá a la autenticación de contraseña.

No tener una frase de contraseña en una clave hace que sea más fácil para alguien imitar su identidad si logran obtener la clave.

Sugeriría averiguar por qué interwebz dice que no debe usar frases de contraseña en las teclas y ver si realmente es un problema.

tacotuesday
fuente
Sí, eso es lo que he tenido problemas para responder. Esperemos que alguien más pueda iluminarnos a ese respecto; Parece una sugerencia contraintuitiva.
Eric
Mientras tanto, ¿hay una manera cuantificable de comparar la solidez de un certificado + requisito con solo un combo de nombre de usuario / contraseña? Asumo órdenes de magnitud más difíciles de descifrar, pero eso es solo una suposición basada en mi conocimiento circunstancial.
Eric
Esta es una respuesta antigua pero ... Eso no es lo que la contraseña de desafío es y hace. Puede usar una frase de contraseña para proteger una clave, como se describió anteriormente, pero la contraseña de desafío no está relacionada. No se almacena ni en el certificado ni en la clave, sino que se guarda con la CA. Está destinado a usarse cuando se usa la CA para revocar la clave o emitir un reemplazo.
Jack B
2

auth-user-pass-verificar es lo correcto. Además, puede forzar que el nombre de usuario de auth-user tenga que ser el CN ​​certificado. También puede forzar a openvpn a hacer una sola conexión cada certificado a la vez.

De esa manera, un "imitador" debe tener el usuario correcto en comparación con el certificado CN y el pase correcto y debe iniciar sesión en un momento en que el propietario real

Además, puede pensar en un IDS, según el que elija puede incluso reducirlo como rangos de IP externos permitidos, tiempos de inicio de sesión, etc.

Cualquier certificado expuesto debe ser revocado de inmediato. El servidor de firma debe estar fuera de la red (clave de transferencia por usb), entonces usted tiene un acceso seguro muy estricto.

y no, no debes usar una contraseña

  1. Fácil de fuerza bruta.
  2. No puede bloquear a un usuario (el pase de certificación solo está fuera de línea).
  3. Las personas pierden sus contraseñas todo el tiempo obligándote a revocar y recrear un certificado cada vez, lo que supone un gran riesgo de tener muchos certificados allí donde quizás a veces olvides la revocación.

Pero si realmente lo desea, puede usar auth-user y cert password al mismo tiempo, no habrá respaldo ni nada.

Primero, openvpn usará la contraseña del certificado para descifrar la clave privada para establecer una conexión, luego el usuario de autenticación iniciará la sesión en los servidores, si las credenciales son incorrectas, usted está fuera.

Sin embargo, si un atacante obtiene las credenciales habituales, ya está en problemas y es muy probable que también obtenga la contraseña del certificado.

Así que no veo un beneficio real aquí, solo muchas desventajas y un sentimiento erróneo de más seguridad.

lo que sea
fuente
0

Seguí este tutorial (con TomatoUSB Shibby 1.28 en mi Asus N66U): http://www.dd-wrt.com/wiki/index.php/OpenVPN Esto puede ayudarte mucho.

AndyZ
fuente
2
AndyZ: bienvenido a SF, pero aquí nos gustan las respuestas que contienen más sustancia que solo un enlace (que puede pudrirse con la edad). Si puede revisar esta respuesta para contener las partes importantes del método que ha seguido, así como el enlace al artículo, podría ser una muy buena respuesta.
MadHatter