mikrotik:openvpn_2fa_totp
Differences
This shows you the differences between two versions of the page.
mikrotik:openvpn_2fa_totp [2025/09/20 12:51] – created - external edit 127.0.0.1 | mikrotik:openvpn_2fa_totp [2025/09/21 15:04] (current) – kurgan | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== TOTP con Openvpn ====== | ====== TOTP con Openvpn ====== | ||
- | Questa configurazione, | + | Questa configurazione, |
===== Installazione pacchetto user-manager ===== | ===== Installazione pacchetto user-manager ===== | ||
- | Per funzionare, abbiamo bisogno del pacchetto " | + | Per funzionare, abbiamo bisogno del pacchetto " |
Una volta scaricato lo zip, potete estrarre solo il file dello user manager e uploadarlo sul Mikrotik nella gestione files. Una volta che lo avete uploadato, riavviate e dovrebbe automaticamente installarlo. Una volta installato potete anche cancellarlo dalla sezione files. Troverete una nuova voce "User Manager" | Una volta scaricato lo zip, potete estrarre solo il file dello user manager e uploadarlo sul Mikrotik nella gestione files. Una volta che lo avete uploadato, riavviate e dovrebbe automaticamente installarlo. Una volta installato potete anche cancellarlo dalla sezione files. Troverete una nuova voce "User Manager" | ||
- | |||
- | |||
===== Configurazione del Mikrotik per essere server RADIUS ===== | ===== Configurazione del Mikrotik per essere server RADIUS ===== | ||
Line 16: | Line 13: | ||
Configuriamo lo user manager per essere server RADIUS (per se` stesso). Volendo potremmo anche essere server per un altro client, ma qui non ci interessa. | Configuriamo lo user manager per essere server RADIUS (per se` stesso). Volendo potremmo anche essere server per un altro client, ma qui non ci interessa. | ||
- | < | + | < |
/ | / | ||
set certificate=*0 enabled=yes | set certificate=*0 enabled=yes | ||
Line 23: | Line 20: | ||
add address=127.0.0.1 name=router1 | add address=127.0.0.1 name=router1 | ||
</ | </ | ||
- | |||
===== Configurazione di openvpn per essere client RADIUS ===== | ===== Configurazione di openvpn per essere client RADIUS ===== | ||
Line 29: | Line 25: | ||
Ora configuriamo il sistema per essere client RADIUS in modo che openvpn possa vedere gli account utente che creeremo sotto lo user manager. Una volta fatta questa configurazione il server openvpn userà sia gli account utente esistenti sotto la configurazione dei Secret del PPP, sia quelli che creeremo nello user manager. Se vogliamo tenere ordine, consiglio di evitare di usare tutti e due i sistemi, anche se tecnicamente si può fare senza problemi, basta che non abbiamo utenti con lo stesso username nell' | Ora configuriamo il sistema per essere client RADIUS in modo che openvpn possa vedere gli account utente che creeremo sotto lo user manager. Una volta fatta questa configurazione il server openvpn userà sia gli account utente esistenti sotto la configurazione dei Secret del PPP, sia quelli che creeremo nello user manager. Se vogliamo tenere ordine, consiglio di evitare di usare tutti e due i sistemi, anche se tecnicamente si può fare senza problemi, basta che non abbiamo utenti con lo stesso username nell' | ||
- | < | + | < |
/radius | /radius | ||
add address=127.0.0.1 service=ppp timeout=1s | add address=127.0.0.1 service=ppp timeout=1s | ||
Line 36: | Line 32: | ||
set accounting=yes use-radius=yes | set accounting=yes use-radius=yes | ||
</ | </ | ||
- | |||
===== Creazione utenti sotto lo user manager ===== | ===== Creazione utenti sotto lo user manager ===== | ||
Line 42: | Line 37: | ||
Ora possiamo creare gli utenti. Farlo è relativamente scomodo, per cui ho creato un piccolo script per farlo che gira sotto Linux. In ogni caso se vogliamo fare una prova possiamo farla a mano con un utente di test (che poi toglieremo). | Ora possiamo creare gli utenti. Farlo è relativamente scomodo, per cui ho creato un piccolo script per farlo che gira sotto Linux. In ogni caso se vogliamo fare una prova possiamo farla a mano con un utente di test (che poi toglieremo). | ||
- | < | + | < |
/ | / | ||
add name=test2 otp-secret=ONSWO4TFORXWI2LQOVWGG2LOMVWGYYIK password=pippo | add name=test2 otp-secret=ONSWO4TFORXWI2LQOVWGG2LOMVWGYYIK password=pippo | ||
</ | </ | ||
- | Questo utente usa come segreto per la generazione dell' OTP la stringa " | + | Questo utente usa come segreto per la generazione dell' OTP la stringa " |
===== Configurazione del client Openvpn ===== | ===== Configurazione del client Openvpn ===== | ||
- | Lato client, impostiamo tutto come indicato in [[../Openvpn server]], con l' | + | Lato client, impostiamo tutto come indicato in [[Openvpn server]], con l' |
- | < | + | |
+ | < | ||
auth-user-pass | auth-user-pass | ||
</ | </ | ||
- | al posto di | + | |
- | < | + | al posto di |
+ | |||
+ | < | ||
auth-user-pass user-pass.txt | auth-user-pass user-pass.txt | ||
</ | </ | ||
- | |||
===== Test del sistema ===== | ===== Test del sistema ===== | ||
Ora possiamo provare a connetterci dal client, alla richiesta di username e password inseriamo il nostro username " | Ora possiamo provare a connetterci dal client, alla richiesta di username e password inseriamo il nostro username " | ||
- | < | + | |
+ | < | ||
oathtool -b --totp ONSWO4TFORXWI2LQOVWGG2LOMVWGYYIK | oathtool -b --totp ONSWO4TFORXWI2LQOVWGG2LOMVWGYYIK | ||
</ | </ | ||
- | |||
===== Gestione account utente ===== | ===== Gestione account utente ===== | ||
Gestire gli account utente è decisamente scomodo se lo facciamo a mano, dobbiamo usare base32 per codificare i segreti per la generazione della OTP e poi dobbiamo copiarli a mano nella nostra app di autenticazione. Per questo motivo ho creato uno script abbastanza orribile che permette di creare del QR code da leggere con Aegis e genera anche un file di testo (utenti-mirkotik.txt) il cui contenuto possiamo copiare e incollare nella console del Mikrotik per creare gli account utente. | Gestire gli account utente è decisamente scomodo se lo facciamo a mano, dobbiamo usare base32 per codificare i segreti per la generazione della OTP e poi dobbiamo copiarli a mano nella nostra app di autenticazione. Per questo motivo ho creato uno script abbastanza orribile che permette di creare del QR code da leggere con Aegis e genera anche un file di testo (utenti-mirkotik.txt) il cui contenuto possiamo copiare e incollare nella console del Mikrotik per creare gli account utente. | ||
- | |||
Lo script gira su Linux, e richiede di avere installati i seguenti programmi: base32, pwgen, qrencode | Lo script gira su Linux, e richiede di avere installati i seguenti programmi: base32, pwgen, qrencode | ||
- | + | < | |
- | < | + | #!/bin/bash |
- | # | + | |
# uso: creautente | # uso: creautente | ||
# se password e` un numero singolo, crea una password casuale di N caratteri | # se password e` un numero singolo, crea una password casuale di N caratteri | ||
Line 121: | Line 115: | ||
exit 0 | exit 0 | ||
</ | </ | ||
+ | |||
mikrotik/openvpn_2fa_totp.1758372660.txt.gz · Last modified: by 127.0.0.1