Certificato OpenVPN o authentication plug-in-auth-pam

Configurazione del server OpenVPN, posso triggersre l'authentication basata su certificati o l'authentication di nome utente / password utilizzando openvpn-plugin-auth-pam , ma non entrambi contemporaneamente.

Abilito l'authentication username / password come segue:

  • SQL Server - Connetti come un altro utente di dominio
  • Scarsa performance di OpenVPN NFS
  • Postfix SMTP autenticato può submit come qualcuno
  • Formato chiave pubblica SSH
  • Come registrare la width di banda OpenVPN utilizzata?
  • Tunneling di un IP pubblico a una macchina remota
  •  plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so login client-cert-not-required username-as-common-name 

    Ma non appena aggiunto le seguenti righe, i miei clienti configurati per l'authentication del certificato smettono di lavorare con i seguenti messaggi nel registro:

     TLS Error: Auth Username/Password was not provided by peer TLS Error: TLS handshake failed 

    C'è un modo per non richiedere username / password dai client che utilizzano l'authentication del certificato?

    One Solution collect form web for “Certificato OpenVPN o authentication plug-in-auth-pam”

    OpenVPN non support più methods di authentication concorrenti. La soluzione migliore per questo, come indicato nei commenti, è quella di eseguire due istanze di OpenVPN. È più complicato eseguirlo sulla stessa casella, ma è sicuramente capace.

    Tuttavia, ci sembrano alcune soluzioni alternative che possono essere adatte alla tua situazione.

    se sai quali certificati richiedono una password e che no, allora la risposta è sì. utilizzare uno script "auth-user-pass-verify" sul lato server per verificare prima il certificato DN (se si imposta anche nome-nome-nome-comune, allora si conosce il nome comune del certificato nello script di verifica automaticamente ). se si tratta di un certificato per cui sappiamo che una password è stata inserita allora utilizzare pam per verificare il nome utente / la password. se si conosce che il certificato non includeva una password, quindi lo script restituisca '0' per consentire l'accesso.

    Si noti che non esiste alcun modo per determinare automaticamente se l'utente ha digitato una password di certificato o no – che è al di fuori della stretta di mano openssl e quindi non è noto al server OpenVPN.

    Fonte: https://openvpn.net/archive/openvpn-users/2007-12/msg00179.html

    Puoi anche essere in grado di federare i pacchetti di chiavi generati da OpenVPN in un server LDAP locale e utilizzare lo script di cui sopra per l'authentication contro LDAP con il certificato fornito o utilizzare le credenziali fornite in assenza di alcun certificato.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.