2FA руу очно уу (ASA SSL VPN-д зориулсан хоёр хүчин зүйлийн баталгаажуулалт)

Танай байгууллагын тодорхой серверт хандах шаардлагатай хэрэглэгчид эсвэл түншүүд эсэхээс үл хамааран корпорацийн орчинд алсаас нэвтрэх хэрэгцээ улам бүр нэмэгдэж байна.

Эдгээр зорилгын үүднээс ихэнх компаниуд VPN технологийг ашигладаг бөгөөд энэ нь байгууллагын дотоод нөөцөд нэвтрэх найдвартай хамгаалалт болох нь батлагдсан.

Манай компани ч үл хамаарах зүйл биш байсан бөгөөд бид бусад хүмүүсийн нэгэн адил энэ технологийг ашигладаг. Мөн бусад олон хүмүүсийн нэгэн адил бид Cisco ASA 55xx-ийг алсаас нэвтрэх гарц болгон ашигладаг.

Алсын хэрэглэгчдийн тоо нэмэгдэхийн хэрээр итгэмжлэл олгох журмыг хялбарчлах шаардлага гарч байна. Гэхдээ үүний зэрэгцээ аюулгүй байдлыг алдагдуулахгүйгээр хийх ёстой.

Бид өөрсдийнхөө хувьд нэг удаагийн нууц үг ашиглан Cisco SSL VPN-ээр холбогдохын тулд хоёр хүчин зүйлийн баталгаажуулалтыг ашиглах шийдлийг олсон. Энэхүү нийтлэл нь шаардлагатай програм хангамжийн хувьд хамгийн бага цаг хугацаа, тэг зардалгүйгээр ийм шийдлийг хэрхэн зохион байгуулахыг танд хэлэх болно (таны дэд бүтцэд Cisco ASA байгаа бол).

Зах зээл нь нэг удаагийн нууц үг үүсгэх хайрцагласан шийдлээр дүүрэн бөгөөд нууц үгээ SMS-ээр илгээх, техник хангамж, програм хангамж (жишээ нь гар утсан дээр) ашиглах гэх мэт олон сонголтыг санал болгодог. Гэхдээ мөнгө хэмнэх хүсэл, ажил олгогчдоо мөнгө хэмнэх хүсэл нь өнөөгийн хямралын үед намайг нэг удаагийн нууц үг үүсгэх үйлчилгээг хэрэгжүүлэх үнэгүй арга замыг олоход хүргэв. Энэ нь үнэ төлбөргүй боловч арилжааны шийдлүүдээс хамаагүй доогуур биш юм (энэ бүтээгдэхүүн нь арилжааны хувилбартай гэдгийг энд тэмдэглэж, захиалга хийх хэрэгтэй, гэхдээ бидний зардал мөнгөөр ​​тэг байх болно гэж бид тохиролцсон).

Тиймээс бидэнд хэрэгтэй:

- Вебээр дамжуулан серверт хандахад зориулагдсан multiOTP, FreeRADIUS болон nginx хэрэгслүүд бүхий Linux дүрс (http://download.multiotp.net/ - Би VMware-д бэлэн зураг ашигласан)
- Active Directory сервер
- Cisco ASA өөрөө (хялбар байхын тулд би ASDM ашигладаг)
— TOTP механизмыг дэмждэг аливаа програм хангамжийн токен (жишээлбэл, би Google Authenticator ашигладаг, гэхдээ ижил FreeOTP ашиглах болно)

Би зураг хэрхэн өрнөж байгаа талаар дэлгэрэнгүй ярихгүй. Үүний үр дүнд та multiOTP болон FreeRADIUS суулгасан, хамтран ажиллахаар тохируулсан Debian Linux болон 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

Нэг удаагийн пин (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-тай ажиллахаар тохируулагдсан тул туршилт хийж, FreeRADIUS тохиргооны файлд VPN гарцын талаарх мэдээллийг нэмэх л үлдлээ.

Бид серверийн консол руу, лавлах руу буцна /usr/local/bin/multiotp/, оруулна уу:

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

Илүү нарийвчилсан бүртгэлийг багтаасан болно.

FreeRADIUS үйлчлүүлэгчийн тохиргооны файлд (/etc/freeradius/clinets.conf) -тай холбоотой бүх мөрийг тайлбарла тестлээрэй болон хоёр оруулга нэмнэ:

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 = утсан дээрх програмаас бидэнд өгсөн нууц үг, тестлээрэй = RADIUS серверийн хаяг, 1812 - RADIUS серверийн порт, туршилт321 — 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-г тохируулах
Бидэнд Active Directory-тэй хамт тохируулагдсан SLL VPN-ээр нэвтрэхэд зориулагдсан бүлэг, бодлого аль хэдийн байгаа бөгөөд энэ профайлд хоёр хүчин зүйлийн баталгаажуулалтыг нэмэх шаардлагатай гэдгийг зөвшөөрцгөөе.

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 сервер. Хэрэв та хүсвэл сэтгэгдэл дээр хуваалцаарай.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх