Shkoni te 2FA (Vërtetimi me dy faktorë për ASA SSL VPN)

Nevoja për të siguruar akses në distancë në një mjedis të korporatës po shfaqet gjithnjë e më shpesh, pavarësisht nëse janë përdoruesit apo partnerët tuaj që kanë nevojë për qasje në një server të caktuar në organizatën tuaj.

Për këto qëllime, shumica e kompanive përdorin teknologjinë VPN, e cila ka dëshmuar se është një mënyrë e mbrojtur në mënyrë të besueshme për të siguruar akses në burimet lokale të organizatës.

Kompania ime nuk ishte përjashtim, dhe ne, si shumë të tjerë, e përdorim këtë teknologji. Dhe, si shumë të tjerë, ne përdorim Cisco ASA 55xx si një portë aksesi në distancë.

Me rritjen e numrit të përdoruesve në distancë, ekziston nevoja për të thjeshtuar procedurën për lëshimin e kredencialeve. Por në të njëjtën kohë, kjo duhet të bëhet pa kompromentuar sigurinë.

Për veten tonë, gjetëm një zgjidhje në përdorimin e vërtetimit me dy faktorë për t'u lidhur me Cisco SSL VPN, duke përdorur fjalëkalime një herë. Dhe ky publikim do t'ju tregojë se si të organizoni një zgjidhje të tillë me kohë minimale dhe kosto zero për softuerin e nevojshëm (me kusht që tashmë të keni Cisco ASA në infrastrukturën tuaj).

Tregu është i mbushur me zgjidhje kuti për gjenerimin e fjalëkalimeve një herë, ndërsa ofron shumë opsione për marrjen e tyre, qoftë dërgimi i fjalëkalimit me SMS ose përdorimi i tokenave, si harduer ashtu edhe softuer (për shembull, në një telefon celular). Por dëshira për të kursyer para dhe dëshira për të kursyer para për punëdhënësin tim, në krizën aktuale, më detyroi të gjeja një mënyrë falas për të zbatuar një shërbim për gjenerimin e fjalëkalimeve një herë. E cila, megjithëse është e lirë, nuk është shumë inferiore ndaj zgjidhjeve komerciale (këtu duhet të bëjmë një rezervim, duke vënë në dukje se ky produkt ka edhe një version komercial, por ne ramë dakord që kostot tona, në para, të jenë zero).

Pra, do të na duhet:

- Një imazh Linux me një grup mjetesh të integruara - multiOTP, FreeRADIUS dhe nginx, për të hyrë në server përmes internetit (http://download.multiotp.net/ - Kam përdorur një imazh të gatshëm për VMware)
— Serveri i drejtorisë aktive
— Vetë Cisco ASA (për lehtësi, unë përdor ASDM)
— Çdo shenjë softueri që mbështet mekanizmin TOTP (unë, për shembull, përdor Google Authenticator, por i njëjti FreeOTP do të bëjë)

Nuk do të hyj në detaje se si shpaloset imazhi. Si rezultat, ju do të merrni Debian Linux me multiOTP dhe FreeRADIUS të instaluar tashmë, të konfiguruar për të punuar së bashku dhe një ndërfaqe ueb për administrimin e OTP.

Hapi 1. Ne inicojmë sistemin dhe e konfigurojmë atë për rrjetin tuaj
Si parazgjedhje, sistemi vjen me kredencialet rrënjësore. Unë mendoj se të gjithë menduan se do të ishte një ide e mirë të ndryshoni fjalëkalimin e përdoruesit rrënjë pas hyrjes së parë. Ju gjithashtu duhet të ndryshoni cilësimet e rrjetit (si parazgjedhje është '192.168.1.44' me portën '192.168.1.1'). Më pas mund të rindizni sistemin.

Le të krijojmë një përdorues në Active Directory OTP, me fjalëkalim MySuperPassword.

Hapi 2. Vendosni lidhjen dhe importoni përdoruesit e Active Directory
Për ta bërë këtë, ne kemi nevojë për qasje në tastierë dhe direkt në skedar multiotp.php, duke përdorur të cilin do të konfigurojmë cilësimet e lidhjes në Active Directory.

Shkoni te drejtoria /usr/local/bin/multiotp/ dhe ekzekutoni komandat e mëposhtme me radhë:

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

Përcakton nëse kërkohet një pin shtesë (i përhershëm) kur futni një pin një herë (0 ose 1)

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

Përcakton nëse kërkohet një fjalëkalim domeni kur futni një pin një herë (0 ose 1)

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

Tregohet lloji i serverit LDAP (0 = server i rregullt LDAP, në rastin tonë 1 = Active Directory)

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

Përcakton formatin në të cilin do të paraqitet emri i përdoruesit (kjo vlerë do të shfaqë vetëm emrin, pa domenin)

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

E njëjta gjë, vetëm për një grup

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

Përcakton një metodë për të përcaktuar nëse një përdorues i përket një grupi

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

A duhet të përdor një lidhje të sigurt me serverin LDAP (natyrisht, po!)

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

Porta për t'u lidhur me serverin LDAP

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

Adresa e serverit tuaj Active Directory

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

Ne tregojmë se ku të filloni kërkimin për përdoruesit në domen

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

Specifikoni një përdorues që ka të drejta kërkimi në Active Directory

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

Specifikoni fjalëkalimin e përdoruesit për t'u lidhur me Active Directory

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

Vendosja e afatit për t'u lidhur me Active Directory

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

Ne kemi vendosur një kufi kohor për operacionin e importimit të përdoruesit

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

Aktivizimi i konfigurimit të lidhjes së Active Directory

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

Ne importojmë përdorues nga Active Directory

Hapi 3. Gjeneroni një kod QR për shenjën
Gjithçka këtu është jashtëzakonisht e thjeshtë. Hapni ndërfaqen në internet të serverit OTP në shfletues, regjistrohuni (mos harroni të ndryshoni fjalëkalimin e paracaktuar për administratorin!) dhe klikoni në butonin "Printo":

Shkoni te 2FA (Vërtetimi me dy faktorë për ASA SSL VPN)
Rezultati i këtij veprimi do të jetë një faqe që përmban dy kode QR. Ne e injorojmë me guxim të parën prej tyre (megjithë mbishkrimin tërheqës Google Authenticator / Authenticator / 2 Steps Authenticator), dhe përsëri skanojmë me guxim kodin e dytë në një shenjë softueri në telefon:

Shkoni te 2FA (Vërtetimi me dy faktorë për ASA SSL VPN)
(po, e kam prishur qëllimisht kodin QR për ta bërë të palexueshëm).

Pas përfundimit të këtyre veprimeve, një fjalëkalim gjashtëshifror do të fillojë të gjenerohet në aplikacionin tuaj çdo tridhjetë sekonda.

Për t'u siguruar, mund ta kontrolloni në të njëjtën ndërfaqe:

Shkoni te 2FA (Vërtetimi me dy faktorë për ASA SSL VPN)
Duke futur emrin e përdoruesit dhe fjalëkalimin një herë nga aplikacioni në telefonin tuaj. A keni marrë një përgjigje pozitive? Kështu ne vazhdojmë.

Hapi 4. Konfigurimi dhe testimi shtesë i funksionimit FreeRADIUS
Siç e përmenda më lart, multiOTP tashmë është konfiguruar për të punuar me FreeRADIUS, gjithçka që mbetet është të ekzekutoni teste dhe të shtoni informacione rreth portës sonë VPN në skedarin e konfigurimit FreeRADIUS.

Ne kthehemi në tastierën e serverit, në drejtori /usr/local/bin/multiotp/, futni:

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

Përfshirë prerjet më të detajuara.

Në skedarin e konfigurimit të klientëve FreeRADIUS (/etc/freeradius/clinets.conf) komentoni të gjitha rreshtat që lidhen me localhost dhe shtoni dy hyrje:

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

- për provë

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

— për portën tonë VPN.

Rinisni FreeRADIUS dhe provoni të identifikoheni:

radtest username 100110 localhost 1812 testing321

ku Emri i përdoruesit = emri i përdoruesit, 100110 = fjalëkalimi që na është dhënë nga aplikacioni në telefon, localhost = Adresa e serverit RADIUS, 1812 — Porta e serverit RADIUS, testing321 — Fjalëkalimi i klientit të serverit RADIUS (të cilin e kemi specifikuar në konfigurim).

Rezultati i kësaj komande do të dalë afërsisht si më poshtë:

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

Tani duhet të sigurohemi që përdoruesi është vërtetuar me sukses. Për ta bërë këtë, ne do të shikojmë vetë regjistrin e multiotp:

tail /var/log/multiotp/multiotp.log

Dhe nëse hyrja e fundit ka:

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

Pastaj gjithçka shkoi mirë dhe ne mund ta përfundojmë

Hapi 5: Konfiguro Cisco ASA
Le të biem dakord që ne kemi tashmë një grup dhe politika të konfiguruara për akses nëpërmjet SLL VPN, të konfiguruara në lidhje me Active Directory, dhe ne duhet të shtojmë vërtetimin me dy faktorë për këtë profil.

1. Shtoni një grup të ri të serverëve AAA:

Shkoni te 2FA (Vërtetimi me dy faktorë për ASA SSL VPN)
2. Shtoni serverin tonë multiOTP në grup:

Shkoni te 2FA (Vërtetimi me dy faktorë për ASA SSL VPN)
3. Ne redaktojmë profilin e lidhjes, duke vendosur grupin e serverëve Active Directory si serverin kryesor të vërtetimit:

Shkoni te 2FA (Vërtetimi me dy faktorë për ASA SSL VPN)
4. Në skedën I avancuar -> Autentifikimi Ne gjithashtu zgjedhim grupin e serverëve Active Directory:

Shkoni te 2FA (Vërtetimi me dy faktorë për ASA SSL VPN)
5. Në skedën E avancuar -> E mesme autentifikimi, zgjidhni grupin e krijuar të serverëve në të cilin është regjistruar serveri multiOTP. Vini re se emri i përdoruesit të Sesionit është trashëguar nga grupi kryesor i serverit AAA:

Shkoni te 2FA (Vërtetimi me dy faktorë për ASA SSL VPN)
Aplikoni cilësimet dhe

Hapi 6, i njohur si i fundit
Le të kontrollojmë nëse vërtetimi me dy faktorë funksionon për SLL VPN:

Shkoni te 2FA (Vërtetimi me dy faktorë për ASA SSL VPN)
Voila! Kur lidheni përmes Cisco AnyConnect VPN Client, do t'ju kërkohet gjithashtu një fjalëkalim i dytë, një herë.

Shpresoj se ky artikull do të ndihmojë dikë dhe se do t'i japë dikujt ushqim për të menduar se si ta përdorë këtë, falas Server OTP, për detyra të tjera. Ndani në komente nëse dëshironi.

Burimi: www.habr.com

Shto një koment