Avage 2FA (kahefaktoriline autentimine ASA SSL VPN-i jaoks)

Üha sagedamini kerkib esile vajadus pakkuda ettevõtte keskkonnale kaugjuurdepääsu, olenemata sellest, kas teie kasutajad või partnerid vajavad juurdepääsu teie organisatsiooni konkreetsele serverile.

Nendel eesmärkidel kasutab enamik ettevõtteid VPN-tehnoloogiat, mis on osutunud usaldusväärselt kaitstud viisiks juurdepääsuks organisatsiooni kohalikele ressurssidele.

Minu ettevõte polnud erand ja meie, nagu paljud teised, kasutame seda tehnoloogiat. Ja nagu paljud teised, kasutame kaugjuurdepääsu lüüsina Cisco ASA 55xx.

Kuna kaugkasutajate arv suureneb, on vaja volikirjade väljastamise protseduuri lihtsustada. Kuid samal ajal tuleb seda teha ohutust kahjustamata.

Enda jaoks leidsime lahenduse kahefaktorilise autentimise kasutamises Cisco SSL VPN-i kaudu ühenduse loomiseks, kasutades ühekordseid paroole. Ja see väljaanne räägib teile, kuidas sellist lahendust minimaalse aja ja vajaliku tarkvara jaoks ilma kuludega korraldada (eeldusel, et teie infrastruktuuris on juba Cisco ASA).

Turg on täis kastilahendusi ühekordsete paroolide genereerimiseks, pakkudes samas palju võimalusi nende hankimiseks, olgu selleks siis parooli saatmine SMS-iga või žetoonide kasutamine, nii riist- kui tarkvara (näiteks mobiiltelefonis). Kuid soov säästa raha ja soov säästa oma tööandja raha sundis praeguses kriisis mind leidma tasuta viisi ühekordsete paroolide genereerimise teenuse rakendamiseks. Mis, kuigi tasuta, ei jää palju alla kommertslahendustele (siinkohal peaksime tegema reservatsiooni, märkides, et sellel tootel on ka kommertsversioon, kuid leppisime kokku, et meie kulud rahas on null).

Niisiis, me vajame:

- Linuxi pilt koos sisseehitatud tööriistade komplektiga - multiOTP, FreeRADIUS ja nginx, serverile veebi kaudu juurdepääsuks (http://download.multiotp.net/ - VMware jaoks kasutasin valmis pilti)
— Active Directory server
- Cisco ASA ise (mugavuse huvides kasutan ASDM-i)
— mis tahes tarkvara token, mis toetab TOTP mehhanismi (mina näiteks kasutan Google Authenticatorit, aga sama FreeOTP teeb seda)

Ma ei hakka kirjeldama, kuidas pilt avaneb. Selle tulemusena saate Debian Linuxi, millel on juba installitud multiOTP ja FreeRADIUS, mis on konfigureeritud koos töötama, ja veebiliidese OTP administreerimiseks.

1. samm. Käivitame süsteemi ja konfigureerime selle teie võrgu jaoks
Vaikimisi on süsteemil juurjuurmandaadid. Ma arvan, et kõik arvasid, et pärast esimest sisselogimist oleks hea mõte muuta root kasutaja parool. Samuti peate muutma võrguseadeid (vaikimisi on see '192.168.1.44' lüüsiga '192.168.1.1'). Pärast seda saate süsteemi taaskäivitada.

Loome Active Directorysse kasutaja OTP, parooliga Minu SuperPassword.

Samm 2. Seadistage ühendus ja importige Active Directory kasutajad
Selleks vajame juurdepääsu konsoolile ja otse failile multiotp.php, mille abil konfigureerime Active Directory ühenduse sätted.

Mine kataloogi /usr/local/bin/multiotp/ ja täitke kordamööda järgmised käsud:

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

Määrab, kas ühekordse PIN-koodi (0 või 1) sisestamisel on vaja täiendavat (püsivat) tihvti

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

Määrab, kas ühekordse PIN-koodi (0 või 1) sisestamisel on nõutav domeeni parool

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

LDAP-serveri tüüp on näidatud (0 = tavaline LDAP-server, meie puhul 1 = Active Directory)

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

Määrab vormingu, milles kasutajanimi esitatakse (see väärtus kuvab ainult nime ilma domeenita)

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

Sama asi, ainult grupi jaoks

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

Määrab meetodi kasutaja gruppi kuulumise määramiseks

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

Kas ma peaksin kasutama turvalist ühendust LDAP-serveriga (muidugi - 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"

Näitame, kust alustada domeeni kasutajate otsimist

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

Määrake kasutaja, kellel on Active Directory otsinguõigused

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

Määrake Active Directoryga ühenduse loomiseks kasutaja parool

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

Active Directoryga ühenduse loomise ajalõpu määramine

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

Seadsime kasutajate importimise toimingule ajapiirangu

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

Active Directory ühenduse konfiguratsiooni aktiveerimine

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

Impordime kasutajaid Active Directoryst

3. samm. Looge märgi jaoks QR-kood
Siin on kõik äärmiselt lihtne. Avage brauseris OTP-serveri veebiliides, logige sisse (ärge unustage administraatori vaikeparooli muuta!) ja klõpsake nuppu "Prindi":

Avage 2FA (kahefaktoriline autentimine ASA SSL VPN-i jaoks)
Selle toimingu tulemuseks on leht, mis sisaldab kahte QR-koodi. Ignoreerime julgelt esimest neist (hoolimata atraktiivsest kirjast Google Authenticator / Authenticator / 2 Steps Authenticator) ja skannime jälle julgelt teise koodi telefoni tarkvaramärgiks:

Avage 2FA (kahefaktoriline autentimine ASA SSL VPN-i jaoks)
(jah, ma rikkusin QR-koodi meelega, et muuta see loetamatuks).

Pärast nende toimingute sooritamist hakatakse teie rakenduses iga kolmekümne sekundi järel genereerima kuuekohalist parooli.

Et olla kindel, saate seda kontrollida samas liideses:

Avage 2FA (kahefaktoriline autentimine ASA SSL VPN-i jaoks)
Sisestades oma telefoni rakendusest oma kasutajanime ja ühekordse parooli. Kas saite positiivse vastuse? Nii et liigume edasi.

Samm 4. FreeRADIUSe töö täiendav konfigureerimine ja testimine
Nagu ma eespool mainisin, on multiOTP juba konfigureeritud töötama koos FreeRADIUSega, jääb üle vaid testida ja lisada FreeRADIUSe konfiguratsioonifaili teave meie VPN-lüüsi kohta.

Naaseme serverikonsooli, kataloogi /usr/local/bin/multiotp/, sisenema:

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

Sealhulgas täpsem logimine.

FreeRADIUSe klientide konfiguratsioonifailis (/etc/freeradius/clinets.conf) kommenteerige välja kõik teemaga seotud read localhost ja lisage kaks kirjet:

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

- testimiseks

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

- meie VPN-lüüsi jaoks.

Taaskäivitage FreeRADIUS ja proovige sisse logida:

radtest username 100110 localhost 1812 testing321

kus kasutajanimi = kasutajanimi, 100110 = telefonirakenduse poolt meile antud parool, localhost = RADIUS serveri aadress, 1812 — RADIUS serveri port, katsetamine321 — RADIUS-serveri kliendi parool (selle määrasime konfiguratsioonis).

Selle käsu tulemus väljastatakse ligikaudu järgmiselt:

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

Nüüd peame veenduma, et kasutaja on edukalt autentitud. Selleks vaatame multiotpi logi:

tail /var/log/multiotp/multiotp.log

Ja kui viimane sissekanne on:

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

Siis läks kõik hästi ja saame lõpule viia

5. samm: konfigureerige Cisco ASA
Leppigem kokku, et meil on juba konfigureeritud rühm ja eeskirjad SLL VPN-i kaudu juurdepääsuks, mis on konfigureeritud koos Active Directoryga, ning me peame selle profiili jaoks lisama kahefaktorilise autentimise.

1. Lisage uus AAA-serverirühm:

Avage 2FA (kahefaktoriline autentimine ASA SSL VPN-i jaoks)
2. Lisage gruppi meie multiOTP-server:

Avage 2FA (kahefaktoriline autentimine ASA SSL VPN-i jaoks)
3. Redigeerime ühendusprofiil, määrates Active Directory serverirühma peamiseks autentimisserveriks:

Avage 2FA (kahefaktoriline autentimine ASA SSL VPN-i jaoks)
4. Vahekaardil Täpsem -> Autentimine Valime ka Active Directory serverirühma:

Avage 2FA (kahefaktoriline autentimine ASA SSL VPN-i jaoks)
5. Vahekaardil Advanced -> Secondary autentimisel valige loodud serverirühm, kuhu multiOTP-server on registreeritud. Pange tähele, et seansi kasutajanimi on päritud esmasest AAA-serverirühmast:

Avage 2FA (kahefaktoriline autentimine ASA SSL VPN-i jaoks)
Rakendage sätted ja

6. samm ehk viimane
Kontrollime, kas kahefaktoriline autentimine töötab SLL VPN-i puhul:

Avage 2FA (kahefaktoriline autentimine ASA SSL VPN-i jaoks)
Voila! Cisco AnyConnect VPN Clienti kaudu ühenduse loomisel küsitakse teilt ka teist, ühekordset parooli.

Loodan, et see artikkel aitab kedagi ja annab kellelegi mõtlemisainet selle kasutamise üle, tasuta OTP-server muude ülesannete jaoks. Soovi korral jagage kommentaarides.

Allikas: www.habr.com

Lisa kommentaar