2FA ga o'ting (ASA SSL VPN uchun ikki faktorli autentifikatsiya)

Korporativ muhitga masofaviy kirishni ta'minlash zarurati, tashkilotingizdagi ma'lum bir serverga kirishga muhtoj bo'lgan foydalanuvchilaringiz yoki hamkorlaringiz bo'lishidan qat'i nazar, tobora tez-tez paydo bo'lmoqda.

Ushbu maqsadlar uchun ko'pchilik kompaniyalar VPN texnologiyasidan foydalanadilar, bu esa tashkilotning mahalliy resurslariga kirishni ta'minlashning ishonchli himoyalangan usuli ekanligini isbotladi.

Mening kompaniyam ham bundan mustasno emas edi va biz, boshqalar kabi, bu texnologiyadan foydalanamiz. Va, boshqalar kabi, biz Cisco ASA 55xx dan masofaviy kirish shlyuzi sifatida foydalanamiz.

Masofaviy foydalanuvchilar soni ortib borayotganligi sababli, hisobga olish ma'lumotlarini berish tartibini soddalashtirish zarurati tug'iladi. Ammo shu bilan birga, bu xavfsizlikka zarar etkazmasdan amalga oshirilishi kerak.

Biz o'zimiz uchun bir martalik parollar yordamida Cisco SSL VPN orqali ulanish uchun ikki faktorli autentifikatsiyadan foydalanish yechimini topdik. Va ushbu nashr sizga kerakli dasturiy ta'minot uchun minimal vaqt va nol xarajatlar bilan bunday yechimni qanday tashkil etishni aytib beradi (agar siz infratuzilmangizda Cisco ASA mavjud bo'lsa).

Bozor bir martalik parollarni yaratish bo'yicha qutili echimlar bilan to'lib-toshgan, shu bilan birga ularni olish uchun ko'plab variantlarni taklif qiladi, xoh u parolni SMS orqali yuborish yoki apparat va dasturiy ta'minot (masalan, mobil telefonda) tokenlardan foydalanish. Ammo pulni tejash istagi va ish beruvchim uchun pul tejash istagi, hozirgi inqiroz sharoitida meni bir martalik parollarni yaratish xizmatini amalga oshirishning bepul usulini topishga majbur qildi. Bu bepul bo'lsa ham, tijorat echimlaridan unchalik kam emas (bu erda biz bron qilishimiz kerak, bu mahsulotning ham tijorat versiyasi borligini ta'kidlaymiz, ammo biz pul bilan bizning xarajatlarimiz nolga teng bo'lishiga rozi bo'ldik).

Shunday qilib, bizga kerak:

- O'rnatilgan vositalar to'plamiga ega Linux tasviri - multiOTP, FreeRADIUS va nginx, serverga veb orqali kirish uchun (http://download.multiotp.net/ - Men VMware uchun tayyor rasmdan foydalandim)
- Active Directory serveri
β€” Cisco ASA o'zi (qulaylik uchun men ASDM dan foydalanaman)
- TOTP mexanizmini qo'llab-quvvatlaydigan har qanday dasturiy ta'minot belgisi (masalan, men Google Authenticator-dan foydalanaman, lekin xuddi shu FreeOTP qiladi)

Tasvirning qanday paydo bo'lishi haqida batafsil ma'lumot bermayman. Natijada siz multiOTP va FreeRADIUS o'rnatilgan, birgalikda ishlash uchun sozlangan Debian Linuxni va OTP boshqaruvi uchun veb-interfeysni olasiz.

Qadam 1. Biz tizimni ishga tushiramiz va uni tarmog'ingiz uchun sozlaymiz
Odatiy bo'lib, tizim ildiz ildiz ma'lumotlari bilan birga keladi. O'ylaymanki, hamma birinchi kirishdan keyin root foydalanuvchi parolini o'zgartirish yaxshi fikr bo'lishini taxmin qildi. Shuningdek, siz tarmoq sozlamalarini o'zgartirishingiz kerak (sukut bo'yicha u "192.168.1.44" shlyuzli "192.168.1.1"). Shundan so'ng siz tizimni qayta ishga tushirishingiz mumkin.

Active Directory-da foydalanuvchi yaratamiz OTP, parol bilan MySuperPassword.

Qadam 2. Ulanishni o'rnating va Active Directory foydalanuvchilarini import qiling
Buning uchun biz konsolga va to'g'ridan-to'g'ri faylga kirishimiz kerak multiotp.php, uning yordamida biz Active Directory-ga ulanish sozlamalarini sozlaymiz.

Katalogga o'ting /usr/local/bin/multiotp/ va navbat bilan quyidagi buyruqlarni bajaring:

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

Bir martalik pinni (0 yoki 1) kiritishda qo'shimcha (doimiy) pin kerak yoki yo'qligini aniqlaydi.

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

Bir martalik pin (0 yoki 1) kiritishda domen paroli talab qilinishini aniqlaydi.

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

LDAP serverining turi ko'rsatilgan (0 = oddiy LDAP server, bizning holatlarimizda 1 = Active Directory)

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

Foydalanuvchi nomini taqdim etish formatini belgilaydi (bu qiymat domensiz faqat nomni ko'rsatadi)

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

Xuddi shu narsa, faqat guruh uchun

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

Foydalanuvchining guruhga tegishli ekanligini aniqlash usulini belgilaydi

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

LDAP serveriga xavfsiz ulanishdan foydalanishim kerakmi (albatta, ha!)

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

LDAP serveriga ulanish uchun port

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

Active Directory server manzilingiz

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

Biz domendagi foydalanuvchilarni qidirishni qaerdan boshlash kerakligini ko'rsatamiz

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

Active Directory-da qidirish huquqiga ega foydalanuvchini belgilang

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

Active Directory-ga ulanish uchun foydalanuvchi parolini belgilang

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

Active Directory-ga ulanish uchun kutish vaqtini belgilash

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

Biz foydalanuvchi import operatsiyasi uchun vaqt chegarasini o'rnatdik

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

Active Directory ulanish konfiguratsiyasini faollashtirish

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

Biz foydalanuvchilarni Active Directory-dan import qilamiz

Qadam 3. Token uchun QR kodini yarating
Bu erda hamma narsa juda oddiy. Brauzerda OTP serverining veb-interfeysini oching, tizimga kiring (administrator uchun standart parolni o'zgartirishni unutmang!) va "Chop etish" tugmasini bosing:

2FA ga o'ting (ASA SSL VPN uchun ikki faktorli autentifikatsiya)
Ushbu harakatning natijasi ikkita QR kodini o'z ichiga olgan sahifa bo'ladi. Biz ulardan birinchisini jasorat bilan e'tiborsiz qoldiramiz (jozibali Google Authenticator / Authenticator / 2 Steps Authenticator yozuviga qaramay) va biz yana ikkinchi kodni telefondagi dasturiy ta'minot belgisiga jasorat bilan skanerlaymiz:

2FA ga o'ting (ASA SSL VPN uchun ikki faktorli autentifikatsiya)
(ha, men QR kodini o'qib bo'lmaydigan qilish uchun ataylab buzdim).

Ushbu amallarni bajarganingizdan so'ng, har o'ttiz soniyada ilovangizda olti xonali parol yaratila boshlaydi.

Ishonch hosil qilish uchun uni bir xil interfeysda tekshirishingiz mumkin:

2FA ga o'ting (ASA SSL VPN uchun ikki faktorli autentifikatsiya)
Telefoningizdagi ilovadan foydalanuvchi nomingiz va bir martalik parolni kiritish orqali. Ijobiy javob oldingizmi? Shunday qilib, biz davom etamiz.

4-qadam. FreeRADIUS ishini qo'shimcha konfiguratsiya va sinovdan o'tkazish
Yuqorida aytib o'tganimdek, multiOTP allaqachon FreeRADIUS bilan ishlash uchun sozlangan, qolgani sinovlarni o'tkazish va FreeRADIUS konfiguratsiya fayliga VPN shlyuzimiz haqida ma'lumot qo'shishdir.

Biz server konsoliga, katalogga qaytamiz /usr/local/bin/multiotp/, kiriting:

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

Batafsil ro'yxatga olish, shu jumladan.

FreeRADIUS mijozlar konfiguratsiya faylida (/etc/freeradius/clinets.conf) bilan bog'liq barcha satrlarni izohlang localhost va ikkita yozuv qo'shing:

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

- sinov uchun

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

β€” VPN shlyuzimiz uchun.

FreeRADIUS-ni qayta ishga tushiring va tizimga kirishga harakat qiling:

radtest username 100110 localhost 1812 testing321

qayerda username = foydalanuvchi nomi, 100110 = telefondagi ilova tomonidan bizga berilgan parol, localhost = RADIUS server manzili, 1812 - RADIUS server porti, test321 β€” RADIUS server mijoz paroli (biz konfiguratsiyada ko'rsatganmiz).

Ushbu buyruqning natijasi taxminan quyidagicha chiqariladi:

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

Endi biz foydalanuvchi muvaffaqiyatli autentifikatsiya qilinganligiga ishonch hosil qilishimiz kerak. Buning uchun biz multiotp jurnalining o'zini ko'rib chiqamiz:

tail /var/log/multiotp/multiotp.log

Va agar oxirgi yozuv bo'lsa:

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

Keyin hammasi yaxshi bo'ldi va biz yakunlay olamiz

5-qadam: Cisco ASA ni sozlang
Keling, bizda allaqachon Active Directory bilan birgalikda sozlangan SLL VPN orqali kirish uchun tuzilgan guruh va siyosatlar mavjudligiga rozilik bildiraylik va biz ushbu profil uchun ikki faktorli autentifikatsiyani qo'shishimiz kerak.

1. Yangi AAA server guruhini qo'shing:

2FA ga o'ting (ASA SSL VPN uchun ikki faktorli autentifikatsiya)
2. Guruhga multiOTP serverimizni qo'shing:

2FA ga o'ting (ASA SSL VPN uchun ikki faktorli autentifikatsiya)
3. Biz tahrir qilamiz ulanish profili, Active Directory server guruhini asosiy autentifikatsiya serveri sifatida sozlash:

2FA ga o'ting (ASA SSL VPN uchun ikki faktorli autentifikatsiya)
4. Yorliqda Kengaytirilgan -> Autentifikatsiya Shuningdek, biz Active Directory server guruhini tanlaymiz:

2FA ga o'ting (ASA SSL VPN uchun ikki faktorli autentifikatsiya)
5. Yorliqda Kengaytirilgan -> Ikkilamchi autentifikatsiya qilish uchun multiOTP serveri ro'yxatdan o'tgan yaratilgan server guruhini tanlang. Esda tutingki, Session foydalanuvchi nomi asosiy AAA serverlar guruhidan meros qilib olingan:

2FA ga o'ting (ASA SSL VPN uchun ikki faktorli autentifikatsiya)
Sozlamalarni qo'llang va

6-qadam, ya'ni oxirgisi
Keling, ikki faktorli autentifikatsiya SLL VPN uchun ishlashini tekshirib ko'raylik:

2FA ga o'ting (ASA SSL VPN uchun ikki faktorli autentifikatsiya)
Voila! Cisco AnyConnect VPN Client orqali ulanishda sizdan ikkinchi, bir martalik parol ham so'raladi.

Umid qilamanki, ushbu maqola kimgadir yordam beradi va kimgadir undan qanday foydalanish haqida o'ylashga yordam beradi, бСсплатный OTP server, boshqa vazifalar uchun. Agar xohlasangiz, sharhlarda baham ko'ring.

Manba: www.habr.com

a Izoh qo'shish