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 жасайт)

Мен сүрөттөлүштүн кандайча ачылып жатканына токтолбойм. Натыйжада, сиз multiOTP жана FreeRADIUS орнотулган, чогуу иштөө үчүн конфигурацияланган Debian Linux жана OTP башкаруу үчүн веб интерфейс аласыз.

1-кадам. Биз системаны ишке киргизип, аны тармагыңыз үчүн конфигурациялайбыз
Демейки боюнча, система түпкү тамыр грамоталары менен келет. Менимче, баары биринчи жолу киргенден кийин түпкү колдонуучунун сырсөзүн өзгөртүү жакшы идея болорун ойлошкон. Сиз ошондой эле тармак жөндөөлөрүн өзгөртүшүңүз керек (демейки боюнча ал '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) байланыштуу бардык саптарды комментарийлеп көрүү .xrf жана эки жазуу кошуу:

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 = телефондогу тиркеме тарабынан берилген сырсөз, көрүү .xrf = RADIUS сервер дареги, 1812 — RADIUS сервер порту, testing321 — 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 сервери, башка тапшырмалар үчүн. Кааласаңыз комментарийлерде бөлүшүңүз.

Source: www.habr.com

Комментарий кошуу