Կորպորատիվ միջավայրի հեռահար մուտք ապահովելու անհրաժեշտությունը ավելի ու ավելի հաճախ է առաջանում, անկախ նրանից՝ ձեր օգտատերերն են, թե գործընկերները, ովքեր ձեր կազմակերպության որոշակի սերվերի մուտքի կարիք ունեն:
Այս նպատակների համար ընկերությունների մեծ մասն օգտագործում է 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 սերվերի վեբ ինտերֆեյսը բրաուզերում, մուտք գործեք (մի մոռացեք փոխել ադմինիստրատորի լռելյայն գաղտնաբառը) և սեղմեք «Տպել» կոճակը.
Այս գործողության արդյունքը կլինի էջ, որը պարունակում է երկու QR կոդ: Մենք համարձակորեն անտեսում ենք դրանցից առաջինը (չնայած Google Authenticator / Authenticator / 2 Steps Authenticator գրավիչ մակագրությանը), և կրկին համարձակորեն սկանավորում ենք երկրորդ կոդը հեռախոսի ծրագրային նշանի մեջ.
(այո, ես միտումնավոր փչացրել եմ QR կոդը, որպեսզի այն անընթեռնելի լինի):
Այս գործողությունները կատարելուց հետո ձեր հավելվածում յուրաքանչյուր երեսուն վայրկյանը մեկ կսկսի ստեղծվել վեցանիշ գաղտնաբառ:
Համոզվելու համար կարող եք ստուգել այն նույն ինտերֆեյսում.
Ձեր հեռախոսի հավելվածից մուտքագրելով ձեր օգտանունը և մեկանգամյա գաղտնաբառը: Դրական պատասխան ստացա՞ք։ Այսպիսով, մենք առաջ ենք շարժվում:
Քայլ 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 սերվերի խումբ.
2. Ավելացնել մեր multiOTP սերվերը խմբին.
3. Մենք խմբագրում ենք կապի պրոֆիլ, սահմանելով Active Directory սերվերի խումբը որպես նույնականացման հիմնական սերվեր.
4. Ներդիրում Ընդլայնված -> Նույնականացում Մենք նաև ընտրում ենք Active Directory սերվերի խումբը.
5. Ներդիրում Ընդլայնված -> Երկրորդական նույնականացում, ընտրեք ստեղծված սերվերի խումբը, որում գրանցված է multiOTP սերվերը: Նկատի ունեցեք, որ Session օգտվողի անունը ժառանգված է առաջնային AAA սերվերի խմբից.
Կիրառել կարգավորումները և
Քայլ 6, այսինքն՝ վերջինը
Եկեք ստուգենք, արդյոք երկգործոն նույնականացումը գործում է SLL VPN-ի համար.
Voila! Cisco AnyConnect VPN Client-ի միջոցով միանալիս ձեզնից կպահանջվի նաև երկրորդ, մեկանգամյա գաղտնաբառ:
Հուսով եմ, որ այս հոդվածը կօգնի ինչ-որ մեկին, և այն ինչ-որ մեկին մտածելու տեղիք կտա, թե ինչպես օգտագործել այն, անվճար OTP սերվեր, այլ առաջադրանքների համար: Ցանկության դեպքում կիսվեք մեկնաբանություններում։
Source: www.habr.com