Possibile? Server OpenVPN che richiede un accesso basato su certificato e password (tramite firmware del router Tomato)


8

Ho usato la build di Tomato (versione 64k NVRAM) di Shibby sul mio router Asus N66U per eseguire un server OpenVPN.

Sono curioso se è possibile configurare il server OpenVPN per richiedere sia un certificato E un nome utente / password prima che un utente è consentito l'accesso.

Ho notato che c'è una voce "challenge password" durante la compilazione dei dettagli del certificato, ma tutti dicono di lasciarlo vuoto "oppure"; Non ho idea del perché e non riesco a trovare una spiegazione. Inoltre, Google ha risolto un sacco questo problema e ho notato persone che parlavano di un modulo PAM per OpenVPN al fine di autenticarsi tramite nome utente / password, ma sembrava essere una o / o un'opzione; in altre parole, posso forzare l'autenticazione tramite nome utente / password o certificato. Voglio richiedere entrambi.

È possibile? Se é cosi, come?

Risposte:


4

La funzionalità OpenVPN che stai cercando, che consentirà al server di autenticare i client in base sia al loro certificato che a una credenziale, lo è auth-user-pass-verify. Questa funzione consente al server di passare il nome utente / la password forniti dall'utente remoto a uno script che esegue l'autenticazione. A quel punto puoi convalidare le credenziali contro tutto ciò che vuoi: PAM, RADIUS, LDAP, segnali di fumo, ecc.

Non so nulla dei firmware "Pomodoro", quindi non proverò nemmeno a darti un passaggio dettagliato qui. Ho fatto alcune ricerche rapide e sospetto che potresti usare l'opzione "Configurazione personalizzata" di OpenVPN per includere un auth-user-pass-verifyriferimento. Avrai bisogno di uno script per eseguire l'autenticazione.

Fai qualche ricerca e sospetto che troverai riferimenti specifici a "Pomodoro".


2

La password di verifica è una passphrase utilizzata per consentire la decrittografia della chiave. Questo è l'unico modo in cui puoi davvero fare una "password" e una chiave.

Puoi davvero verificare solo con password o chiave, non entrambi. Se hai abilitato entrambi i metodi, proverà prima l'autenticazione con chiave e, in caso contrario, tornerà all'autenticazione con password.

Non avere una passphrase su una chiave rende più facile per qualcuno imitare la tua identità se capita di ottenere una chiave.

Suggerirei di scoprire perché l'interwebz dice che non dovresti usare passphrase sui tasti e vedere se in realtà è un problema.


Ya è quello che ho avuto problemi a rispondere. Speriamo che qualcun altro possa illuminarci a tale riguardo; sembra un suggerimento controintuitivo.
Eric

Nel frattempo, esiste un modo quantificabile per confrontare la forza di un certificato + requisito con solo una combinazione nome utente / password? Sto assumendo ordini di grandezza più difficili da decifrare, ma questo è solo un presupposto basato sulla mia conoscenza circostanziale.
Eric

Questa è una vecchia risposta ma ... Non è questa la password della sfida. È possibile utilizzare una passphrase per proteggere una chiave, come descritto sopra, ma la password di verifica è qualcosa di non correlato. Non è memorizzato né nel certificato né nella chiave, ma è conservato con la CA. È destinato all'uso quando si utilizza la CA per revocare la chiave o emettere una sostituzione.
Jack B,

2

auth-user-pass-confirm è la cosa giusta da fare. Inoltre puoi forzare il nome utente auth-user come CN certificato, puoi anche forzare openvpn a stabilire una sola connessione alla volta.

In questo modo un "imitatore" deve avere l'utente giusto rispetto alla CN certc e al passaggio corretto e deve accedere alla volta che il vero proprietario non ha

Inoltre, potresti pensare a un IDS, a seconda di quale scegli puoi anche restringerlo lì come intervalli di ip esterni consentiti, tempi di accesso e così via.

Qualsiasi certificato esposto deve essere revocato immediatamente. Il server di firma dovrebbe essere fuori rete - chiave di trasferimento tramite USB - quindi hai un accesso sicuro e sicuro.

e no non dovresti password un certificato.

  1. Facile da potenziare.
  2. Non è possibile bloccare un utente (cert pass è solo offline).
  3. Le persone perdono le loro password continuamente costringendoti a revocare e ricreare un certificato ogni volta - grande rischio di avere un sacco di certificati là fuori dove forse a volte dimentichi la revoca.

Ma se vuoi davvero puoi usare auth-user e cert password allo stesso tempo non ci sarà fallback o qualcosa del genere.

In primo luogo openvpn userà la password cert per decrittografare la chiave privata per stabilire una connessione - quindi auth-user entra in serveridly - se le credenziali sono sbagliate sei fuori.

Tuttavia, se un utente malintenzionato ottiene le credenziali regolari, sei già nei guai e le probabilità sono alte ha anche la password di avviso.

Quindi non vedo un vero vantaggio qui solo molti aspetti negativi e una sensazione sbagliata di maggiore sicurezza.


0

Ho seguito questo tutorial (con TomatoUSB Shibby 1.28 sul mio Asus N66U): http://www.dd-wrt.com/wiki/index.php/OpenVPN Questo potrebbe aiutarti molto.


2
AndyZ - benvenuto in SF, ma a noi piacciono le risposte qui per contenere più sostanza di un semplice link (che può marcire con l'età). Se riesci a revisionare questa risposta per contenere le parti importanti del metodo che hai seguito e il link all'articolo, potrebbe essere davvero una buona risposta.
MadHatter,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.