Eikite į 2FA (dviejų veiksnių autentifikavimas ASA SSL VPN)

Poreikis suteikti nuotolinę prieigą prie įmonės aplinkos iškyla vis dažniau, nesvarbu, ar jūsų vartotojams ar partneriams reikia prieigos prie konkretaus jūsų organizacijos serverio.

Šiems tikslams dauguma įmonių naudoja VPN technologiją, kuri pasitvirtino kaip patikimai apsaugotas būdas suteikti prieigą prie organizacijos vietinių išteklių.

Mano įmonė nebuvo išimtis, ir mes, kaip ir daugelis kitų, naudojame šią technologiją. Ir, kaip ir daugelis kitų, kaip nuotolinės prieigos šliuzą naudojame Cisco ASA 55xx.

Didėjant nuotolinių vartotojų skaičiui, reikia supaprastinti kredencialų išdavimo procedūrą. Tačiau tuo pat metu tai turi būti daroma nepakenkiant saugumui.

Mes patys radome sprendimą, naudojant dviejų veiksnių autentifikavimą prisijungiant per Cisco SSL VPN, naudojant vienkartinius slaptažodžius. Ir šis leidinys jums pasakys, kaip suorganizuoti tokį sprendimą su minimaliu laiko ir nulio sąnaudomis reikalingai programinei įrangai (su sąlyga, kad jūsų infrastruktūroje jau yra Cisco ASA).

Rinkoje gausu sprendimų, skirtų vienkartiniams slaptažodžiams generuoti, o kartu siūloma daug galimybių juos gauti, nesvarbu, ar tai būtų slaptažodžio siuntimas SMS žinute ar žetonų naudojimas, tiek aparatinė, tiek programinė įranga (pavyzdžiui, mobiliajame telefone). Tačiau noras sutaupyti ir noras sutaupyti savo darbdaviui, esant dabartinei krizei, privertė mane rasti nemokamą būdą įdiegti vienkartinių slaptažodžių generavimo paslaugą. Kuris, nors ir nemokamas, niekuo nenusileidžia komerciniams sprendimams (čia reikėtų rezervuotis, atkreipiant dėmesį, kad šis produktas turi ir komercinę versiją, tačiau sutarėme, kad mūsų kaštai pinigais bus nuliniai).

Taigi, mes turime:

- „Linux“ vaizdas su integruotu įrankių rinkiniu - multiOTP, FreeRADIUS ir nginx, skirtas prieigai prie serverio per žiniatinklį (http://download.multiotp.net/ - naudojau paruoštą VMware vaizdą)
— Active Directory serveris
- pati Cisco ASA (patogumui naudoju ASDM)
— Bet koks programinės įrangos prieigos raktas, palaikantis TOTP mechanizmą (aš, pavyzdžiui, naudoju Google Authenticator, bet tiks tas pats FreeOTP)

Nesileisiu į detales, kaip susiklosto vaizdas. Dėl to gausite Debian Linux su jau įdiegta multiOTP ir FreeRADIUS, sukonfigūruota dirbti kartu, ir žiniatinklio sąsają OTP administravimui.

1 veiksmas. Mes inicijuojame sistemą ir sukonfigūruojame ją jūsų tinklui
Pagal numatytuosius nustatymus sistemoje yra šakniniai kredencialai. Manau, visi atspėjo, kad po pirmo prisijungimo būtų gerai pakeisti root vartotojo slaptažodį. Taip pat turite pakeisti tinklo nustatymus (pagal numatytuosius nustatymus jis yra „192.168.1.44“, o šliuzas – „192.168.1.1“). Po to galite iš naujo paleisti sistemą.

Sukurkime vartotoją „Active Directory“. OTP, su slaptažodžiu MySuperPassword.

2 veiksmas. Nustatykite ryšį ir importuokite „Active Directory“ vartotojus
Norėdami tai padaryti, mums reikia prieigos prie konsolės ir tiesiai prie failo multiotp.php, naudodami sukonfigūruosime prisijungimo prie „Active Directory“ nustatymus.

Eikite į katalogą /usr/local/bin/multiotp/ ir paeiliui vykdykite šias komandas:

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

Nustato, ar reikia papildomo (nuolatinio) kaiščio įvedant vienkartinį PIN kodą (0 arba 1)

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

Nustato, ar reikalingas domeno slaptažodis įvedant vienkartinį PIN kodą (0 arba 1)

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

Nurodytas LDAP serverio tipas (0 = įprastas LDAP serveris, mūsų atveju 1 = Active Directory)

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

Nurodomas vartotojo vardo pateikimo formatas (ši reikšmė rodo tik vardą, be domeno)

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

Tas pats, tik grupei

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

Nurodomas metodas, leidžiantis nustatyti, ar vartotojas priklauso grupei

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

Ar turėčiau naudoti saugų ryšį su LDAP serveriu (žinoma, taip!)

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

Prievadas, skirtas prisijungti prie LDAP serverio

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

Jūsų Active Directory serverio adresas

./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"

Mes nurodome, kur pradėti domeno vartotojų paiešką

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

Nurodykite vartotoją, turintį paieškos teises Active Directory

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

Nurodykite vartotojo slaptažodį, kad prisijungtumėte prie „Active Directory“.

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

Prisijungimo prie „Active Directory“ skirtojo laiko nustatymas

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

Nustatome vartotojo importo operacijos laiko limitą

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

Aktyvinama „Active Directory“ ryšio konfigūracija

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

Mes importuojame vartotojus iš Active Directory

3 veiksmas. Sugeneruokite žetono QR kodą
Viskas čia labai paprasta. Naršyklėje atidarykite OTP serverio žiniatinklio sąsają, prisijunkite (nepamirškite pakeisti numatytojo administratoriaus slaptažodžio!) ir spustelėkite mygtuką „Spausdinti“:

Eikite į 2FA (dviejų veiksnių autentifikavimas ASA SSL VPN)
Šio veiksmo rezultatas bus puslapis, kuriame yra du QR kodai. Pirmąjį iš jų drąsiai ignoruojame (nepaisant patrauklaus užrašo Google Authenticator / Authenticator / 2 Steps Authenticator), o antrąjį kodą vėl drąsiai nuskaitome į programinės įrangos prieigos raktą telefone:

Eikite į 2FA (dviejų veiksnių autentifikavimas ASA SSL VPN)
(taip, tyčia sugadinau QR kodą, kad jis būtų neįskaitomas).

Atlikus šiuos veiksmus, jūsų programoje kas trisdešimt sekundžių bus generuojamas šešių skaitmenų slaptažodis.

Norėdami įsitikinti, galite tai patikrinti toje pačioje sąsajoje:

Eikite į 2FA (dviejų veiksnių autentifikavimas ASA SSL VPN)
Įvesdami savo vartotojo vardą ir vienkartinį slaptažodį iš savo telefono programos. Ar gavote teigiamą atsakymą? Taigi eikime toliau.

4 veiksmas. Papildoma FreeRADIUS veikimo konfigūracija ir testavimas
Kaip minėjau aukščiau, multiOTP jau sukonfigūruotas dirbti su FreeRADIUS, belieka atlikti testus ir į FreeRADIUS konfigūracijos failą įtraukti informaciją apie mūsų VPN šliuzą.

Grįžtame į serverio konsolę, į katalogą /usr/local/bin/multiotp/, įveskite:

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

Įskaitant išsamesnį registravimą.

FreeRADIUS klientų konfigūracijos faile (/etc/freeradius/clinets.conf) pakomentuokite visas eilutes, susijusias su localhost ir pridėkite du įrašus:

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

- bandymui

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

– mūsų VPN šliuzui.

Iš naujo paleiskite FreeRADIUS ir pabandykite prisijungti:

radtest username 100110 localhost 1812 testing321

kur Nick = vartotojo vardas, 100110 = slaptažodis, kurį mums suteikė telefono programa, localhost = RADIUS serverio adresas, 1812 — RADIUS serverio prievadas, testing321 — RADIUS serverio kliento slaptažodis (kurį nurodėme konfigūracijoje).

Šios komandos rezultatas bus išvestas maždaug taip:

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

Dabar turime įsitikinti, kad vartotojas sėkmingai autentifikuotas. Norėdami tai padaryti, pažvelgsime į patį multiotp žurnalą:

tail /var/log/multiotp/multiotp.log

Ir jei paskutinis įrašas yra:

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

Tada viskas klostėsi gerai ir galime užbaigti

5 veiksmas: sukonfigūruokite „Cisco ASA“.
Sutikime, kad jau turime sukonfigūruotą grupę ir prieigos per SLL VPN strategijas, sukonfigūruotas kartu su „Active Directory“, ir šiam profiliui turime pridėti dviejų veiksnių autentifikavimą.

1. Pridėti naują AAA serverių grupę:

Eikite į 2FA (dviejų veiksnių autentifikavimas ASA SSL VPN)
2. Pridėkite mūsų multiOTP serverį prie grupės:

Eikite į 2FA (dviejų veiksnių autentifikavimas ASA SSL VPN)
3. Redaguojame ryšio profilis, nustatydami „Active Directory“ serverių grupę kaip pagrindinį autentifikavimo serverį:

Eikite į 2FA (dviejų veiksnių autentifikavimas ASA SSL VPN)
4. Skirtuke Išplėstinė -> Autentifikavimas Taip pat pasirenkame Active Directory serverių grupę:

Eikite į 2FA (dviejų veiksnių autentifikavimas ASA SSL VPN)
5. Skirtuke Išplėstinė -> Antrinė autentifikavimą, pasirinkite sukurtą serverių grupę, kurioje užregistruotas multiOTP serveris. Atminkite, kad seanso vartotojo vardas yra paveldėtas iš pirminės AAA serverių grupės:

Eikite į 2FA (dviejų veiksnių autentifikavimas ASA SSL VPN)
Taikykite nustatymus ir

6 veiksmas, dar žinomas kaip paskutinis
Patikrinkime, ar dviejų veiksnių autentifikavimas veikia SLL VPN:

Eikite į 2FA (dviejų veiksnių autentifikavimas ASA SSL VPN)
Voila! Kai prisijungiate per „Cisco AnyConnect VPN Client“, jūsų taip pat bus paprašyta įvesti antrą, vienkartinį slaptažodį.

Tikiuosi, kad šis straipsnis kam nors padės ir kažkam suteiks peno pagalvoti, kaip tai panaudoti, nemokamai OTP serveris, skirtas kitoms užduotims. Jei norite, pasidalinkite komentaruose.

Šaltinis: www.habr.com

Добавить комментарий