Iru al 2FA (dufaktora aŭtentigo por ASA SSL VPN)

La bezono provizi foran aliron al kompania medio aperas pli kaj pli ofte, negrave ĉu viaj uzantoj aŭ partneroj bezonas aliron al aparta servilo en via organizo.

Por ĉi tiuj celoj, plej multaj kompanioj uzas VPN-teknologion, kiu pruvis sin esti fidinde protektita maniero provizi aliron al la lokaj rimedoj de la organizo.

Mia firmao ne estis escepto, kaj ni, kiel multaj aliaj, uzas ĉi tiun teknologion. Kaj, kiel multaj aliaj, ni uzas Cisco ASA 55xx kiel foran alirpordon.

Ĉar la nombro da foraj uzantoj pliiĝas, estas bezono simpligi la proceduron por eldonado de akreditaĵoj. Sed samtempe, ĉi tio devas esti farita sen endanĝerigi sekurecon.

Por ni mem, ni trovis solvon en uzado de dufaktora aŭtentigo por konekti per Cisco SSL VPN, uzante unufojajn pasvortojn. Kaj ĉi tiu publikigo diros al vi kiel organizi tian solvon kun minimuma tempo kaj nulaj kostoj por la necesa programaro (kondiĉe ke vi jam havas Cisco ASA en via infrastrukturo).

La merkato estas plena de skatolaj solvoj por generi unufojajn pasvortojn, dum ĝi ofertas multajn eblojn por akiri ilin, ĉu sendante la pasvorton per SMS aŭ uzante ĵetonojn, kaj aparataron kaj programaron (ekzemple, per poŝtelefono). Sed la deziro ŝpari monon kaj la deziro ŝpari monon por mia dunganto, en la nuna krizo, devigis min trovi senpagan manieron efektivigi servon por generi unufojajn pasvortojn. Kiu, kvankam senpaga, ne multe malsuperas al komercaj solvoj (ĉi tie ni faru rezervon, rimarkante, ke ĉi tiu produkto ankaŭ havas komercan version, sed ni konsentis, ke niaj kostoj, en mono, estos nulo).

Do, ni bezonas:

- Linuksa bildo kun enkonstruita aro da iloj - multiOTP, FreeRADIUS kaj nginx, por aliri la servilon per la reto (http://download.multiotp.net/ - Mi uzis pretan bildon por VMware)
— Aktiva Adresa Servilo
— Cisco ASA mem (por komforto, mi uzas ASDM)
— Ajna programara signo kiu subtenas la mekanismon TOTP (mi, ekzemple, uzas Google Authenticator, sed la sama FreeOTP faros)

Mi ne eniros detalojn pri kiel la bildo disvolviĝas. Kiel rezulto, vi ricevos Debian-Linukson kun multiOTP kaj FreeRADIUS jam instalita, agordita por labori kune, kaj retan interfacon por OTP-administrado.

Paŝo 1. Ni iniciatas la sistemon kaj agordas ĝin por via reto
Defaŭlte, la sistemo venas kun radikaj radikaj akreditaĵoj. Mi pensas, ke ĉiuj divenis, ke estus bona ideo ŝanĝi la pasvorton de la radika uzanto post la unua ensaluto. Vi ankaŭ devas ŝanĝi la retajn agordojn (defaŭlte ĝi estas '192.168.1.44' kun la enirejo '192.168.1.1'). Poste vi povas rekomenci la sistemon.

Ni kreu uzanton en Active Directory otp, kun pasvorto MiaSuperPasvorto.

Paŝo 2. Agordu la konekton kaj importu uzantojn de Active Directory
Por fari tion, ni bezonas aliron al la konzolo, kaj rekte al la dosiero multiotp.php, uzante kiu ni agordos konekton agordojn al Aktiva Dosierujo.

Iru al dosierujo /usr/local/bin/multiotp/ kaj plenumu la sekvajn komandojn laŭvice:

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

Determinas ĉu kroma (permanenta) stifto estas bezonata dum enigo de unufoja pinglo (0 aŭ 1)

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

Determinas ĉu domajna pasvorto estas bezonata dum enigo de unufoja pinglo (0 aŭ 1)

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

La speco de LDAP-servilo estas indikita (0 = regula LDAP-servilo, en nia kazo 1 = Aktiva Dosierujo)

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

Specifas la formaton en kiu prezenti la uzantnomon (ĉi tiu valoro montros nur la nomon, sen la domajno)

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

Same, nur por grupo

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

Specifas metodon por determini ĉu uzanto apartenas al grupo

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

Ĉu mi uzu sekuran konekton al la LDAP-servilo (kompreneble, jes!)

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

Haveno por konektiĝi al la LDAP-servilo

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

Via servilo-adreso de Active Directory

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

Ni indikas kie komenci serĉi uzantojn en la domajno

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

Indiku uzanton kiu havas serĉrajtojn en Active Directory

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

Indiku la uzantan pasvorton por konekti al Active Directory

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

Agordi la tempodaŭron por konektiĝi al Active Directory

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

Ni fiksas templimon por la uzanta importoperacio

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

Aktivigo de la konekto-agordo de Active Directory

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

Ni importas uzantojn el Active Directory

Paŝo 3. Generu QR-kodon por la ĵetono
Ĉio ĉi tie estas ege simpla. Malfermu la retan interfacon de la OTP-servilo en la retumilo, ensalutu (ne forgesu ŝanĝi la defaŭltan pasvorton por la administranto!), kaj alklaku la butonon "Presi":

Iru al 2FA (dufaktora aŭtentigo por ASA SSL VPN)
La rezulto de ĉi tiu ago estos paĝo kiu enhavas du QR-kodojn. Ni kuraĝe ignoras la unuan el ili (malgraŭ la alloga surskribo Google Authenticator / Authenticator / 2 Steps Authenticator), kaj denove ni kuraĝe skanas la duan kodon en programaran ĵetonon en la telefono:

Iru al 2FA (dufaktora aŭtentigo por ASA SSL VPN)
(jes, mi intence difektis la QR-kodon por igi ĝin nelegebla).

Post plenumi ĉi tiujn agojn, sescifera pasvorto komencos esti generita en via aplikaĵo ĉiujn tridek sekundojn.

Por esti certa, vi povas kontroli ĝin en la sama interfaco:

Iru al 2FA (dufaktora aŭtentigo por ASA SSL VPN)
Enmetante vian uzantnomon kaj unufojan pasvorton de la aplikaĵo en via telefono. Ĉu vi ricevis pozitivan respondon? Do ni pluiru.

Paŝo 4. Plia agordo kaj testado de operacio de FreeRADIUS
Kiel mi menciis supre, multiOTP jam estas agordita por labori kun FreeRADIUS, restas nur fari testojn kaj aldoni informojn pri nia VPN-enirejo al la agorda dosiero de FreeRADIUS.

Ni revenas al la servila konzolo, al la dosierujo /usr/local/bin/multiotp/, enigu:

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

Inkluzive de pli detala registrado.

En la agorda dosiero de la klientoj de FreeRADIUS (/etc/freeradius/clinets.conf) komentu ĉiujn liniojn rilatajn al localhost kaj aldonu du enskribojn:

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

- por testo

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

— por nia VPN-enirejo.

Rekomencu FreeRADIUS kaj provu ensaluti:

radtest username 100110 localhost 1812 testing321

kie uzantonomo = uzantnomo, 100110 = pasvorto donita al ni de la aplikaĵo ĉe la telefono, localhost = RADIUS-servila adreso, 1812 — RADIUS-servila haveno, testado321 — RADIUS-servila kliento-pasvorto (kiun ni specifis en la agordo).

La rezulto de ĉi tiu komando estos eligita proksimume jene:

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

Nun ni devas certigi, ke la uzanto estas sukcese aŭtentikigita. Por fari tion, ni rigardos la protokolon de multiotp mem:

tail /var/log/multiotp/multiotp.log

Kaj se la lasta enskribo estas:

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

Tiam ĉio iris bone kaj ni povas kompletigi

Paŝo 5: Agordu Cisco ASA
Ni konsentu, ke ni jam havas agordita grupon kaj politikojn por aliro per SLL VPN, agordita kune kun Active Directory, kaj ni devas aldoni dufaktoran aŭtentikigon por ĉi tiu profilo.

1. Aldonu novan AAA-servilgrupon:

Iru al 2FA (dufaktora aŭtentigo por ASA SSL VPN)
2. Aldonu nian multiOTP-servilon al la grupo:

Iru al 2FA (dufaktora aŭtentigo por ASA SSL VPN)
3. Ni redaktas profilo de rilato, fiksante la servogrupon de Active Directory kiel la ĉefan aŭtentikigservilon:

Iru al 2FA (dufaktora aŭtentigo por ASA SSL VPN)
4. En la langeto Altnivela -> Aŭtentikigo Ni ankaŭ elektas la grupon de serviloj de Active Directory:

Iru al 2FA (dufaktora aŭtentigo por ASA SSL VPN)
5. En la langeto Altnivela -> Malĉefa aŭtentigo, elektu la kreitan servilon en kiu la multiOTP-servilo estas registrita. Notu, ke la uzantnomo de Sesio estas heredita de la ĉefa servilgrupo AAA:

Iru al 2FA (dufaktora aŭtentigo por ASA SSL VPN)
Apliki la agordojn kaj

Paŝo 6, alinome la lasta
Ni kontrolu ĉu dufaktora aŭtentigo funkcias por SLL VPN:

Iru al 2FA (dufaktora aŭtentigo por ASA SSL VPN)
Voila! Kiam vi konektas per Cisco AnyConnect VPN-Kliento, vi ankaŭ petos duan, unufojan pasvorton.

Mi esperas, ke ĉi tiu artikolo helpos iun, kaj ke ĝi donos al iu manĝaĵon por pensi pri kiel uzi ĉi tion, senpaga OTP-servilo, por aliaj taskoj. Kunhavigu en la komentoj se vi deziras.

fonto: www.habr.com

Aldoni komenton