Nevoja për të ofruar qasje të largët në ambiente korporative po rritet gjithnjë e më shumë, qoftë për përdoruesit e saj ose për partnerët 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 provuar të jetë një mënyrë e sigurt për të ofruar qasje në burimet lokale të organizatës.
Kompania ime nuk Ă«shtĂ« pĂ«rjashtim, dhe ne gjithashtu, si shumĂ« tĂ« tjerĂ«, pĂ«rdorim kĂ«tĂ« teknologji. Dhe, si shumĂ« tĂ« tjerĂ«, pĂ«rdorim, si tĂ« dhĂ«nĂ«s pĂ«r qasje tĂ« largĂ«t â Cisco ASA 55xx.
Me rritjen e numrit të përdoruesve të largët, krijohet nevoja për të lehtësuar procedurën e lëshimit të përllogaritjeve. Por në të njëjtën kohë, kjo duhet të bëhet pa kompromis në siguri.
Ne gjetëm zgjidhjen në aplikimin e autentifikimit me dy faktorë për lidhjen përmes Cisco SSL VPN, duke përdorur fjalëkalimet njëherësh. Dhe ky publikim do të tregojë si të organizoni një zgjidhje të tillë me një minimum kohor dhe pa kosto për softin e nevojshëm (nën kushtin që Cisco ASA të jetë tashmë në infrastrukturën tuaj).
Mercati është i mbushur me zgjidhje të paketuar për gjenerimin e fjalëkalimeve njëherësh, ndërsa ofron shumë mundësi për marrjen e tyre, qoftë përmes dërgimit të fjalëkalimit përmes SMS ose përdorimit të tokeneve, si ato "fizike" ashtu edhe ato programore (për shembull në telefonin celular). Por dëshira për kursim dhe për të ruajtur paratë për punëdhënësin tim, në kushtet e krizës aktuale më detyroi të gjej një mënyrë falas për të realizuar shërbimin e gjenerimit të fjalëkalimeve njëherësh. I cili, përkundër falas, paksa i nënshtrohet zgjidhjeve komerciale (duhet theksuar që ky produkt ka dhe një version komercial, por ne e kemi rënë dakord se shpenzimet, në para, do të jenë zero).
Pra, do të na duhen:
â NjĂ« imazh Linux me njĂ« set mjete tĂ« integruara â multiOTP, FreeRADIUS dhe nginx, pĂ«r qasje nĂ« server pĂ«rmes webit (http://download.multiotp.net/ â unĂ« pĂ«rdora imazhin e gatshĂ«m pĂ«r VMware)
â NjĂ« server Active Directory
â VetĂ« Cisco ASA (unĂ«, pĂ«r lehtĂ«si, pĂ«rdor ASDM)
â Ădo token softuerik qĂ« mbĂ«shtet mekanizmin TOTP (unĂ«, pĂ«r shembull, pĂ«rdor Google Authenticator, por FreeOTP gjithashtu do tĂ« funksiononte)
Nuk do të hyj në detaje për zhvillimin e imazhit. Në dalje, do të merrni Debian Linux me multiOTP dhe FreeRADIUS të instaluara tashmë, të konfiguruara për të punuar së bashku, si dhe një ndërfaqe web për administrimin e OTP.
Hapi 1. Iniciativë e sistemit dhe konfiguroni për rrjetin tuaj
Sistem ka çertifikatat root root si parazgjedhje. Mendoj se tĂ« gjithĂ« e kuptoni se do tĂ« ishte e mençur tĂ« ndryshoni fjalĂ«kalimin pĂ«r pĂ«rdoruesin root pas logimit tĂ« parĂ«. Po ashtu, duhen ndryshuar konfigurimet e rrjetit (parazgjedhja Ă«shtĂ« â192.168.1.44â me portin â192.168.1.1â). Pasi tĂ« bĂ«ni kĂ«tĂ«, mund tĂ« rindizni sistemin.
Në Active Directory do të krijojmë një përdorues otp, me fjalëkalimin MySuperPassword.
Hapi 2. Konfiguroni lidhjen dhe importoni përdoruesit e Active Directory
Për këtë do të na nevojitet akses në konsol, si dhe skedari multiotp.php, duke përdorur të cilin do të konfigurojmë parametrat e lidhjes me Active Directory.
Shkoni në dosjen /usr/local/bin/multiotp/ dhe ekzekutojmë radhazi komandat e mëposhtme:
./multiotp.php -config default-request-prefix-pin=0Përcakton nëse kërkohet një PIN shtesë (i përhershëm) gjatë hyrjes së PIN-it të përkohshëm (0 ose 1)
./multiotp.php -config default-request-ldap-pwd=0Përcakton nëse kërkohet të jepet fjalëkalimi i domain-it gjatë hyrjes së PIN-it të përkohshëm (0 ose 1)
./multiotp.php -config ldap-server-type=1Specifikon llojin e serverit LDAP (0 = server i zakonshëm LDAP, në rastin tonë 1 = Active Directory)
./multiotp.php -config ldap-cn-identifier="sAMAccountName"Specifikon se në çfarë forme duhet të paraqitet emri i përdoruesit (kjo vlerë do të nxjerrë vetëm emrin, pa domain-in)
./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"E njëjta gjë, vetëm për grupin
./multiotp.php -config ldap-group-attribute="memberOf"Specifikon metodën e përcaktimit të përkatësisë së përdoruesit në grup
./multiotp.php -config ldap-ssl=1Duhet të përdorim lidhje të sigurt me serverin LDAP (sigurisht që po!)
./multiotp.php -config ldap-port=636Porti për lidhjen me serverin LDAP
./multiotp.php -config ldap-domain-controllers=adSRV.domain.localAdresa e serverit tuaj Active Directory
./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"Specifikojmë nga ku të fillojmë kërkimin e përdoruesve në domain
./multiotp.php -config ldap-bind-dn="otp@domain.local"Specifikojmë një përdorues që ka të drejtat për të kërkuar në Active Directory
./multiotp.php -config ldap-server-password="MySuperPassword"Specifikojmë fjalëkalimin e përdoruesit për lidhjen me Active Directory
./multiotp.php -config ldap-network-timeout=10Ne caktojmë një kohë për lidhjen me Active Directory
./multiotp.php -config ldap-time-limit=30Ne caktojmë një kufizim në kohë për operacionin e importit të përdoruesve
./multiotp.php -config ldap-activated=1Aktivojmë konfigurimin e lidhjes me Active Directory
.\/multiotp.php -debug -display-log -ldap-users-syncBëjmë importimin e përdoruesve nga Active Directory
Hapi 3. Generojmë QR-kod për tokenin
Këtu gjithçka është shumë e thjeshtë. Hapni ndërfaqen web të serverit OTP në shfletues, identifikohuni (mos harroni të ndryshoni fjalëkalimin për adminin, i cili është vendosur si i paracaktuar!), dhe klikoni butonin «Print»:

Si rezultat i këtij veprimi do të shfaqet një faqe, ku përmbahen dy QR-kod. Ne e injorojmë me lehtësi të parin (pavarësisht nga shkrimi tërheqës Google Authenticator / Authenticator / 2 Steps Authenticator) dhe përsëri me lehtësi skanojmë kodin e dytë me tokenin softuerik në telefon:

(po, unë e prisha qëllimisht QR-kodet që ta bëj atë të papërdorshëm).
Pas këtyre veprimeve, në aplikacionin tuaj, çdo tridhjetë sekonda do të fillojë të gjenerohet një fjalëkalim me gjashtë shifra.
Për siguri, mund të kryeni një verifikim në të njëjtën ndërfaqe:

Duke futur emrin e përdoruesit dhe fjalëkalimin e përkohshëm nga aplikacioni në telefon. Marrë përgjigje pozitive? Atëherë kalojmë përpara.
Hapi 4. Rregullojmë dhe testojmë funksionimin e FreeRADIUS
Siç e pĂ«rmenda mĂ« sipĂ«r â multiOTP Ă«shtĂ« tashmĂ« i konfiguruar pĂ«r tĂ« punuar me FreeRADIUS, ne vetĂ«m duhet tĂ« kryejmĂ« teste dhe tĂ« shtojmĂ« nĂ« skedarin e konfigurimit tĂ« FreeRADIUS informacionin pĂ«r portin tonĂ« VPN.
Kthehemi në konsolën e serverit, në direktorinë /usr/local/bin/multiotp/, shkruajmë:
.\/multiotp.php -config debug=1\n.\/multiotp.php -config display-log=1Duke aktivizuar kështu regjistrimin më të detajuar.
Në skedarin e konfigurimit të klientëve FreeRADIUS (/etc/freeradius/clinets.conf) komentojmë të gjitha rreshtat që lidhen me localhost dhe shtojmë dy regjistra:
client localhost {\n ipaddr = 127.0.0.1\n secret = testing321\n require_message_authenticator = no\n}â pĂ«r testim
client 192.168.1.254\/32 {\n shortname = CiscoASA\n secret = ConnectToRADIUSSecret\n}â pĂ«r portin tonĂ« VPN.
Rinisni FreeRADIUS dhe provoni të identifikoheni:
radtest username 100110 localhost 1812 testing321ku username = emri i pĂ«rdoruesit, 100110 = fjalĂ«kalimi, i lĂ«shuar nga aplikacioni nĂ« telefon, localhost = adresa e serverit RADIUS, 1812 â porta e serverit RADIUS, testing321 â fjalĂ«kalimi i klientit tĂ« serverit RADIUS (qĂ« e kemi caktuar nĂ« konfigurim).
Rezultati i këtij komande do të jetë një dalje, dikur e tillë:
Sending Access-Request of id 44 to 127.0.0.1 port 1812\n User-Name = "username"\n User-Password = "100110"\n NAS-IP-Address = 127.0.1.1\n NAS-Port = 1812\n Message-Authenticator = 0x00000000000000000000000000000000\nrad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20Tani tani kemi nevojë të sigurohemi që përdoruesi ka kaluar me sukses autentifikimin. Për këtë, ne do të shikojmë në logun e multiotp:
tail /var/log/multiotp/multiotp.logDhe nëse shënimi i fundit atje do të jetë:
2016-09-01 08:58:17 notice username Përdorues OK: Përdoruesi username u identifikua me sukses nga 127.0.0.1
2016-09-01 08:58:17 debug Debug Debug: 0 OK: Token i pranuar nga 127.0.0.1Atyre gjithçka ka shkuar mirë dhe ne mund të vazhdojmë me
Hapi 5. Konfigurimi i Cisco ASA
Të dakordohemi që ne tashmë kemi një grup të konfigurur dhe politika për qasje për SSL VPN, të konfiguruar në lidhje me Active Directory, dhe na nevojitet të shtojmë autentifikimin me dy faktorë për këtë profil.
1. Shtojmë një grup të ri serverësh AAA:

2. Shtojmë në grup serverin tonë multiOTP:

3. Korrigjojmë profilin e lidhjes, duke caktuar si serverin kryesor të autentifikimit grupin e serverëve të Active Directory:

4. Në skedën Advanced -> Authentification po ashtu zgjedhim grupin e serverëve të Active Directory:

5. Në skedën Advanced -> Secondary në autentifikimin zgjedhim grupin e krijuar të serverëve, në të cilin është shkruar serveri multiOTP. E theksojmë se emri i sesionit të përdoruesit trashëgohet nga grupi primar i serverëve AAA:

Shkojmë përpara me konfigurimet dhe
Hapi 6, që është edhe i fundit
Kontrollojmë nëse kemi autentifikimin me dy faktorë për SSL VPN:

Vua-la! Gjatë lidhjes përmes Cisco AnyConnect VPN Client gjithashtu do të kërkohet një fjalëkalim i dytë, një herësh.
Shpresoj se ky artikull do t'i ndihmojë dikujt dhe se do t'i japë dikujt mundësi për të reflektuar mbi se si mund të përdorin këtë, të lirë server OTP, për detyra të tjera. Ndani në komente, nëse do të keni dëshirë.
Burimi: habr.com
