Одете на 2FA (автентикација со два фактори за ASA SSL VPN)

Потребата да се обезбеди далечински пристап до корпоративна средина се појавува се почесто, без разлика дали се вашите корисници или партнери на кои им е потребен пристап до одреден сервер во вашата организација.

За овие цели, повеќето компании користат VPN технологија, која се покажа како сигурно заштитен начин за обезбедување пристап до локалните ресурси на организацијата.

Мојата компанија не беше исклучок, а ние, како и многу други, ја користиме оваа технологија. И, како и многу други, ние користиме Cisco ASA 55xx како портал за далечински пристап.

Како што се зголемува бројот на далечински корисници, постои потреба од поедноставување на постапката за издавање акредитиви. Но, во исто време, ова мора да се направи без да се загрози безбедноста.

За себе, најдовме решение во користењето двофакторна автентикација за поврзување преку Cisco SSL VPN, користејќи еднократни лозинки. И оваа публикација ќе ви каже како да организирате такво решение со минимално време и нула трошоци за потребниот софтвер (под услов веќе да имате Cisco ASA во вашата инфраструктура).

Пазарот изобилува со решенија во кутии за генерирање на еднократни лозинки, притоа нуди многу опции за нивно добивање, било да е тоа испраќање лозинка преку СМС или користење токени, и хардверски и софтверски (на пример, на мобилен телефон). Но, желбата да заштедам пари и желбата да заштедам пари за мојот работодавец, во сегашната криза, ме принудија да најдам бесплатен начин за имплементација на услуга за генерирање на еднократни лозинки. Што, иако е бесплатно, не е многу инфериорно во однос на комерцијалните решенија (тука треба да направиме резервација, со напомена дека овој производ има и комерцијална верзија, но се договоривме дека нашите трошоци, во пари, ќе бидат нула).

Значи, ни треба:

- Линукс слика со вграден сет на алатки - multiOTP, FreeRADIUS и nginx, за пристап до серверот преку веб (http://download.multiotp.net/ - користев готова слика за VMware)
— Сервер за Active Directory
— Самиот Cisco ASA (за погодност, користам ASDM)
— Секој софтверски токен што го поддржува механизмот TOTP (јас, на пример, користам Google Authenticator, но истиот FreeOTP ќе го направи)

Нема да навлегувам во детали за тоа како се развива сликата. Како резултат на тоа, ќе добиете Debian Linux со веќе инсталирани multiOTP и FreeRADIUS, конфигурирани да работат заедно и веб-интерфејс за OTP администрација.

Чекор 1. Го иницираме системот и го конфигурираме за вашата мрежа
Стандардно, системот доаѓа со root root ингеренциите. Мислам дека сите погодија дека би било добра идеја да ја смените лозинката на root корисникот по првото најавување. Исто така, треба да ги промените мрежните поставки (стандардно е „192.168.1.44“ со портата „192.168.1.1“). После тоа, можете да го рестартирате системот.

Ајде да создадеме корисник во Active Directory ОТП, со лозинка 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, останува само да се извршат тестови и да се додадат информации за нашата 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, тестирање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
Ајде да се согласиме дека веќе имаме конфигурирана група и политики за пристап преку SLL VPN, конфигурирани во врска со Active Directory и треба да додадеме двофакторна автентикација за овој профил.

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, ќе ви биде побарано и втора, еднократна лозинка.

Се надевам дека оваа статија ќе му помогне на некого и дека некому ќе му даде храна за размислување како да го искористи ова, бесплатно ОТП сервер, за други задачи. Споделете во коментари доколку сакате.

Извор: www.habr.com

Додадете коментар