Mine 2FA (Kahefakohaline autentimine ASA SSL VPN jaoks)

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=0

MÀÀ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=0

MÀÀrab, kas domeeni parool tuleb sisestada ĂŒhe kasutusaja PIN-koodi sisestamise ajal (0 vĂ”i 1)

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

MÀÀ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=1

Kas kasutada turvalist ĂŒhendust LDAP-serveriga (loomulikult — jah!)

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

Port LDAP-serveriga ĂŒhenduse loomiseks

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

Teie 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=10

MÀÀrame aktiveerimise ajaloo Active Directoryga ĂŒhenduse jaoks

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

MÀÀrame ajapiirangu kasutajate importimise operatsioonile

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

Aktiveerime Active Directory ĂŒhenduse konfiguratsiooni

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

Impordime 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":

Mine 2FA (Kahefakohaline autentimine ASA SSL VPN jaoks)
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:

Mine 2FA (Kahefakohaline autentimine ASA SSL VPN jaoks)
(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:

Mine 2FA (Kahefakohaline autentimine ASA SSL VPN jaoks)
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=1

LĂŒ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 testing321

kus 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=20

NĂŒĂŒd peame veenduma, et kasutaja on edukalt autentitud. Selleks vaatame multiotp logisse:

tail /var/log/multiotp/multiotp.log

Ja 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.1

Siis 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:

Mine 2FA (Kahefakohaline autentimine ASA SSL VPN jaoks)
2. Lisame rĂŒhma meie multiOTP serveri:

Mine 2FA (Kahefakohaline autentimine ASA SSL VPN jaoks)
3. Muudame ĂŒhenduse profiili, mÀÀrates pĂ”hivahenditena autentimise jaoks Active Directory serverite grupi:

Mine 2FA (Kahefakohaline autentimine ASA SSL VPN jaoks)
4. Sakil Advanced -> Authentification samuti valime Active Directory serverite grupi:

Mine 2FA (Kahefakohaline autentimine ASA SSL VPN jaoks)
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:

Mine 2FA (Kahefakohaline autentimine ASA SSL VPN jaoks)
Kinnitame seaded ja

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

Mine 2FA (Kahefakohaline autentimine ASA SSL VPN jaoks)
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

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster