Siirry kohtaan 2FA (kaksivaiheinen todennus ASA SSL VPN:lle)

Tarve tarjota etäkäyttöä yritysympäristöön tulee esiin yhä useammin riippumatta siitä, tarvitsevatko käyttäjäsi tai kumppanisi pääsyä organisaatiosi tiettyyn palvelimeen.

Useimmat yritykset käyttävät näihin tarkoituksiin VPN-tekniikkaa, joka on osoittautunut luotettavasti suojatuksi tavaksi tarjota pääsy organisaation paikallisiin resursseihin.

Yritykseni ei ollut poikkeus, ja me, kuten monet muut, käytämme tätä tekniikkaa. Ja kuten monet muut, käytämme Cisco ASA 55xx:ää etäkäyttöyhdyskäytävänä.

Kun etäkäyttäjien määrä kasvaa, valtuustietojen myöntämismenettelyä on yksinkertaistettava. Mutta samalla tämä on tehtävä turvallisuudesta tinkimättä.

Löysimme itsellemme ratkaisun käyttämällä kaksivaiheista todennusta yhteyden muodostamiseen Cisco SSL VPN:n kautta kertaluonteisilla salasanoilla. Ja tässä julkaisussa kerrotaan, kuinka tällainen ratkaisu järjestetään mahdollisimman vähän aikaa ja tarvittavista ohjelmistoista ilman kustannuksia (edellyttäen, että infrastruktuurissasi on jo Cisco ASA).

Markkinat ovat täynnä laatikollisia ratkaisuja kertakäyttöisten salasanojen luomiseen, samalla kun ne tarjoavat monia vaihtoehtoja niiden hankkimiseen, olipa kyseessä sitten salasanan lähettäminen tekstiviestillä tai tokenien käyttäminen sekä laitteistolla että ohjelmistolla (esimerkiksi matkapuhelimella). Mutta halu säästää rahaa ja halu säästää rahaa työnantajalleni, nykyisessä kriisissä, pakotti minut löytämään ilmaisen tavan toteuttaa palvelu kertakäyttöisten salasanojen luomiseen. Joka, vaikka se on ilmainen, ei ole paljon huonompi kuin kaupalliset ratkaisut (tässä meidän pitäisi tehdä varaus ja huomioida, että tällä tuotteella on myös kaupallinen versio, mutta sovimme, että kustannukset rahassa ovat nolla).

Joten me tarvitsemme:

- Linux-kuva sisäänrakennetulla työkalusarjalla - multiOTP, FreeRADIUS ja nginx, palvelimelle pääsyä varten webin kautta (http://download.multiotp.net/ - Käytin VMwarelle valmiita otoksia)
— Active Directory Server
- Itse Cisco ASA (mukavuuden vuoksi käytän ASDM:ää)
— Mikä tahansa ohjelmistotunnus, joka tukee TOTP-mekanismia (käyttää esimerkiksi Google Authenticatoria, mutta sama FreeOTP toimii)

En mene yksityiskohtiin siitä, miten kuva etenee. Tämän seurauksena saat Debian Linuxin, jossa on jo asennettu multiOTP ja FreeRADIUS, määritetty toimimaan yhdessä, ja verkkokäyttöliittymän OTP:n hallintaa varten.

Vaihe 1. Käynnistämme järjestelmän ja määritämme sen verkkoasi varten
Oletusarvoisesti järjestelmässä on pääjuuren valtuustiedot. Luulen, että kaikki arvasivat, että olisi hyvä idea vaihtaa pääkäyttäjän salasana ensimmäisen kirjautumisen jälkeen. Sinun on myös muutettava verkkoasetuksia (oletusarvo on '192.168.1.44' ja yhdyskäytävä '192.168.1.1'). Tämän jälkeen voit käynnistää järjestelmän uudelleen.

Luodaan käyttäjä Active Directoryyn OTP, salasanalla MySuperPassword.

Vaihe 2. Määritä yhteys ja tuo Active Directory -käyttäjät
Tätä varten tarvitsemme pääsyn konsoliin ja suoraan tiedostoon multiotp.php, jonka avulla määritämme yhteysasetukset Active Directoryyn.

Siirry hakemistoon /usr/local/bin/multiotp/ ja suorita seuraavat komennot vuorotellen:

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

Määrittää, tarvitaanko ylimääräinen (pysyvä) nasta, kun syötät kertakoodin (0 vai 1)

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

Määrittää, tarvitaanko verkkotunnuksen salasanaa kertakäyttöisen PIN-koodin syöttämiseen (0 tai 1)

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

LDAP-palvelimen tyyppi ilmoitetaan (0 = tavallinen LDAP-palvelin, tässä tapauksessa 1 = Active Directory)

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

Ilmaisee, missä muodossa käyttäjätunnus tulee esittää (tämä arvo näyttää vain nimen ilman verkkotunnusta)

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

Sama asia, vain ryhmälle

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

Määrittää menetelmän, jolla määritetään, kuuluuko käyttäjä ryhmään

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

Pitäisikö minun käyttää suojattua yhteyttä LDAP-palvelimeen (tietenkin - kyllä!)

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

Portti yhteyden muodostamista varten LDAP-palvelimeen

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

Active Directory -palvelimesi osoite

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

Osoitamme, mistä aloittaa käyttäjien haku verkkotunnuksessa

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

Määritä käyttäjä, jolla on hakuoikeudet Active Directoryssa

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

Määritä käyttäjän salasana muodostaaksesi yhteyden Active Directoryyn

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

Aikakatkaisun asettaminen Active Directoryyn yhteyden muodostamiselle

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

Asetamme aikarajan käyttäjien tuontitoiminnolle

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

Aktivoidaan Active Directory -yhteysmääritykset

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

Tuomme käyttäjiä Active Directorysta

Vaihe 3. Luo tunnukselle QR-koodi
Kaikki täällä on erittäin yksinkertaista. Avaa selaimessa OTP-palvelimen verkkoliittymä, kirjaudu sisään (älä unohda vaihtaa järjestelmänvalvojan oletussalasanaa!) ja napsauta "Tulosta" -painiketta:

Siirry kohtaan 2FA (kaksivaiheinen todennus ASA SSL VPN:lle)
Tämän toiminnon tuloksena on sivu, joka sisältää kaksi QR-koodia. Jätämme rohkeasti huomioimatta niistä ensimmäisen (huolimatta houkuttelevasta kirjoituksesta Google Authenticator / Authenticator / 2 Steps Authenticator), ja skannaamme jälleen rohkeasti toisen koodin puhelimen ohjelmistotunnukseksi:

Siirry kohtaan 2FA (kaksivaiheinen todennus ASA SSL VPN:lle)
(kyllä, spoilin QR-koodin tarkoituksella tehdäkseni siitä lukukelvottoman).

Kun olet suorittanut nämä toimet, sovellukseesi alkaa luoda kuusinumeroinen salasana XNUMX sekunnin välein.

Voit olla varma, että voit tarkistaa sen samasta käyttöliittymästä:

Siirry kohtaan 2FA (kaksivaiheinen todennus ASA SSL VPN:lle)
Syötä käyttäjätunnuksesi ja kertaluonteinen salasana puhelimesi sovelluksesta. Saitko positiivisen vastauksen? Joten mennään eteenpäin.

Vaihe 4. FreeRADIUS-toiminnan lisämääritys ja testaus
Kuten edellä mainitsin, multiOTP on jo määritetty toimimaan FreeRADIUS:n kanssa, jäljellä on vain suorittaa testit ja lisätä tietoja VPN-yhdyskäytävästämme FreeRADIUS-määritystiedostoon.

Palaamme palvelinkonsoliin, hakemistoon /usr/local/bin/multiotp/, tulla sisään:

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

Sisältää tarkemman kirjauksen.

FreeRADIUS-asiakkaiden asetustiedostossa (/etc/freeradius/clinets.conf) kommentoi kaikki aiheeseen liittyvät rivit localhost ja lisää kaksi merkintää:

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

-kokeeseen

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

- VPN-yhdyskäytävällemme.

Käynnistä FreeRADIUS uudelleen ja yritä kirjautua sisään:

radtest username 100110 localhost 1812 testing321

missä käyttäjätunnus = käyttäjätunnus, 100110 = puhelimen sovelluksen meille antama salasana, localhost = RADIUS-palvelimen osoite, 1812 — RADIUS-palvelinportti, testing321 — RADIUS-palvelimen asiakassalasana (jonka määritimme kokoonpanossa).

Tämän komennon tulos tulostetaan suunnilleen seuraavasti:

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

Nyt meidän on varmistettava, että käyttäjä on todennettu onnistuneesti. Tätä varten tarkastelemme itse multiotp-lokia:

tail /var/log/multiotp/multiotp.log

Ja jos viimeinen merkintä 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

Sitten kaikki meni hyvin ja voimme suorittaa loppuun

Vaihe 5: Määritä Cisco ASA
Sovitaan, että meillä on jo määritetty ryhmä ja käytännöt pääsyä varten SLL VPN:n kautta, määritettynä yhdessä Active Directoryn kanssa, ja meidän on lisättävä tähän profiiliin kaksivaiheinen todennus.

1. Lisää uusi AAA-palvelinryhmä:

Siirry kohtaan 2FA (kaksivaiheinen todennus ASA SSL VPN:lle)
2. Lisää multiOTP-palvelimemme ryhmään:

Siirry kohtaan 2FA (kaksivaiheinen todennus ASA SSL VPN:lle)
3. Sääntö yhteysprofiili, asettamalla Active Directory -palvelinryhmän päätodennuspalvelimeksi:

Siirry kohtaan 2FA (kaksivaiheinen todennus ASA SSL VPN:lle)
4. Välilehdessä Lisäasetukset -> Todennus Valitsemme myös Active Directory -palvelinryhmän:

Siirry kohtaan 2FA (kaksivaiheinen todennus ASA SSL VPN:lle)
5. Välilehdessä Lisäasetukset -> Toissijainen todennus, valitse luotu palvelinryhmä, johon multiOTP-palvelin on rekisteröity. Huomaa, että istunnon käyttäjänimi on peritty ensisijaisesta AAA-palvelinryhmästä:

Siirry kohtaan 2FA (kaksivaiheinen todennus ASA SSL VPN:lle)
Ota asetukset käyttöön ja

Vaihe 6, eli viimeinen
Katsotaan, toimiiko kaksivaiheinen todennus SLL VPN:lle:

Siirry kohtaan 2FA (kaksivaiheinen todennus ASA SSL VPN:lle)
Voila! Kun muodostat yhteyden Cisco AnyConnect VPN Clientin kautta, sinulta kysytään myös toista, kertakäyttöistä salasanaa.

Toivon, että tämä artikkeli auttaa jotakuta ja antaa jollekin ajattelemisen aihetta tämän käytön suhteen, ilmaiseksi OTP-palvelin muihin tehtäviin. Jaa halutessasi kommenteissa.

Lähde: will.com

Lisää kommentti