Andà à 2FA (Autentificazione à dui Fattori per ASA SSL VPN)

A necessità di furnisce l'accessu remotu à un ambiente corporativu hè emergente di più in più spessu, ùn importa s'ellu hè i vostri utenti o partenarii chì anu bisognu di accessu à un servitore particulari in a vostra urganizazione.

Per questi scopi, a maiò parte di l'imprese utilizanu a tecnulugia VPN, chì s'hè dimustrata per esse una manera sicura di furnisce l'accessu à e risorse lucali di l'urganizazione.

A mo cumpagnia ùn era micca eccezzioni, è noi, cum'è parechji altri, usamu sta tecnulugia. È, cum'è parechji altri, usemu Cisco ASA 55xx cum'è una porta d'accessu remota.

Quandu u numeru di utilizatori remoti aumenta, ci hè bisognu di simplificà a prucedura per l'emissione di credenziali. Ma à u stessu tempu, questu deve esse fattu senza compromette a sicurità.

Per noi stessi, avemu trovu una suluzione in usu di l'autentificazione di dui fattori per cunnette via Cisco SSL VPN, utilizendu password una volta. E sta publicazione vi diciarà cumu urganizà una tale suluzione cù u tempu minimu è u costu zero per u software necessariu (sempre chì avete digià Cisco ASA in a vostra infrastruttura).

U mercatu hè pienu di soluzioni in boxe per generà password una volta, mentre chì offre assai opzioni per ottene, sia invià a password via SMS o utilizendu tokens, sia hardware sia software (per esempiu, in un telefuninu). Ma u desideriu di risparmià soldi è u desideriu di risparmià soldi per u mo patronu, in a crisa attuale, m'hà obligatu à truvà un modu gratuitu per implementà un serviziu per generà password una volta. Chì, mentri liberu, ùn hè micca assai inferjuri à suluzioni cummerciale (qui duvemu fà una riservazione, nutendu chì stu pruduttu hà ancu una versione cummerciale, ma avemu accunsentutu chì i nostri costi, in soldi, seranu cero).

Dunque, avemu bisognu di:

- L'imaghjini Linux cù un set di strumenti integrati - multiOTP, FreeRADIUS è nginx, per accede à u servitore via u web (http://download.multiotp.net/ - Aghju utilizatu una maghjina pronta per VMware)
- Servitore Active Directory
- Cisco ASA stessu (per comodità, aghju utilizatu ASDM)
- Qualchese token di software chì sustene u mecanismu TOTP (I, per esempiu, aduprà Google Authenticator, ma u stessu FreeOTP farà)

Ùn andaraghju in dettagli di cumu si sviluppa l'imaghjini. In u risultatu, riceverete Debian Linux cù multiOTP è FreeRADIUS digià stallati, cunfigurati per travaglià inseme, è una interfaccia web per l'amministrazione OTP.

Step 1. Avemu principiatu u sistema è cunfigurà lu per a vostra reta
Per automaticamente, u sistema vene cù credenziali di root root. Pensu chì tutti anu invintatu chì saria una bona idea di cambià a password di l'utilizatore root dopu u primu login. Avete ancu bisognu di cambià i paràmetri di a rete (per automaticamente hè "192.168.1.44" cù a porta "192.168.1.1"). Dopu, pudete reboot u sistema.

Creemu un utilizatore in Active Directory acupuncture, cù password MySuperPassword.

Step 2. Stallà a cunnessione è impurtà utilizatori Active Directory
Per fà questu, avemu bisognu di accessu à a cunsola, è direttamente à u schedariu multiotp.php, usendu quale cunfiguremu i paràmetri di cunnessione à Active Directory.

Andà à u cartulare /usr/local/bin/multiotp/ è eseguite i seguenti cumandamenti à turnu:

./multiotp.php -config default-request-prefix-pin=0

Determina se un pin supplementu (permanente) hè necessariu quandu si inserisce un pin unicu (0 o 1)

./multiotp.php -config default-request-ldap-pwd=0

Determina se una password di dominiu hè necessaria quandu si inserisce un pin unicu (0 o 1)

./multiotp.php -config ldap-server-type=1

U tipu di servitore LDAP hè indicatu (0 = servitore LDAP regular, in u nostru casu 1 = Active Directory)

./multiotp.php -config ldap-cn-identifier="sAMAccountName"

Specifica u formatu in quale prisentà u nome d'utilizatore (stu valore mostrarà solu u nome, senza u duminiu)

./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"

Listessa cosa, solu per un gruppu

./multiotp.php -config ldap-group-attribute="memberOf"

Specifica un metudu per determinà se un utilizatore appartene à un gruppu

./multiotp.php -config ldap-ssl=1

Deve aduprà una cunnessione sicura à u servitore LDAP (di sicuru, sì!)

./multiotp.php -config ldap-port=636

Portu per cunnette à u servitore LDAP

./multiotp.php -config ldap-domain-controllers=adSRV.domain.local

U vostru indirizzu di u servitore Active Directory

./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"

Indichemu induve cumincià à circà l'utilizatori in u duminiu

./multiotp.php -config ldap-bind-dn="[email protected]"

Specificà un utilizatore chì hà diritti di ricerca in Active Directory

./multiotp.php -config ldap-server-password="MySuperPassword"

Specificate a password d'utilizatore per cunnette à Active Directory

./multiotp.php -config ldap-network-timeout=10

Configurazione di u timeout per a cunnessione à Active Directory

./multiotp.php -config ldap-time-limit=30

Avemu stabilitu un limitu di tempu per l'operazione d'importazione di l'utilizatori

./multiotp.php -config ldap-activated=1

Attivà a cunfigurazione di cunnessione Active Directory

./multiotp.php -debug -display-log -ldap-users-sync

Importamu utilizatori da Active Directory

Step 3. Generate un codice QR per u token
Tuttu quì hè estremamente simplice. Aprite l'interfaccia web di u servitore OTP in u navigatore, accede (ùn vi scurdate di cambià a password predeterminata per l'amministratore!), è cliccate nant'à u buttone "Stampa":

Andà à 2FA (Autentificazione à dui Fattori per ASA SSL VPN)
U risultatu di sta azione serà una pagina chì cuntene dui codici QR. Ignoramu audacemente u primu di elli (malgradu l'attrattiva scritta Google Authenticator / Authenticator / 2 Steps Authenticator), è dinò scannemu audacemente u sicondu codice in un token di software in u telefunu:

Andà à 2FA (Autentificazione à dui Fattori per ASA SSL VPN)
(Iè, aghju deliberatamente spoiled u codice QR per rende illegibile).

Dopu à compie sti azzioni, una password di sei cifri cumincerà à esse generatu in a vostra applicazione ogni trenta seconde.

Per esse sicuru, pudete cuntrollà in a listessa interfaccia:

Andà à 2FA (Autentificazione à dui Fattori per ASA SSL VPN)
Ingressendu u vostru nome d'utilizatore è a password una volta da l'applicazione in u vostru telefunu. Avete ricevutu una risposta pusitiva? Allora andemu avanti.

Step 4. Cunfigurazione supplementu è teste di funziunamentu FreeRADIUS
Cumu l'aghju dettu sopra, multiOTP hè digià cunfiguratu per travaglià cù FreeRADIUS, tuttu ciò chì resta hè di eseguisce testi è aghjunghje infurmazioni nantu à a nostra porta VPN à u schedariu di cunfigurazione FreeRADIUS.

Riturnemu à a cunsola di u servitore, à u cartulare /usr/local/bin/multiotp/, entre :

./multiotp.php -config debug=1
./multiotp.php -config display-log=1

Includendu un logu più detallatu.

In u schedariu di cunfigurazione di i clienti FreeRADIUS (/etc/freeradius/clinets.conf) commentate tutte e righe relative à localhost è aghjunghje duie entrate:

client localhost {
        ipaddr = 127.0.0.1
        secret          = testing321
        require_message_authenticator = no
}

- per a prova

client 192.168.1.254/32 {
        shortname =     CiscoASA
        secret =        ConnectToRADIUSSecret
}

- per u nostru gateway VPN.

Riavvia FreeRADIUS è pruvate à login:

radtest username 100110 localhost 1812 testing321

induve gatti = nome d'utilizatore, 100110 = password datu à noi da l'applicazione nantu à u telefunu, localhost = indirizzu di u servitore RADIUS, 1812 - portu di u servitore RADIUS, testingNNX - Password di u cliente di u servitore RADIUS (chì avemu specificatu in a cunfigurazione).

U risultatu di stu cumandimu sarà uscita apprussimatamente cusì:

Sending Access-Request of id 44 to 127.0.0.1 port 1812
        User-Name = "username"
        User-Password = "100110"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 1812
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20

Avà avemu bisognu di assicurà chì l'utilizatore hè autentificatu cù successu. Per fà questu, fighjemu u logu di multiotp stessu:

tail /var/log/multiotp/multiotp.log

È se l'ultima entrata ci hè:

2016-09-01 08:58:17     notice  username  User    OK: User username successfully logged in from 127.0.0.1
2016-09-01 08:58:17     debug           Debug   Debug: 0 OK: Token accepted from 127.0.0.1

Allora tuttu hè andatu bè è pudemu compie

Passu 5: Configurate Cisco ASA
Accettamu chì avemu digià un gruppu cunfiguratu è pulitiche per l'accessu via SLL VPN, cunfigurati in cunghjunzione cù Active Directory, è avemu bisognu di aghjunghje l'autentificazione di dui fattori per stu prufilu.

1. Aghjunghjite un novu gruppu di servitori AAA:

Andà à 2FA (Autentificazione à dui Fattori per ASA SSL VPN)
2. Aghjunghjite u nostru servitore multiOTP à u gruppu:

Andà à 2FA (Autentificazione à dui Fattori per ASA SSL VPN)
3. Editemu prufilu di cunnessione, stabilisce u gruppu di u servitore Active Directory cum'è u servitore principale di autentificazione:

Andà à 2FA (Autentificazione à dui Fattori per ASA SSL VPN)
4. In a tabulazione Avanzate -> Autentificazione Selezziemu ancu u gruppu di servitori Active Directory:

Andà à 2FA (Autentificazione à dui Fattori per ASA SSL VPN)
5. In a tabulazione Avanzatu -> Secundariu autentificazione, selezziunate u gruppu di servitori creatu in quale u servitore multiOTP hè registratu. Nota chì u nome d'utilizatore di a Sessione hè ereditatu da u gruppu di servitori primari AAA:

Andà à 2FA (Autentificazione à dui Fattori per ASA SSL VPN)
Applica i paràmetri è

Step 6, aka l'ultimu
Cuntrollamu se l'autentificazione à dui fattori funziona per SLL VPN:

Andà à 2FA (Autentificazione à dui Fattori per ASA SSL VPN)
Voila! Quandu si cunnette via Cisco AnyConnect VPN Client, vi sarà ancu dumandatu una seconda password unica.

Spergu chì questu articulu aiuterà à qualchissia, è chì darà à qualchissia per pensà à cumu utilizà questu, liberu Servitore OTP, per altre attività. Condividi in i cumenti se vulete.

Source: www.habr.com

Add a comment