openvpn:openvpn_mfa
Differences
This shows you the differences between two versions of the page.
openvpn:openvpn_mfa [2025/09/20 12:51] – created - external edit 127.0.0.1 | openvpn:openvpn_mfa [2025/09/21 19:09] (current) – kurgan | ||
---|---|---|---|
Line 6: | Line 6: | ||
Notare che io volutamente richiedo che ci sia un certificato personale per ogni utente. Sarebbe possibile volendo usare un unico certificato per tutti gli utenti e autenticare i singoli utenti basandosi su username e TOTP, però questo a mio avviso rende meno sicuro il sistema in quanto rende possibile accedere possedendo un certificato rubato ad un utente e un codice TOTP rubato ad un altro utente. Inoltre una volta che per qualche motivo venisse compromesso il certificato utente (si presume che ce ne sia uno solo usato da tutti) o continuo a usare un certificato compromesso oppure devo revocarlo e quindi dare un nuovo certificato a tutti gli utenti, e non solo ad un singolo utente. | Notare che io volutamente richiedo che ci sia un certificato personale per ogni utente. Sarebbe possibile volendo usare un unico certificato per tutti gli utenti e autenticare i singoli utenti basandosi su username e TOTP, però questo a mio avviso rende meno sicuro il sistema in quanto rende possibile accedere possedendo un certificato rubato ad un utente e un codice TOTP rubato ad un altro utente. Inoltre una volta che per qualche motivo venisse compromesso il certificato utente (si presume che ce ne sia uno solo usato da tutti) o continuo a usare un certificato compromesso oppure devo revocarlo e quindi dare un nuovo certificato a tutti gli utenti, e non solo ad un singolo utente. | ||
- | |||
===== Configurazione openvpn lato server ===== | ===== Configurazione openvpn lato server ===== | ||
- | Lato server, uso una configurazione molto simile a quella di [[../Openvpn_Con_Certificati]], | + | Lato server, uso una configurazione molto simile a quella di [[Openvpn_Con_Certificati]], |
Le modifiche nel dettaglio sono queste: | Le modifiche nel dettaglio sono queste: | ||
+ | |||
* Non posso usare i comandi "user nobody / group nogroup" | * Non posso usare i comandi "user nobody / group nogroup" | ||
* Sempre per lanciare lo script che controlla il codice TOTP, devo impostare script-security a 2 e definire una directory temporanea dove scrivere dei files (idealmente un ramdisk) | * Sempre per lanciare lo script che controlla il codice TOTP, devo impostare script-security a 2 e definire una directory temporanea dove scrivere dei files (idealmente un ramdisk) | ||
Line 19: | Line 19: | ||
La configurazione risultante è questa: | La configurazione risultante è questa: | ||
- | < | + | |
+ | < | ||
port 1194 | port 1194 | ||
proto udp | proto udp | ||
Line 91: | Line 92: | ||
</ | </ | ||
- | Ovviamente qui non spiego come generare i certificati, | + | Ovviamente qui non spiego come generare i certificati, |
===== Script per autenticare con TOTP lato server ===== | ===== Script per autenticare con TOTP lato server ===== | ||
Line 100: | Line 100: | ||
Questo script richiede di avere installato il programma " | Questo script richiede di avere installato il programma " | ||
- | < | + | < |
- | # | + | #!/bin/bash |
# script che verifica i codici TOTP su un file di testo | # script che verifica i codici TOTP su un file di testo | ||
Line 143: | Line 143: | ||
exit 1 | exit 1 | ||
- | }}} | + | </ |
===== Script per generare le righe da inserire nel file oath.secrets ===== | ===== Script per generare le righe da inserire nel file oath.secrets ===== | ||
Line 154: | Line 153: | ||
Questo script, che non è necessario che giri sullo stesso server dove gira openvpn, richiede che siano installati i seguenti programmi: oathtool, pwgen, base32, qrencode. Sono tutti disponibili come pacchetti debian e anche su openwrt. | Questo script, che non è necessario che giri sullo stesso server dove gira openvpn, richiede che siano installati i seguenti programmi: oathtool, pwgen, base32, qrencode. Sono tutti disponibili come pacchetti debian e anche su openwrt. | ||
- | Se usiamo questo script sulla stessa macchina dove si trova openvpn possiamo direttamente fargli scrivere il file oath.secrets che viene letto da openvpn, in alternativa dovremo copiare a mano gli utenti da una macchina all' | + | Se usiamo questo script sulla stessa macchina dove si trova openvpn possiamo direttamente fargli scrivere il file oath.secrets che viene letto da openvpn, in alternativa dovremo copiare a mano gli utenti da una macchina all' |
Notare che questo script semplicemente accoda una riga ogni volta al file oath.secrets, | Notare che questo script semplicemente accoda una riga ogni volta al file oath.secrets, | ||
- | < | + | < |
- | # | + | #!/bin/bash |
# uso: creautente | # uso: creautente | ||
Line 207: | Line 206: | ||
===== Configurazione lato client ===== | ===== Configurazione lato client ===== | ||
- | Lato client, la configurazione è di nuovo simile a quella usata in [[../Openvpn_Con_Certificati]] con poche modifiche per renderla compatibile con la necessità di inserire username e password. | + | Lato client, la configurazione è di nuovo simile a quella usata in [[Openvpn_Con_Certificati]] con poche modifiche per renderla compatibile con la necessità di inserire username e password. Notare che il client openvpn per Windows permette di salvare lo username (lo fa per default, senza dover impostare nulla) e anche di salvare la password. Evitate di salvare la password perché la password è il codice TOTP che cambia ogni volta. |
- | Notare che il client openvpn per Windows permette di salvare lo username (lo fa per default, senza dover impostare nulla) e anche di salvare la password. Evitate di salvare la password perché la password è il codice TOTP che cambia ogni volta. | + | |
- | < | + | < |
client | client | ||
dev tun | dev tun | ||
Line 239: | Line 237: | ||
hand-window 15 | hand-window 15 | ||
</ | </ | ||
- | |||
===== Configurazione app sul cellulare ===== | ===== Configurazione app sul cellulare ===== | ||
È possibile usare qualsiasi app che possa leggere i QR code per generare i codici TOTP. Le app che ho provato personalmente sono " | È possibile usare qualsiasi app che possa leggere i QR code per generare i codici TOTP. Le app che ho provato personalmente sono " | ||
+ | |||
openvpn/openvpn_mfa.1758372660.txt.gz · Last modified: by 127.0.0.1