Liitu 2FA-ga (Kahefaktoriline autentimine ASA SSL VPN-i jaoks)

Kuna vajadus anda kaugjuurdepÀÀs ettevÔtte keskkonnale suureneb jÀrjest enam, olenemata sellest, kas tegemist on oma kasutajate vÔi partneritega, kellele on vajalik juurdepÀÀs mÔnele teie organisatsiooni serverile.

Sel eesmÀrgil kasutab enamik ettevÔtteid VPN-tehnoloogiat, mis on end tÔestanud usaldusvÀÀrse ja turvalise viisina juurdepÀÀsu andmiseks organisatsiooni kohalikele ressurssidele.

Ka minu ettevĂ”te ei ole erand ja me, nagu paljud teisedki, kasutame seda tehnoloogiat. Ja nagu paljud teised, kasutame kaugjuurdepÀÀsu vĂ€ravana — Cisco ASA 55xx.

Kaugkasutajate arvu suurenedes on vajadus lihtsustada kasutajatunnuste vÀljastamise protseduuri. Kuid samas tuleb seda teha ohutuse arvelt loobumata.

Oleme leidnud lahenduse, kasutades Cisco SSL-iga ĂŒhenduse loomiseks kahefaktorilist autentimist. VPN, kasutades ĂŒhekordseid paroole. See artikkel selgitab, kuidas sellist lahendust organiseerida minimaalse ajakulu ja nullkuludega vajaliku tarkvara osas (eeldusel, et Cisco ASA on teie infrastruktuuris juba olemas).

Turg on tĂ€is karbiga lahendusi ĂŒhekordsete paroolide genereerimiseks, pakkudes mitmeid variante nende saamiseks, olgu need siis paroolide saatmine SMS-iga vĂ”i tokenite kasutamine, olgu need siis fĂŒĂŒsilised vĂ”i tarkvaralised (nĂ€iteks mobiiltelefonis). Kuid soov sÀÀsta raha oma tööandja jaoks ja vajadus raha kokku hoida praeguse kriisi tingimustes sundis mind leidma tasuta viisi ĂŒhekordsete paroolide genereerimise teenuse rakendamiseks. See teenus, hoolimata oma tasuta olemisest, ei jÀÀ palju alla kaubanduslikele lahendustele (siinkohal peab mainima, et tootel on ka kaubanduslik versioon, kuid olgem kokku leppinud, et meie kulud rahas jÀÀvad nulliks).

Nii et meil on vaja:

— Linuxi pilti koos sisseehitatud tööriistade komplektiga — multiOTP, FreeRADIUS ja nginx, serverisse veebipĂ”hiseks juurdepÀÀsuks (http://download.multiotp.net/ — kasutasin VMware jaoks valmis pilti)
— Active Directory server
— Cisco ASA is yours (I use ASDM for convenience)
— Any software token that supports the TOTP mechanism (for example, I use Google Authenticator, but FreeOTP works as well)

I won't go into details about deploying the image. In the end, you will get Debian Linux with multiOTP and FreeRADIUS already installed, configured to work together, and a web interface for administering OTP.

Step 1. Initialize the system and configure it for your network
By default, the system comes with credentials root root. I think everyone guessed that it would be a good idea to change the root user's password after the first login. You should also update network settings (by default, it’s ‘192.168.1.44’ with the gateway ‘192.168.1.1’). After that, you can reboot the system.

Let's create a user in Active Directory otp, with the password MySuperPassword.

Step 2. Configure the connection and import Active Directory users
For this, we will need access to the console, and specifically the file multiotp.php, which we will use to configure the connection parameters to Active Directory.

Navigate to the directory /usr/local/bin/multiotp/ and execute the following commands one by one:

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

MÀÀrab, kas ĂŒhekordse pin-koodi sisestamisel on vajalik tĂ€iendava (pĂŒsiva) pin-koodi olemasolu (0 vĂ”i 1)

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

MÀÀrab, kas domeenipara sisestamine on vajalik ĂŒhekordse pin-koodi sisestamisel (0 vĂ”i 1)

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

MÀÀrab LDAP-serveri tĂŒĂŒbi (0 = tavaline LDAP-server, meie puhul 1 = Active Directory)

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

NÀitab, millises vormingus esitada kasutajanimi (see vÀÀrtus kuvab ainult nime, ilma domeenita)

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

See on sama, kuid grupi jaoks

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

MÀÀrab, kuidas mÀÀrata kasutaja kuuluvus gruppi

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

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

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

Port LDAP-serveriga ĂŒhendamiseks

./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 Directory otsimiseks

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

Kasutame kasutaja parooli, et ĂŒhendada Active Directoryga

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

Seame Active Directoryga ĂŒhenduse ajakulu

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

Seame kasutajate impordi operatsiooni ajakulu

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

Aktiveerime Active Directoryga ĂŒhenduse konfigureerimise

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

Teostame kasutajate impordi Active Directoryst

Samm 3. Genereerime QR-koodi tokeni jaoks
Siin on kÔik ÀÀrmiselt lihtne. Avame OTP-serveri veebiliidese brauseris, logime sisse (Àrge unustage muuta vaikimisi adminni parooli!) ja vajutame nuppu 'Print':

Liitu 2FA-ga (Kahefaktoriline autentimine ASA SSL VPN-i jaoks)
Selle tegevuse tulemuseks on leht, millel on kaks QR-koodi. Me ignoreerime julgelt esimest (hoolimata atraktiivsest kirjutisest Google Authenticator / Authenticator / 2 Steps Authenticator) ja jÀlle julgelt skanimeerime teise koodi oma telefonis oleva tarkvara tokenisse:

Liitu 2FA-ga (Kahefaktoriline autentimine ASA SSL VPN-i jaoks)
(jah, ma rikkusin QR-koodi tahtlikult, et muuta see loetamatuks).

PĂ€rast nende toimingute sooritamist genereeritakse teie rakenduses iga kolmekĂŒmne sekundi tagant kuue numbri parool.

Kindluse mĂ”ttes vĂ”ib samas liideses teha ĂŒlevaate:

Liitu 2FA-ga (Kahefaktoriline autentimine ASA SSL VPN-i jaoks)
Sisestage kasutajanimi ja ĂŒhekordne parool telefonirakendusest. Kas sai positiivse vastuse? Siis liikume edasi.

Samm 4. Kohandame ja testime FreeRADIUS'i tööd
Nagu eespool mainitud — multiOTP on juba seadistatud FreeRADIUS'iga töötamiseks, jÀÀb ĂŒle vaid testid teha ja FreeRADIUS'i konfiguratsioonifaili lisada meie VPN-sĂ”lme info.

Tagasi serveri konsooli, kausta /usr/local/bin/multiotp/, sisestage:

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

SeelÀbi aktiveerides detailsema logimise.

FreeRADIUS'i kliendi konfiguratsioonifailis (/etc/freeradius/clinets.conf) kommenteerime vÀlja kÔik read, mis on seotud localhost ja lisame 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-sĂ”lme jaoks.

TaaskÀivitame FreeRADIUS'i ja proovime autentimist:

radtest username 100110 localhost 1812 testing321

kus username = kasutajanimi, 100110 = parool, mille rakendus meile andis, localhost = RADIUS-serveri aadress, 1812 — RADIUS-serveri port, testing321 — RADIUS-serveri kliendi parool (mille me konfiguratsioonifailis mÀÀrasime).

Selle kÀsu tulemus seisneb umbes jÀrgmise sisu vÀljundis:

Saame KĂ€ivitame Access-Request id 44 aadressile 127.0.0.1 port 1812
        Kasutaja-Nimi = "username"
        Kasutaja-Parool = "100110"
        NAS-IP-Aadress = 127.0.1.1
        NAS-Port = 1812
        Teate-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept paket hostilt 127.0.0.1 port 1812, id=44, pikkus=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 sisse edukalt aadressilt 127.0.0.1
2016-09-01 08:58:17     debug           Debug   Debug: 0 OK: Token aktsepteeritud aadressilt 127.0.0.1

Siis kÔik lÀks hÀsti ja me saame teostada

Samm 5. Cisco ASA seadistamine
Oletame, et meil on juba seadistatud grupp ja poliitikad SLL VPN-iga sisselogimiseks, seostatuna Active Directoryga, ning peame selle profiili jaoks lisama kahefaktorilise autentimise.

1. Lisame uue grupi serverite AAA:

Liitu 2FA-ga (Kahefaktoriline autentimine ASA SSL VPN-i jaoks)
2. Lisame gruppi meie multiOTP serveri:

Liitu 2FA-ga (Kahefaktoriline autentimine ASA SSL VPN-i jaoks)
3. Muudame ĂŒhendusprofiili, seades autentimise pĂ”hiserveriks Active Directory serverite grupi:

Liitu 2FA-ga (Kahefaktoriline autentimine ASA SSL VPN-i jaoks)
4. Vahekaardil Advanced -> Authentication valime samuti Active Directory serverite grupi:

Liitu 2FA-ga (Kahefaktoriline autentimine ASA SSL VPN-i jaoks)
5. Vahekaardil Advanced -> Secondary valime autentimise jaoks loodud serveri grupi, kus on mÀÀratud multiOTP-server. MÀrgime, et sessiooni kasutajanimi pÀrineb pÔhigrupist AAA:

Liitu 2FA-ga (Kahefaktoriline autentimine ASA SSL VPN-i jaoks)
Rakendame seaded ja

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

Liitu 2FA-ga (Kahefaktoriline autentimine ASA SSL VPN-i jaoks)
VoilĂ ! Cisco AnyConnect VPN kliendi kasutamisel kĂŒsitakse ka teist, ĂŒhekordset parooli.

Loodan, et see artikkel aitab kedagi ning pakub mĂ”tteainet, kuidas seda kasutada, tasuta OTP-serverit teiste ĂŒlesannete tĂ€itmiseks. Jagage kommentaarides, kui soovite.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster