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":
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:
(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:
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:
2. Aghjunghjite u nostru servitore multiOTP à u gruppu:
3. Editemu prufilu di cunnessione, stabilisce u gruppu di u servitore Active Directory cum'è u servitore principale di autentificazione:
4. In a tabulazione Avanzate -> Autentificazione Selezziemu ancu u gruppu di servitori Active Directory:
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:
Applica i paràmetri è
Step 6, aka l'ultimu
Cuntrollamu se l'autentificazione à dui fattori funziona per SLL 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