Gaan na 2FA (Twee-faktor-verifikasie vir ASA SSL VPN)

Die behoefte om afstandtoegang tot 'n korporatiewe omgewing te verskaf ontstaan ​​al hoe meer gereeld, of dit nou jou gebruikers of vennote is wat toegang tot 'n spesifieke bediener in jou organisasie benodig.

Vir hierdie doeleindes gebruik die meeste maatskappye VPN-tegnologie, wat homself bewys het as 'n veilige manier om toegang tot die organisasie se plaaslike hulpbronne te verskaf.

My maatskappy is geen uitsondering nie, en ons, soos baie ander, gebruik hierdie tegnologie. En, soos baie ander, gebruik ons ​​Cisco ASA 55xx as 'n afstandtoegangspoort.

Met 'n toename in die aantal afgeleë gebruikers, is daar 'n behoefte om die prosedure vir die uitreiking van geloofsbriewe te vergemaklik. Maar dit moet terselfdertyd gedoen word sonder om veiligheid in te boet.

Vir onsself het ons 'n oplossing gevind deur twee-faktor-verifikasie te gebruik om via Cisco SSL VPN te koppel, met behulp van eenmalige wagwoorde. En hierdie publikasie sal jou vertel hoe om so 'n oplossing te organiseer met minimale tyd en geen koste vir die nodige sagteware (mits jy reeds Cisco ASA in jou infrastruktuur het).

Die mark is propvol boksoplossings vir die generering van eenmalige wagwoorde, terwyl dit baie opsies bied om dit te bekom, of dit nou is om 'n wagwoord per SMS te stuur of tokens te gebruik, beide hardeware en sagteware (byvoorbeeld op 'n selfoon). Maar die lus vir spaargeld en die begeerte om geld vir my werkgewer te spaar, in die huidige krisis, het my 'n gratis manier laat vind om 'n diens te implementeer om eenmalige wagwoorde te genereer. Wat, ten spyte daarvan dat dit gratis is, nie veel minderwaardig is as kommersiële oplossings nie (hier moet kennis geneem word dat hierdie produk ook 'n kommersiële weergawe het, maar ons het ooreengekom dat die koste, in terme van geld, nul sal wees).

Dus, ons sal nodig hê:

- 'n Linux-prent met 'n ingeboude stel gereedskap - multiOTP, FreeRADIUS en nginx, vir toegang tot die bediener via die web (http://download.multiotp.net/ - Ek het 'n klaargemaakte prent vir VMware gebruik)
- Active Directory Server
- Eintlik Cisco ASA (ek gebruik vir gerief ASDM)
- Enige sagteware-token wat die TOTP-meganisme ondersteun (ek gebruik byvoorbeeld Google Authenticator, maar dieselfde FreeOTP sal doen)

Ek gaan nie in op die besonderhede van die ontvouing van die beeld nie. As gevolg hiervan, sal jy Debian Linux kry met multiOTP en FreeRADIUS reeds geïnstalleer, gekonfigureer om saam te werk en 'n webkoppelvlak vir OTP-administrasie.

Stap 1. Ons inisieer die stelsel en konfigureer dit vir ons netwerk
By verstek kom die stelsel met wortelwortelbewyse. Ek dink almal het geraai dat dit lekker sou wees om die wagwoord van die wortelgebruiker te verander na die eerste aanmelding. Jy moet ook die netwerkinstellings verander (die verstek is '192.168.1.44' met die poort '192.168.1.1'). Daarna kan u die stelsel herlaai.

Skep 'n gebruiker in Active Directory OTP, met wagwoord MySuperPassword.

Stap 2. Stel die verbinding op en voer Active Directory-gebruikers in
Om dit te doen, het ons toegang tot die konsole nodig, en direk die lêer multiotp.php, waarmee ons die instellings sal konfigureer om aan Active Directory te koppel.

Gaan na die gids /usr/local/bin/multiotp/ en voer die volgende opdragte een vir een uit:

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

Bepaal of 'n bykomende (permanente) pen vereis word wanneer 'n eenmalige pen (0 of 1) ingevoer word

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

Bepaal of 'n domeinwagwoord vereis word wanneer 'n eenmalige pen (0 of 1) ingevoer word

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

Die tipe LDAP-bediener word gespesifiseer (0 = normale LDAP-bediener, in ons geval 1 = Active Directory)

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

Spesifiseer die formaat waarin die gebruikernaam verteenwoordig moet word (hierdie waarde sal slegs die gebruikernaam uitstuur, sonder die domein)

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

Dieselfde, net vir die groep

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

Spesifiseer die metode om te bepaal of 'n gebruiker aan 'n groep behoort

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

Of u 'n veilige verbinding met die LDAP-bediener moet gebruik (ja, natuurlik!)

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

Poort om aan die LDAP-bediener te koppel

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

Adres van jou Active Directory-bediener

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

Spesifiseer waar om na gebruikers in die domein te begin soek

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

Spesifiseer 'n gebruiker wat soekregte in Active Directory het

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

Spesifiseer die gebruikerwagwoord om aan Active Directory te koppel

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

Stel 'n uitteltyd in om aan Active Directory te koppel

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

Stel 'n tydsbeperking vir die gebruikerinvoerbewerking

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

Aktiveer Active Directory-verbindingkonfigurasie

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

Ons voer gebruikers in vanaf Active Directory

Stap 3. Genereer 'n QR-kode vir die teken
Alles is uiters eenvoudig hier. Maak die webkoppelvlak van die OTP-bediener in die blaaier oop, meld aan (moenie vergeet om die verstekwagwoord vir die admin te verander nie!), en klik op die "Druk"-knoppie:

Gaan na 2FA (Twee-faktor-verifikasie vir ASA SSL VPN)
Die resultaat van hierdie aksie sal 'n bladsy wees wat twee QR-kodes bevat. Ons ignoreer die eerste van hulle met vrymoedigheid (ten spyte van die aantreklike inskripsie Google Authenticator / Authenticator / 2 Steps Authenticator), en skandeer die tweede kode weer met vrymoedigheid in 'n sagtewaretoken op die telefoon:

Gaan na 2FA (Twee-faktor-verifikasie vir ASA SSL VPN)
(ja, ek het die QR-kode doelbewus deurmekaar gemaak om dit onleesbaar te maak).

Nadat u hierdie aksies in u toepassing uitgevoer het, sal 'n ses-syfer wagwoord elke dertig sekondes gegenereer word.

Vir getrouheid kan u in dieselfde koppelvlak nagaan:

Gaan na 2FA (Twee-faktor-verifikasie vir ASA SSL VPN)
Voer die gebruikersnaam en eenmalige wagwoord in vanaf die toepassing op die telefoon. Het jy 'n positiewe reaksie? So ons gaan aan.

Stap 4. Konfigureer en toets FreeRADIUS
Soos ek hierbo genoem het, is multiOTP reeds gekonfigureer om met FreeRADIUS te werk, dit bly om toetse uit te voer en inligting oor ons VPN-poort by die FreeRADIUS-konfigurasielêer by te voeg.

Ons keer terug na die bedienerkonsole, na die gids /usr/local/bin/multiotp/, voer in:

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

Insluitend dus meer gedetailleerde logging.

In die FreeRADIUS kliënt konfigurasie lêer (/etc/freeradius/clinets.conf) lewer kommentaar op alle reëls wat verband hou met localhost en voeg twee inskrywings by:

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

- vir die toets

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

- vir ons VPN-poort.

Herbegin FreeRADIUS en probeer om aan te meld:

radtest username 100110 localhost 1812 testing321

waar Gebruikersnaam = gebruikersnaam, 100110 = wagwoord aan ons gegee deur die toepassing op die telefoon, localhost = RADIUS-bedieneradres, 1812 — RADIUS-bedienerpoort, testing321 - wagwoord van die RADIUS-bedienerkliënt (wat ons in die konfigurasie gespesifiseer het).

Die uitvoer van hierdie opdrag sal iets soos die volgende wees:

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

Nou moet ons seker maak dat die gebruiker suksesvol geverifieer is. Om dit te doen, sal ons na die logboek van multiotp self kyk:

tail /var/log/multiotp/multiotp.log

En as die laaste inskrywing daar is:

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

Toe het alles goed gegaan, en ons kan presteer

Stap 5 Konfigureer die Cisco ASA
Kom ons stem saam dat ons reeds 'n gekonfigureerde groep en beleide het vir toegang via SLL VPN, gekonfigureer in samewerking met Active Directory, en ons moet twee-faktor-verifikasie vir hierdie profiel byvoeg.

1. Voeg 'n nuwe AAA-bedienergroep by:

Gaan na 2FA (Twee-faktor-verifikasie vir ASA SSL VPN)
2. Voeg ons multiOTP-bediener by die groep:

Gaan na 2FA (Twee-faktor-verifikasie vir ASA SSL VPN)
3. Reël verbinding profiel, stel die groep Active Directory-bedieners as die primêre stawingbediener:

Gaan na 2FA (Twee-faktor-verifikasie vir ASA SSL VPN)
4. In die oortjie Gevorderd -> Verifikasie kies ook 'n groep Active Directory-bedieners:

Gaan na 2FA (Twee-faktor-verifikasie vir ASA SSL VPN)
5. In die oortjie Gevorderd -> Sekondêr verifikasie kies die geskepde bedienergroep waarin die multiOTP-bediener geregistreer is. Let daarop dat die Sessie-gebruikersnaam van die primêre AAA-bedienergroep geërf word:

Gaan na 2FA (Twee-faktor-verifikasie vir ASA SSL VPN)
Pas instellings toe en

Stap 6 is die laaste een
Ons kyk of twee-faktor-verifikasie vir SLL VPN vir ons werk:

Gaan na 2FA (Twee-faktor-verifikasie vir ASA SSL VPN)
Voila! Wanneer u via die Cisco AnyConnect VPN-kliënt koppel, sal 'n tweede eenmalige wagwoord ook aangevra word.

Ek hoop dat hierdie artikel iemand sal help, en dat dit iemand stof tot nadenke sal gee, hoe jy dit kan gebruik, gratis OTP-bediener, vir ander take. Deel in die kommentaar as jy wil.

Bron: will.com

Voeg 'n opmerking