Vajadus pakkuda kaugjuurdepÀÀs ettevĂ”tte keskkonnale on muutunud ĂŒha kiiremaks, olgu need siis teie enda kasutajad vĂ”i partnerid, kes vajavad ligipÀÀsu mĂ”nele serverile teie organisatsioonis.
Selleks kasutavad enamik ettevÔtteid VPN-tehnoloogiat, mis on tÔestanud end kui usaldusvÀÀrne ja turvaline meetod juurdepÀÀsu pakkumiseks organisatsiooni lokaalsetele ressurssidele.
Minu ettevÔte ei ole erand, ja meie, nagu paljud teisedki, kasutame seda tehnoloogiat. Ja nagu paljud teised, kasutame kaugjuurdepÀÀsu vÀravaks - Cisco ASA 55xx.
Kaugkasutajate arvu suurenemise korral ilmneb vajadus lihtsustada kasutajakontode vÀljastamise protsessi. Kuid samal ajal tuleb seda teha ka ohutuse arvelt mitte jÀreleandmisi tehes.
Oleme leidnud lahenduse Cisco SSL-iga ĂŒhenduse loomisel kahefaktoriautentimise rakendamisest, VPN, kasutades ĂŒhekordseid salasĂ”nu. See artikkel rÀÀgib, kuidas organiseerida sarnast lahendust minimaalsete ajakuludega ja nullkuludega vajaliku tarkvara osas (eeldusel, et Cisco ASA on juba teie infrastruktuuris olemas).
Turg on tulvil lahendusi ĂŒhekordsete salasĂ”nade genereerimiseks, pakkudes samas erinevaid vĂ”imalusi nende saamiseks, olgu need siis salasĂ”nade saatmine SMS-i teel vĂ”i kasutades token'ite, nii riistvara- kui tarkvaraversioone (nĂ€iteks mobiiltelefonil). Kuid soov sÀÀsta raha oma tööandjale, praeguses kriisis, sundis mind leidma tasuta viisi ĂŒhekordsete salasĂ”nade genereerimise teenuse rakendamiseks. Mis, oma tasuta olemise juures, ei jÀÀ palju maha kommertslahendustest (siinkohal tuleb mĂ€rkida, et sellel tootega on ka kommertsversion, aga me oleme nĂ”ustunud, et meie kulud rahas on null).
Nii et meil on vaja:
â Linuxi obraz, millega on kaasas tööriistakomplekt â multiOTP, FreeRADIUS ja nginx, serverisse veebipĂ”hiseks juurdepÀÀsuks (http://download.multiotp.net/ - kasutasin VMware jaoks valmislahendust)
â Active Directory server
â Siiski Cisco ASA (kasutan oma mugavuse huvides ASDM-i)
â Igasugune tarkvaraline token, mis toetab TOTP mehhanismi (nĂ€iteks kasutan Google Authenticatorit, aga sobib ka FreeOTP)
Ma ei hakka detailidesse laskuma, kuidas pildistatav pilt vÀlja nÀeb. LÔpptulemusena saate Debian Linuxi, millel on juba installitud multiOTP ja FreeRADIUS, mis on konfigureeritud koos töötama ning web-liides OTP haldamiseks.
Samm 1. KĂ€ivitage sĂŒsteem ja seadistage see oma vĂ”rgu jaoks
Vaikimisi tuleb sĂŒsteem koos root parooliga root. Arvan, et kĂ”ik on aru saanud, et oleks hea muuta root kas kasutaja parool pĂ€rast esmakordset sisselogimist. Samuti on vaja muuta vĂ”rgu seadeid (vaikimisi â192.168.1.44â koos vĂ€ravaga â192.168.1.1â). PĂ€rast seda saate sĂŒsteemi taaskĂ€ivitada.
Loome Active Directorys kasutaja otp, parooliga MySuperPassword.
Samm 2. Seadistame ĂŒhenduse ja impordime Active Directory kasutajad
Selleks vajame juurdepÀÀsu konsolile ja konkreetselt faili multiotp.php, kasutades seda, seadistame Active Directory ĂŒhenduse parameetrid.
Liigume kausta /usr/local/bin/multiotp/ ja jÀrk-jÀrgult tÀidame jÀrgmised kÀsud:
./multiotp.php -config default-request-prefix-pin=0MÀÀrab, kas on vajalik tĂ€iendava (pĂŒsiva) PIN-koodi sisestamine ĂŒhe kasutusaja PIN-koodi sisestamisel (0 vĂ”i 1)
./multiotp.php -config default-request-ldap-pwd=0MÀÀrab, kas domeeni parool tuleb sisestada ĂŒhe kasutusaja PIN-koodi sisestamise ajal (0 vĂ”i 1)
./multiotp.php -config ldap-server-type=1MÀÀrab LDAP-serveri tĂŒĂŒbi (0 = tavaline LDAP-server, meie juhul 1 = Active Directory)
./multiotp.php -config ldap-cn-identifier="sAMAccountName"MÀÀrab, millises formaadis kasutajanime esitada (see vÀÀrtus toob vÀlja ainult nime, ilma domeenita)
./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"Sama, ainult grupi jaoks
./multiotp.php -config ldap-group-attribute="memberOf"MÀÀrab, kuidas mÀÀratakse kasutaja kuuluvus gruppi
./multiotp.php -config ldap-ssl=1Kas kasutada turvalist ĂŒhendust LDAP-serveriga (loomulikult â jah!)
./multiotp.php -config ldap-port=636Port LDAP-serveriga ĂŒhenduse loomiseks
./multiotp.php -config ldap-domain-controllers=adSRV.domain.localTeie Active Directory serveri aadress
./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"MÀÀrame, kust alustada kasutajate otsimist domeenis
./multiotp.php -config ldap-bind-dn="otp@domain.local"MÀÀrame kasutaja, kellel on Ôigused Active Directorys otsimiseks
./multiotp.php -config ldap-server-password="MySuperPassword"MÀÀrame kasutaja parooli Active Directorysse ĂŒhendamiseks
./multiotp.php -config ldap-network-timeout=10MÀÀrame aktiveerimise ajaloo Active Directoryga ĂŒhenduse jaoks
./multiotp.php -config ldap-time-limit=30MÀÀrame ajapiirangu kasutajate importimise operatsioonile
.\/multiotp.php -config ldap-activated=1Aktiveerime Active Directory ĂŒhenduse konfiguratsiooni
.\/multiotp.php -debug -display-log -ldap-users-syncImpordime kasutajaid Active Directory'st
Samm 3. Loome QR-koodi tokeni jaoks
Siin on kÔik ÀÀrmiselt lihtne. Avame OTP-serveri veebiliidese brauseris, logime sisse (Àrge unustage muuta vaikimisi administraatori parooli!) ja vajutame nuppu "Print":

Selle tegevuse tulemuseks on leht, kus on kaks QR-koodi. Me ei pööra tÀhelepanu esimesele (kuigi sellel on ahvatlev tekst Google Authenticator / Authenticator / 2 Steps Authenticator) ning skaneerime julgelt teise koodi tarkvaralisel tokenil telefonis:

(jah, ma rikkusin meelega QR-koodi, et muuta see loetamatuks).
PĂ€rast neid toiminguid genereerib teie rakendus igakuiselt kuue numbriga parooli.
Kinnitamiseks saate teha kontrolli samas liideses:

Sisestades kasutajanime ja ĂŒhekordse parooli telefonirakendusest. Sai positiivne vastus? Siis liigume edasi.
Samm 4. Kohandame ja testime FreeRADIUSi tööd
Kuidas ma eespool mainisin â multiOTP on juba konfigureeritud FreeRADIUSiga töötamiseks, me peame vaid testid lĂ€bi viima ja lisama FreeRADIUSi konfiguratsioonifaili teave meie VPN-sillast.
Naaseme serveri konsooli, katalooge /usr/local/bin/multiotp/, sisestame:
.\/multiotp.php -config debug=1\n.\/multiotp.php -config display-log=1LĂŒlitades seelĂ€bi sisse ĂŒksikasjalikuma logimise.
FreeRADIUSi klientide konfiguratsioonifailis (/etc/freeradius/clinets.conf) kommenteerime kÔik read, mis puudutavad localhost ja lisame kaks ettepanekut:
client localhost {\n ipaddr = 127.0.0.1\n secret = testing321\n require_message_authenticator = no\n}â testimiseks
client 192.168.1.254\/32 {\n shortname = CiscoASA\n secret = ConnectToRADIUSSecret\n}â meie VPN-sillale.
TaaskÀivitame FreeRADIUSi ja proovime autentida:
radtest username 100110 localhost 1812 testing321kus username = kasutajanimi, 100110 = parool, mille rakendus meile edastas, localhost = RADIUS-serveri aadress, 1812 â RADIUS-serveri port, testing321 â RADIUS-serveri kliendi parool (mille me konfiguratsioonis mÀÀrasime).
Selle kÀsu tulemusena on vÀljund umbes jÀrgmise sisu:
Sending Access-Request of id 44 to 127.0.0.1 port 1812\n User-Name = "username"\n User-Password = "100110"\n NAS-IP-Address = 127.0.1.1\n NAS-Port = 1812\n Message-Authenticator = 0x00000000000000000000000000000000\nrad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20NĂŒĂŒd peame veenduma, et kasutaja on edukalt autentitud. Selleks vaatame multiotp logisse:
tail /var/log/multiotp/multiotp.logJa kui viimaseks kirjeks seal on:
2016-09-01 08:58:17 notice username Kasutaja OK: Kasutaja username logis edukalt sisse aadressilt 127.0.0.1
2016-09-01 08:58:17 debug Debug Debug: 0 OK: Token aktsepteeritud aadressilt 127.0.0.1Siis on kÔik lÀinud edukalt ja me saame jÀtkata
Samm 5. Cisco ASA seadistamine
Oletame, et meil on juba seadistatud rĂŒhm ja poliitikad SSL VPN-i ligipÀÀsuks, seadistatud koos Active Directoryga, ja me peame lisama kaheastmelise autentimise sellele profiilile.
1. Lisame uue grupi serverid AAA:

2. Lisame rĂŒhma meie multiOTP serveri:

3. Muudame ĂŒhenduse profiili, mÀÀrates pĂ”hivahenditena autentimise jaoks Active Directory serverite grupi:

4. Sakil Advanced -> Authentification samuti valime Active Directory serverite grupi:

5. Sakil Advanced -> Secondary autentimise puhul valime loodud serverite grupi, kus on mÀÀratud multiOTP-server. TÔstame esile, et sessiooni kasutajanimi pÀrandub AAA esmase serverite grupist:

Kinnitame seaded ja
Samm 6, viimane
Kontrollime, kas meie kaheastmeline autentimine SSL VPN-i jaoks töötab:

VoilĂ ! Cisco AnyConnect VPN kliendiga ĂŒhendamisel kĂŒsitakse samuti teist, ĂŒhekordset parooli.
Loodan, et see artikkel aitab kedagi ja annab vĂ”imalusi mĂ”elda, kuidas seda kasutada, tasuta OTP-serverit, teiste ĂŒlesannete jaoks. Jagage kommentaarides, kui on soovi.
Allikas: habr.com
