Գնացեք 2FA (երկգործոն նույնականացում ASA SSL VPN-ի համար)

Կորպորատիվ միջավայրի հեռահար մուտք ապահովելու անհրաժեշտությունը ավելի ու ավելի հաճախ է առաջանում, անկախ նրանից՝ ձեր օգտատերերն են, թե գործընկերները, ովքեր ձեր կազմակերպության որոշակի սերվերի մուտքի կարիք ունեն:

Այս նպատակների համար ընկերությունների մեծ մասն օգտագործում է VPN տեխնոլոգիա, որն իրեն ապացուցել է որպես կազմակերպության տեղական ռեսուրսներին հասանելիություն ապահովելու հուսալիորեն պաշտպանված միջոց:

Իմ ընկերությունը բացառություն չէր, և մենք, ինչպես շատ ուրիշներ, օգտագործում ենք այս տեխնոլոգիան: Եվ, ինչպես շատ ուրիշներ, մենք օգտագործում ենք Cisco ASA 55xx որպես հեռավոր մուտքի դարպաս:

Քանի որ հեռակա օգտատերերի թիվը մեծանում է, անհրաժեշտություն է առաջանում պարզեցնել հավատարմագրերի տրամադրման ընթացակարգը: Բայց միևնույն ժամանակ դա պետք է արվի՝ չվնասելով անվտանգությունը:

Մենք մեզ համար լուծում գտանք Cisco SSL VPN-ի միջոցով միանալու համար երկգործոն նույնականացում օգտագործելու հարցում՝ օգտագործելով մեկանգամյա գաղտնաբառեր: Եվ այս հրապարակումը ձեզ կասի, թե ինչպես կազմակերպել նման լուծում՝ նվազագույն ժամանակով և զրոյական ծախսերով անհրաժեշտ ծրագրաշարի համար (պայմանով, որ ձեր ենթակառուցվածքում արդեն ունեք Cisco ASA):

Շուկան լի է միանվագ գաղտնաբառեր ստեղծելու տուփային լուծումներով՝ միաժամանակ առաջարկելով դրանք ձեռք բերելու բազմաթիվ տարբերակներ՝ լինի դա գաղտնաբառ ուղարկելը SMS-ի միջոցով, թե ժետոնների օգտագործում՝ ինչպես ապարատային, այնպես էլ ծրագրային ապահովում (օրինակ՝ բջջային հեռախոսով): Բայց գումար խնայելու ցանկությունը և գործատուիս համար գումար խնայելու ցանկությունը, ներկայիս ճգնաժամի պայմաններում, ստիպեցին ինձ գտնել անվճար միջոց՝ միանգամյա գաղտնաբառեր ստեղծելու ծառայություն իրականացնելու համար: Որը թեև անվճար է, բայց այնքան էլ չի զիջում կոմերցիոն լուծումներին (այստեղ պետք է վերապահում անել՝ նշելով, որ այս ապրանքն ունի նաև կոմերցիոն տարբերակ, բայց պայմանավորվել ենք, որ մեր ծախսերը՝ փողով, զրոյական կլինեն)։

Այսպիսով, մեզ անհրաժեշտ կլինի.

- Linux-ի պատկեր ներկառուցված գործիքների հավաքածուով՝ multiOTP, FreeRADIUS և nginx, սերվերին համացանցի միջոցով մուտք գործելու համար (http://download.multiotp.net/ - Ես օգտագործել եմ պատրաստի պատկեր VMware-ի համար)
— Active Directory սերվեր
— Cisco ASA-ն ինքը (հարմարության համար ես օգտագործում եմ ASDM)
— Ցանկացած ծրագրային նշան, որն աջակցում է TOTP մեխանիզմին (ես, օրինակ, օգտագործում եմ Google Authenticator-ը, բայց նույն FreeOTP-ն կօգտագործի)

Ես չեմ մանրամասնի, թե ինչպես է պատկերը բացվում: Արդյունքում, դուք կստանաք Debian Linux multiOTP-ով և FreeRADIUS-ով, որոնք արդեն տեղադրված են, կազմաձևված են միասին աշխատելու համար, և վեբ ինտերֆեյս OTP-ի կառավարման համար:

Քայլ 1. Մենք գործարկում ենք համակարգը և կարգավորում այն ​​ձեր ցանցի համար
Լռելյայնորեն, համակարգը գալիս է արմատային հավատարմագրերով: Կարծում եմ, բոլորը կռահեցին, որ լավ կլինի փոխել root օգտվողի գաղտնաբառը առաջին մուտքից հետո: Դուք նաև պետք է փոխեք ցանցի կարգավորումները (լռելյայն այն «192.168.1.44» է՝ «192.168.1.1» դարպասով): Այնուհետև կարող եք վերագործարկել համակարգը:

Եկեք ստեղծենք օգտվող Active Directory-ում OTP, գաղտնաբառով MySuperPassword.

Քայլ 2. Ստեղծեք կապը և ներմուծեք Active Directory օգտվողներին
Դա անելու համար մեզ անհրաժեշտ է մուտք գործել վահանակ և անմիջապես ֆայլ multiotp.php, որի միջոցով մենք կկազմաձևենք կապի կարգավորումները Active Directory-ին:

Գնացեք գրացուցակ /usr/local/bin/multiotp/ և հերթով կատարեք հետևյալ հրամանները.

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

Որոշում է, թե արդյոք լրացուցիչ (մշտական) փին պահանջվում է մեկանգամյա փին մուտքագրելիս (0 կամ 1)

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

Որոշում է, թե արդյոք տիրույթի գաղտնաբառ է պահանջվում մեկանգամյա PIN մուտքագրելիս (0 կամ 1)

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

Նշված է LDAP սերվերի տեսակը (0 = սովորական LDAP սերվեր, մեր դեպքում 1 = Active Directory)

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

Նշում է օգտագործողի անունը ներկայացնելու ձևաչափը (այս արժեքը կցուցադրի միայն անունը՝ առանց տիրույթի)

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

Նույնը, միայն խմբի համար

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

Նշում է մեթոդ՝ որոշելու, թե արդյոք օգտվողը պատկանում է խմբին

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

Արդյո՞ք ես պետք է ապահով կապ օգտագործեմ LDAP սերվերի հետ (իհարկե, այո):

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

Նավահանգիստ LDAP սերվերին միանալու համար

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

Ձեր Active Directory սերվերի հասցեն

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

Մենք նշում ենք, թե որտեղից սկսել օգտվողների որոնումը տիրույթում

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

Նշեք օգտվողին, ով ունի որոնման իրավունք Active Directory-ում

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

Նշեք օգտվողի գաղտնաբառը Active Directory-ին միանալու համար

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

Active Directory-ին միանալու ժամանակի սահմանում

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

Մենք սահմանել ենք օգտվողների ներմուծման գործողության ժամկետ

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

Active Directory կապի կոնֆիգուրացիայի ակտիվացում

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

Մենք ներմուծում ենք օգտվողներ Active Directory-ից

Քայլ 3. Ստեղծեք QR կոդ նշանի համար
Այստեղ ամեն ինչ չափազանց պարզ է. Բացեք OTP սերվերի վեբ ինտերֆեյսը բրաուզերում, մուտք գործեք (մի մոռացեք փոխել ադմինիստրատորի լռելյայն գաղտնաբառը) և սեղմեք «Տպել» կոճակը.

Գնացեք 2FA (երկգործոն նույնականացում ASA SSL VPN-ի համար)
Այս գործողության արդյունքը կլինի էջ, որը պարունակում է երկու QR կոդ: Մենք համարձակորեն անտեսում ենք դրանցից առաջինը (չնայած Google Authenticator / Authenticator / 2 Steps Authenticator գրավիչ մակագրությանը), և կրկին համարձակորեն սկանավորում ենք երկրորդ կոդը հեռախոսի ծրագրային նշանի մեջ.

Գնացեք 2FA (երկգործոն նույնականացում ASA SSL VPN-ի համար)
(այո, ես միտումնավոր փչացրել եմ QR կոդը, որպեսզի այն անընթեռնելի լինի):

Այս գործողությունները կատարելուց հետո ձեր հավելվածում յուրաքանչյուր երեսուն վայրկյանը մեկ կսկսի ստեղծվել վեցանիշ գաղտնաբառ:

Համոզվելու համար կարող եք ստուգել այն նույն ինտերֆեյսում.

Գնացեք 2FA (երկգործոն նույնականացում ASA SSL VPN-ի համար)
Ձեր հեռախոսի հավելվածից մուտքագրելով ձեր օգտանունը և մեկանգամյա գաղտնաբառը: Դրական պատասխան ստացա՞ք։ Այսպիսով, մենք առաջ ենք շարժվում:

Քայլ 4. FreeRADIUS-ի շահագործման լրացուցիչ կոնֆիգուրացիա և փորձարկում
Ինչպես նշեցի վերևում, multiOTP-ն արդեն կազմաձևված է FreeRADIUS-ի հետ աշխատելու համար, մնում է միայն թեստեր գործարկել և ավելացնել մեր VPN դարպասի մասին տեղեկատվություն FreeRADIUS կազմաձևման ֆայլում:

Մենք վերադառնում ենք սերվերի կոնսոլ, գրացուցակ /usr/local/bin/multiotp/, մուտքագրեք:

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

Ներառյալ ավելի մանրամասն անտառահատումներ:

FreeRADIUS հաճախորդների կազմաձևման ֆայլում (/etc/freeradius/clinets.conf) մեկնաբանեք հետ կապված բոլոր տողերը localhost և ավելացրեք երկու գրառում.

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

- փորձարկման համար

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

— մեր VPN դարպասի համար:

Վերագործարկեք FreeRADIUS-ը և փորձեք մուտք գործել՝

radtest username 100110 localhost 1812 testing321

որտեղ օգտագործողի անունը = օգտվողի անուն, 100110 = հեռախոսով դիմումի կողմից մեզ տրված գաղտնաբառը, localhost = RADIUS սերվերի հասցեն, 1812 - RADIUS սերվերի պորտ, test321 — RADIUS սերվերի հաճախորդի գաղտնաբառը (որը մենք նշել ենք կազմաձևում):

Այս հրամանի արդյունքը կարտադրվի մոտավորապես հետևյալ կերպ.

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

Այժմ մենք պետք է համոզվենք, որ օգտագործողը հաջողությամբ վավերացված է: Դա անելու համար մենք կդիտարկենք ինքնին multiotp-ի գրանցամատյանը.

tail /var/log/multiotp/multiotp.log

Եվ եթե վերջին մուտքը կա.

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

Հետո ամեն ինչ լավ անցավ, և մենք կարող ենք ավարտին հասցնել

Քայլ 5. Կարգավորեք Cisco ASA-ն
Եկեք համաձայնենք, որ մենք արդեն ունենք SLL VPN-ի միջոցով մուտք գործելու կազմաձևված խումբ և քաղաքականություն, որը կազմաձևված է Active Directory-ի հետ համատեղ, և մենք պետք է ավելացնենք երկգործոն նույնականացում այս պրոֆիլի համար:

1. Ավելացնել նոր AAA սերվերի խումբ.

Գնացեք 2FA (երկգործոն նույնականացում ASA SSL VPN-ի համար)
2. Ավելացնել մեր multiOTP սերվերը խմբին.

Գնացեք 2FA (երկգործոն նույնականացում ASA SSL VPN-ի համար)
3. Մենք խմբագրում ենք կապի պրոֆիլ, սահմանելով Active Directory սերվերի խումբը որպես նույնականացման հիմնական սերվեր.

Գնացեք 2FA (երկգործոն նույնականացում ASA SSL VPN-ի համար)
4. Ներդիրում Ընդլայնված -> Նույնականացում Մենք նաև ընտրում ենք Active Directory սերվերի խումբը.

Գնացեք 2FA (երկգործոն նույնականացում ASA SSL VPN-ի համար)
5. Ներդիրում Ընդլայնված -> Երկրորդական նույնականացում, ընտրեք ստեղծված սերվերի խումբը, որում գրանցված է multiOTP սերվերը: Նկատի ունեցեք, որ Session օգտվողի անունը ժառանգված է առաջնային AAA սերվերի խմբից.

Գնացեք 2FA (երկգործոն նույնականացում ASA SSL VPN-ի համար)
Կիրառել կարգավորումները և

Քայլ 6, այսինքն՝ վերջինը
Եկեք ստուգենք, արդյոք երկգործոն նույնականացումը գործում է SLL VPN-ի համար.

Գնացեք 2FA (երկգործոն նույնականացում ASA SSL VPN-ի համար)
Voila! Cisco AnyConnect VPN Client-ի միջոցով միանալիս ձեզնից կպահանջվի նաև երկրորդ, մեկանգամյա գաղտնաբառ:

Հուսով եմ, որ այս հոդվածը կօգնի ինչ-որ մեկին, և այն ինչ-որ մեկին մտածելու տեղիք կտա, թե ինչպես օգտագործել այն, անվճար OTP սերվեր, այլ առաջադրանքների համար: Ցանկության դեպքում կիսվեք մեկնաբանություններում։

Source: www.habr.com

Добавить комментарий