Dodieties uz 2FA (divfaktoru autentifikācija ASA SSL VPN)

Arvien biežāk parādās nepiecieÅ”amÄ«ba nodroÅ”ināt attālinātu piekļuvi korporatÄ«vajai videi neatkarÄ«gi no tā, vai jÅ«su lietotājiem vai partneriem ir nepiecieÅ”ama piekļuve konkrētam serverim jÅ«su organizācijā.

Å iem nolÅ«kiem lielākā daļa uzņēmumu izmanto VPN tehnoloÄ£iju, kas ir pierādÄ«jusi sevi kā uzticami aizsargātu veidu, kā nodroÅ”ināt piekļuvi organizācijas vietējiem resursiem.

Mans uzņēmums nebija izņēmums, un mēs, tāpat kā daudzi citi, izmantojam Å”o tehnoloÄ£iju. Un, tāpat kā daudzi citi, mēs izmantojam Cisco ASA 55xx kā attālās piekļuves vārteju.

Tā kā attālo lietotāju skaits palielinās, ir jāvienkārŔo akreditācijas datu izsniegŔanas procedūra. Bet tajā paŔā laikā tas jādara, neapdraudot droŔību.

Mēs paÅ”i atradām risinājumu, izmantojot divu faktoru autentifikāciju savienojuma izveidei, izmantojot Cisco SSL VPN, izmantojot vienreizējas paroles. Un Ŕī publikācija jums pastāstÄ«s, kā organizēt Ŕādu risinājumu ar minimālu laiku un nulles izmaksām par nepiecieÅ”amo programmatÅ«ru (ar nosacÄ«jumu, ka jÅ«su infrastruktÅ«rā jau ir Cisco ASA).

Tirgus ir pārpilns ar kastÄ«tiem risinājumiem vienreizējo paroļu Ä£enerÄ“Å”anai, vienlaikus piedāvājot daudz iespēju to iegÅ«Å”anai, vai nu paroles nosÅ«tÄ«Å”ana ar SMS vai marÄ·ieru izmantoÅ”ana gan aparatÅ«ras, gan programmatÅ«ras (piemēram, mobilajā tālrunÄ«). Taču vēlme ietaupÄ«t naudu un vēlme ietaupÄ«t naudu darba devējam paÅ”reizējās krÄ«zes apstākļos lika man atrast bezmaksas veidu, kā ieviest vienreizējo paroļu Ä£enerÄ“Å”anas pakalpojumu. Kas, lai arÄ« bez maksas, nav daudz zemāks par komerciāliem risinājumiem (Å”eit mums ir jāizdara atruna, norādot, ka Å”im produktam ir arÄ« komerciāla versija, taču mēs vienojāmies, ka mÅ«su izmaksas naudā bÅ«s nulle).

Tātad, mums ir nepiecieŔams:

- Linux attēls ar iebūvētu rīku komplektu - multiOTP, FreeRADIUS un nginx, lai piekļūtu serverim caur tīmekli (http://download.multiotp.net/ - VMware izmantoju gatavu attēlu)
ā€” Active Directory serveris
ā€” pati Cisco ASA (ērtÄ«bas labad es izmantoju ASDM)
ā€” JebkurÅ” programmatÅ«ras marÄ·ieris, kas atbalsta TOTP mehānismu (es, piemēram, izmantoju Google Authenticator, bet tas pats FreeOTP derēs)

Es neiedziļināŔos detaļās par to, kā attēls attÄ«stās. Rezultātā jÅ«s saņemsiet Debian Linux ar jau instalētu multiOTP un FreeRADIUS, kas konfigurēts darbam kopā, un tÄ«mekļa saskarni OTP administrÄ“Å”anai.

1. darbība. Mēs iniciējam sistēmu un konfigurējam to jūsu tīklam
Pēc noklusējuma sistēmai ir saknes saknes akreditācijas dati. Domāju, ka visi uzminēja, ka bÅ«tu lietderÄ«gi pēc pirmās pieteikÅ”anās nomainÄ«t root lietotāja paroli. Jāmaina arÄ« tÄ«kla iestatÄ«jumi (pēc noklusējuma tas ir '192.168.1.44' ar vārteju '192.168.1.1'). Pēc tam jÅ«s varat restartēt sistēmu.

Izveidosim lietotāju Active Directory OTP, ar paroli Mana SuperParole.

2. darbÄ«ba. Iestatiet savienojumu un importējiet Active Directory lietotājus
Lai to izdarÄ«tu, mums ir nepiecieÅ”ama piekļuve konsolei un tieÅ”i failam multiotp.php, izmantojot kuru mēs konfigurēsim savienojuma iestatÄ«jumus uz Active Directory.

Dodieties uz direktoriju /usr/local/bin/multiotp/ un pēc kārtas izpildiet Ŕādas komandas:

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

Nosaka, vai ir nepiecieÅ”ams papildu (pastāvÄ«gs) spraudnis, ievadot vienreizēju tapu (0 vai 1)

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

Nosaka, vai ir nepiecieÅ”ama domēna parole, ievadot vienreizējo PIN kodu (0 vai 1)

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

Tiek norādīts LDAP servera veids (0 = parasts LDAP serveris, mūsu gadījumā 1 = Active Directory)

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

Norāda lietotājvārda uzrādÄ«Å”anas formātu (Ŕī vērtÄ«ba parādÄ«s tikai vārdu bez domēna)

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

Tas pats, tikai grupai

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

Norāda metodi, lai noteiktu, vai lietotājs pieder grupai

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

Vai man vajadzētu izmantot droÅ”u savienojumu ar LDAP serveri (protams - jā!)

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

Ports savienojuma izveidei ar LDAP serveri

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

JÅ«su Active Directory servera adrese

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

Mēs norādām, kur sākt lietotāju meklÄ“Å”anu domēnā

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

Norādiet lietotāju, kuram ir meklÄ“Å”anas tiesÄ«bas Active Directory

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

Norādiet lietotāja paroli, lai izveidotu savienojumu ar Active Directory

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

Taimauta iestatīŔana savienojuma izveidei ar Active Directory

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

Mēs noteicām laika ierobežojumu lietotāja importÄ“Å”anas darbÄ«bai

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

Active Directory savienojuma konfigurācijas aktivizÄ“Å”ana

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

Mēs importējam lietotājus no Active Directory

3. darbÄ«ba. Ä¢enerējiet pilnvaras QR kodu
Å eit viss ir ārkārtÄ«gi vienkārÅ”i. PārlÅ«kprogrammā atveriet OTP servera tÄ«mekļa saskarni, piesakieties (neaizmirstiet nomainÄ«t administratora noklusējuma paroli!) un noklikŔķiniet uz pogas ā€œDrukātā€:

Dodieties uz 2FA (divfaktoru autentifikācija ASA SSL VPN)
Šīs darbības rezultātā tiks izveidota lapa, kurā būs divi QR kodi. Mēs drosmīgi ignorējam pirmo no tiem (neskatoties uz pievilcīgo uzrakstu Google Authenticator / Authenticator / 2 Steps Authenticator), un atkal mēs drosmīgi skenējam otro kodu tālruņa programmatūras marķierā:

Dodieties uz 2FA (divfaktoru autentifikācija ASA SSL VPN)
(jā, es apzināti sabojāju QR kodu, lai padarītu to nelasāmu).

Pēc Å”o darbÄ«bu veikÅ”anas jÅ«su lietojumprogrammā ik pēc trÄ«sdesmit sekundēm tiks Ä£enerēta seÅ”ciparu parole.

Lai pārliecinātos, varat to pārbaudÄ«t tajā paŔā saskarnē:

Dodieties uz 2FA (divfaktoru autentifikācija ASA SSL VPN)
Ievadot lietotājvārdu un vienreizējo paroli no tālruņa aplikācijas. Vai saņēmāt pozitīvu atbildi? Tātad ejam tālāk.

4. solis. FreeRADIUS darbības papildu konfigurēŔana un testēŔana
Kā jau minēju iepriekÅ”, multiOTP jau ir konfigurēts darbam ar FreeRADIUS, atliek tikai palaist testus un FreeRADIUS konfigurācijas failam pievienot informāciju par mÅ«su VPN vārteju.

Mēs atgriežamies servera konsolē, direktorijā /usr/local/bin/multiotp/, ievadiet:

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

Tostarp detalizētāka mežizstrāde.

FreeRADIUS klientu konfigurācijas failā (/etc/freeradius/clinets.conf) komentējiet visas rindas, kas saistītas ar localhost un pievienojiet divus ierakstus:

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

- pārbaudei

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

- mūsu VPN vārtejai.

Restartējiet FreeRADIUS un mēģiniet pieteikties:

radtest username 100110 localhost 1812 testing321

kur lietotājvārds = lietotājvārds, 100110 = parole, ko mums iedeva lietojumprogramma tālrunÄ«, localhost = RADIUS servera adrese, 1812 ā€” RADIUS servera ports, testing321 ā€” RADIUS servera klienta parole (ko mēs norādÄ«jām konfigurācijā).

Šīs komandas rezultāts tiks izvadīts aptuveni Ŕādi:

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

Tagad mums ir jāpārliecinās, vai lietotājs ir veiksmÄ«gi autentificēts. Lai to izdarÄ«tu, mēs apskatÄ«sim paÅ”u multiotp žurnālu:

tail /var/log/multiotp/multiotp.log

Un, ja ir pēdējais ieraksts:

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

Tad viss noritēja labi un mēs varam pabeigt

5. darbība: konfigurējiet Cisco ASA
Vienosimies, ka mums jau ir konfigurēta grupa un politikas piekļuvei, izmantojot SLL VPN, kas konfigurētas kopā ar Active Directory, un Å”im profilam ir jāpievieno divu faktoru autentifikācija.

1. Pievienojiet jaunu AAA serveru grupu:

Dodieties uz 2FA (divfaktoru autentifikācija ASA SSL VPN)
2. Pievienojiet grupai mūsu multiOTP serveri:

Dodieties uz 2FA (divfaktoru autentifikācija ASA SSL VPN)
3. Mēs rediģējam savienojuma profils, iestatot Active Directory serveru grupu kā galveno autentifikācijas serveri:

Dodieties uz 2FA (divfaktoru autentifikācija ASA SSL VPN)
4. Cilnē Papildu -> Autentifikācija Mēs arī atlasām Active Directory serveru grupu:

Dodieties uz 2FA (divfaktoru autentifikācija ASA SSL VPN)
5. Cilnē Advanced -> Secondary autentifikāciju, atlasiet izveidoto serveru grupu, kurā ir reģistrēts multiOTP serveris. Ņemiet vērā, ka sesijas lietotājvārds ir mantots no primārās AAA serveru grupas:

Dodieties uz 2FA (divfaktoru autentifikācija ASA SSL VPN)
Lietojiet iestatījumus un

6. darbÄ«ba jeb pēdējais
Pārbaudīsim, vai divu faktoru autentifikācija darbojas SLL VPN:

Dodieties uz 2FA (divfaktoru autentifikācija ASA SSL VPN)
Voila! Izveidojot savienojumu, izmantojot Cisco AnyConnect VPN klientu, jums tiks prasīta arī otra, vienreizēja parole.

Es ceru, ka Å”is raksts kādam palÄ«dzēs un kādam liks pārdomām, kā to izmantot, bezmaksas OTP serveris citiem uzdevumiem. Ja vēlaties, dalieties komentāros.

Avots: www.habr.com

Pievieno komentāru