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-қадам. Жүйені іске қосып, оны желіңіз үшін конфигурациялаймыз
Әдепкі бойынша, жүйе түбірлік тіркелгі деректерімен бірге келеді. Менің ойымша, бірінші кіруден кейін түбірлік пайдаланушының құпия сөзін өзгерту жақсы идея болатынын бәрі ойлады. Сондай-ақ желі параметрлерін өзгерту қажет (әдепкі бойынша ол '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-пен жұмыс істеу үшін конфигурацияланған, тек сынақтарды орындау және 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 сервер порты, 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 конфигурациялау
Бізде 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 сервері тіркелген құрылған сервер тобын таңдаңыз. Сеанс пайдаланушы аты негізгі AAA сервер тобынан мұраланғанын ескеріңіз:

2FA өтіңіз (ASA SSL VPN үшін екі факторлы аутентификация)
Параметрлерді қолданыңыз және

6-қадам, яғни соңғысы
SLL VPN үшін екі факторлы аутентификация жұмыс істейтінін тексерейік:

2FA өтіңіз (ASA SSL VPN үшін екі факторлы аутентификация)
Voila! Cisco AnyConnect VPN Client арқылы қосылу кезінде сізден екінші бір реттік құпия сөз сұралады.

Бұл мақала біреуге көмектеседі деп үміттенемін және бұл біреуге оны қалай пайдалану керектігі туралы ойлануға көмектеседі, бесплатный Басқа тапсырмалар үшін OTP сервері. Қаласаңыз, түсініктемелерде бөлісіңіз.

Ақпарат көзі: www.habr.com

пікір қалдыру