You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Current »

Двухфакторная аутентификация (далее 2FA) (также часто называется двухфакторной авторизацией) — это метод защиты доступа, при котором пользователю для входа в систему необходимо подтвердить свою личность с помощью двух различных типов (факторов) данных, например пароль от учетной записи и TOTP- код или SMS/Push уведомление. Данный подход существенно снижает риск несанкционированного доступа, так как одной компрометации пароля злоумышленнику недостаточно для получения доступа.

В системе WNAM 2 для использования 2FA при использовании протокола TACACS+ для доступа администраторов к сетевому оборудованию имеется несколько способов проверки второго фактора авторизации:

Двухфакторная авторизация может использоваться как с локальными учетными записями администраторов оборудования, настроенных в WNAM 2 ("Device admin" → "Администраторы оборудования"), так и для доменных учетных записей ("Объекты" → "Службы каталогов")

Ниже приведена таблица совместимости методов 2FA для разных типов учетных записей:

2FAЛокальная учетная записьДоменная учетная запись

RADIUS через одноразовый код

ПоддерживаетсяПоддерживается

RADIUS через Push

ПоддерживаетсяПоддерживается

TOTP код портала самообслуживания

Не поддерживаетсяПоддерживается

Для всех вариантов проверки второго фактора и типов учетных записей в правилах TACACS+ ("Device admin" → "Правила TACACS+") в разделе "Проверка администратора" должно быть включено требование двухфакторной авторизации.

Пример правил TACACS+ для локальных и доменных учетных записей: 

Локальные УЗ:

Доменные УЗ:

В данном руководстве в качестве тестового будет использоваться коммутатор Cisco vIOS

Switch>sh version
Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Experimental Version 15.2(20200924:215240) [sweickge-sep24-2020-l2iol-release 135]

Для проверки авторизации через локальные учетные записи будет использоваться УЗ test_admin, через доменные учетные записи - vpupkin. Одноразовый код для проверки через RADIUS - 111111

В качестве внешнего RADIUS серврера будет использоваться отдельная инсталляция WNAM 2, на которой также будут заведены вышеуказанные учетные записи где, в зависимости от способа прверки второго фактора, в качестве пароля будет указан либо пароль от учетной записи либо правильный одноразовый код. В реальной эксплуатации логика проверки учетных данных и принятия решения об авторизации может быть любой.

Адрес сервера WNAM 2 - 172.16.133.51, внешнего RADIUS сервера - 172.16.133.35


Важно!

Перед настройкой двухфакторной авторизациии через TACACS+ необходимо настроить и убедится в работоспособности авторизации через TACACS без использования 2FA, причем именно с тем типом учетных записей (либо со всеми типами учетных записей) с которым будет работать 2FA и только после этого приступать к настройке двухфакторной авторизации

RADIUS через одноразовый код

Принцип работы

После успешной проверки учетных данных администратора сетевое устройство запрашивает у авторизующегося администратора OTP код, после чего по протоколу RADIUS отправляет имя пользователя и введенный код на внешний RADIUS сервер, указанный в настройках WNAM 2 ("Настройки" → "Двухфакторная авторизация"). Если внешний RADIUS сервер возвращает Access-Accept, то происходит успешная авторизация администратора на устройстве. В случае если ответ Access-Reject, код запрашивается повторно (количество повторов настраивается в настройках 2FA) и если ответ также Access-Reject, то авторизации не происходит.

Данный способ поддерживает работу как с локальными учетными записями, так и с учетными записями из служб каталогов настроенных в WNAM 2 (доменные учетные записи)

Настройка

Для настройки необходимо настроить 2FA глобально (и также, как указано выше, необходимо включить требование использования двухфакторной авторизации в правиле TACACS+)

В  меню "Настройки" → "Двухфакторная авторизация" необходимо включить способ "RADIUS", указать адрес (или адреса, если серверов несколько), секретный ключ, и указать в поле "Предпочтительный способ авторизации" - "Одноразовый код"

Отличий в настройке данного способа авторизации для локальных и доменных учетных записей нет, кроме стандарных различий в правилах TACACS+ (см. соответствующий раздел документации)

Пример работы

При попытке авторизации на тестовом коммутаторе по протоколу TACACS+ сначала проверяется правильность введенных учетных данных администратора. Вводим логин test_admin и пароль (admin)

Далее если учетные данные верные коммутатор запрашивает OTP код,  вводим код 1111111 и после ввода на внешний RADIUS сервер отправляется запрос Access-Request содержащий имя пользователя в атрибуте User-Name и введенный код в атрибуте User-Password

Далее в ответ приходит Access-Accept и коммутатор разрешает нам доступ в консоль


username: test_admin
password: 

Enter OTP code: 

Switch>


Обмен со сторонним RADIUS сервером:



RADIUS обмен
RADIUS Protocol
    Code: Access-Request (1)
    Packet identifier: 0x22 (34)
    Length: 50
    Authenticator: 13a9aecde9c34543ccbb93ad324a4ad9
    [The response to this request is in frame 2]
    Attribute Value Pairs
        AVP: t=User-Name(1) l=12 val=test_admin
            Type: 1
            Length: 12
            [Length: 10]
            User-Name: test_admin
        AVP: t=User-Password(2) l=18 val=Decrypted: 111111
            Type: 2
            Length: 18
            [Length: 16]
            User-Password: 111111
RADIUS Protocol
    Code: Access-Accept (2)
    Packet identifier: 0x22 (34)
    Length: 38
    Authenticator: 11cb94c82ed7d389b23153f2d17568aa
    [This is a response to a request in frame 1]
    [Time from request: 15.288000 milliseconds]
    Attribute Value Pairs
        AVP: t=Message-Authenticator(80) l=18 val=2d4442772d98aef90220025f2d4f4e14
            Type: 80
            Length: 18
            [Length: 16]
            Message-Authenticator: 2d4442772d98aef90220025f2d4f4e14

Соответственно в случае если OTP код введен неверный в ответ приходит Acces-Reject запрос повторяется (снова в сторону внешнего RADIUS сервера отправляется пакет Access-Request) и в случае повторного ввода неправильно кода RADIUS сервер снова отвечает Acces-Reject и следует отказ в авторизации:

username: test_admin
password:

Enter OTP code:

Enter OTP code:
Password confirmation failure

username:

Лог TACACS сессии в WNAM 2:


Лог TACACS сессии из WNAM 2
+0 ms:
authentication ASCII
request username

+2621 ms:authentication ASCII
continue, request password

+1555 ms:authentication
local user found, name: test_admin

+0 ms:profile matching
profiles to check: 2

+119 ms:adctool domain login check
domain: lab.wnam.ru success

+0 ms:membership check
test_admin user is not found or password incorrect in the domain lab.wnam.ru

+0 ms:password check in AD
test_2fa_domain: failed

+1 ms:check profile
test_2fa_domain: user from directory doesn't match

+0 ms:check profile
test_2fa_local_admin: matching found

+0 ms:profile matching
test_2fa_local_admin

+0 ms:authorization
add 0 command set commands, 0 profile commands, 0 user commands

+0 ms:authorization
0 profile attributes

+1 ms:policy
getAuthentication user 'test_admin' succeeded, privilege level: 15

+0 ms:authentication ASCII
success

+0 ms:two-factor auth
code requested

+1678 ms:two-factor auth
the code verification was successful


RADIUS через Push в приложение

Принцип работы

После успешной проверки учетных данных администратора, после чего по протоколу RADIUS отправляется имя пользователя и пароль на внешний RADIUS сервер, указанный в настройках WNAM 2 ("Настройки" → "Двухфакторная авторизация"). Если внешний RADIUS сервер возвращает Access-Accept, то происходит успешная авторизация администратора на устройстве. В случае если ответ Access-Reject, код запрашивается повторно (количество повторов настраивается в настройках 2FA) и если ответ также Access-Reject, то авторизации не происходит. В данном способе при авторизации дополнительно никакой код не запрашивается, вся проверка проводится на внешнем сервере на основании введенных учетных данных.

Данный способ поддерживает работу как с локальными учетными записями, так и с учетными записями из служб каталогов настроенных в WNAM 2 (доменные учетные записи)

Настройка

Для настройки необходимо настроить 2FA глобально (и также, как указано выше, необходимо включить требование использования двухфакторной авторизации в правиле TACACS+)

В  меню "Настройки" → "Двухфакторная авторизация" необходимо включить способ "RADIUS", указать адрес (или адреса, если серверов несколько), секретный ключ, и указать в поле "Предпочтительный способ авторизации" - "Пуш в приложение"


Пример работы

При попытке авторизации на тестовом коммутаторе по протоколу TACACS+ сначала проверяется правильность введенных учетных данных администратора. Вводим логин vpupkin и пароль (vpupkin)

Далее если учетные данные верные WNAM 2 отправляет на внешний RADIUS сервер запрос Access-Request содержащий имя пользователя в атрибуте User-Name и пароль в атрибуте User-Password

Далее в ответ приходит Access-Accept и коммутатор разрешает нам доступ в консоль


username: vpupkin
password:

Switch>

Обмен со сторонним RADIUS сервером:

RADIUS обмен
RADIUS Protocol
    Code: Access-Request (1)
    Packet identifier: 0x2e (46)
    Length: 47
    Authenticator: b0275fc67943e9be93aa45e73358cf85
    [The response to this request is in frame 41]
    Attribute Value Pairs
        AVP: t=User-Name(1) l=9 val=vpupkin
            Type: 1
            Length: 9
            [Length: 7]
            User-Name: vpupkin
        AVP: t=User-Password(2) l=18 val=Decrypted: vpupkin
            Type: 2
            Length: 18
            [Length: 16]
            User-Password: vpupkin
RADIUS Protocol
    Code: Access-Accept (2)
    Packet identifier: 0x2e (46)
    Length: 38
    Authenticator: b3cfb19e654bf41cd15538be799c1a17
    [This is a response to a request in frame 40]
    [Time from request: 90.439000 milliseconds]
    Attribute Value Pairs
        AVP: t=Message-Authenticator(80) l=18 val=e7b3aaf9c2e51a0d204a4369343756d2
            Type: 80
            Length: 18
            [Length: 16]
            Message-Authenticator: e7b3aaf9c2e51a0d204a4369343756d2

Лог TACACS сессии в WNAM 2:

Лог TACACS сессии из WNAM 2
+0 ms:authentication ASCII
request username

+2449 ms:authentication ASCII
continue, request password

+2677 ms:profile matching
profiles to check: 2, method=ACTIVE_DIRECTORY

+183 ms:adctool domain login check
domain: lab.wnam.ru success

+1 ms:group membership check
test_2fa_domain: matched user 'vpupkin' in group 'Пользователи домена'

+0 ms:password check in AD
test_2fa_domain: success

+0 ms:check profile
test_2fa_domain: matching found

+0 ms:profile matching
test_2fa_domain

+0 ms:local user
vpupkin requesting active directory over LDAP

+0 ms:authorization
add 0 command set commands, 0 profile commands, 0 user commands

+0 ms:authorization
0 profile attributes

+7 ms:policy
getAuthentication user 'vpupkin' succeeded, privilege level: 1

+1 ms:authentication ASCII
success

+86 ms:two-factor auth
the verification was successful

OTP код через портал самообслуживания

Важно!

Данный способ проверки второго фактора работает только с доменными учетными записями. В случае использования локальной учетной записи будет применен настроный глобально RADIUS-способ проверки. В случае если глобально не настроен ни один способ 2FA локальный пользователь будет получать отказ в авторизации вне зависимости от правильности ввода учетных данных!
Данный способ проверки второго фактора для доменных учетных записей имеет приоритет над остальными способами. Т.е. если для доменного пользователя инициализирован TOTP код на портале самообслуживания, то остальные способы проверки для данной учетной записи использоваться не будут, независимо от глобальных настроек.

Принцип работы

После успешной проверки учетных данных администратора сетевое устройство запрашивает у авторизующегося администратора OTP код, который администратор должен получить в одном из приложений для генерации кодов (например Яндекс Ключ, FreeOTP, Google Authenticator или любое другое работающее с использованием алгоритма TOTP) зарегистрировавшись на портале самообслуживания WNAM 2. После успешной проверки кода происходит авторизация администратора на устройстве.

Настройка

В первую очередь необходимо включить в настройках портала самообслуживания самостоятельную регистрацию одноразовых (TOTP) кодов ("NAC" → "Самообслуживание"):

Далее необходимо инициализировать OTP код на портале самообслуживания WNAM 2.

Портал самообслуживания находится по адресу https://<Адрес сервера WNAM 2>/selfservice (В данном примере https://172.16.133.51/selfservice/)

Администратор оборудования должен войти под своей доменной учетной записью на портал самообслуживания WNAM 2.

В разделе "Одноразовые ТОТР-коды" нужно нажать кнопку "Сформировать QR-код"

Появится окно с QR кодом для приложения для генерации TOTP кодов.

Далее при помощи такого приложения (в данном примере это FreeOTP, но можно использовать и любое другое приложение с таким функционалом) необходимо добавить данный код в приложение. Как только данный код добавлен нужно нажать на кнопку "Ввести код" и ввести код из приложения в портале самообслуживания.

Также в правилах TACACS необходимо включить требование двухфакторной авторизации в разделе "Проверка администратора"

Пример работы

При попытке авторизации на тестовом коммутаторе по протоколу TACACS+ сначала проверяется правильность введенных учетных данных администратора. Вводим логин vpupkin и пароль (vpupkin)

Далее если учетные данные верные происходит проверка OTP кода - появляется запрос на ввод OTP кода. Администратор вводит код из приложения для генерации кодов и если код верный - происходит авторизация администратора на оборудовании.


username: vpupkin
password:

Enter OTP code:

Switch>


Лог TACACS сессии из WNAM 2
+0 ms:
authentication ASCII
request username

+5251 ms:authentication ASCII
continue, request password

+4088 ms:profile matching
profiles to check: 2, method=ACTIVE_DIRECTORY

+133 ms:adctool domain login check
domain: lab.wnam.ru success

+1 ms:group membership check
test_2fa_domain: matched user 'vpupkin' in group 'Пользователи домена'

+0 ms:password check in AD
test_2fa_domain: success

+1 ms:check profile
test_2fa_domain: matching found

+0 ms:profile matching
test_2fa_domain

+0 ms:local user
vpupkin requesting active directory over LDAP

+0 ms:authorization
add 0 command set commands, 0 profile commands, 0 user commands

+0 ms:authorization
0 profile attributes

+8 ms:policy
getAuthentication user 'vpupkin' succeeded, privilege level: 1

+0 ms:authentication ASCII
success

+0 ms:two-factor auth
code requested

+4348 ms:two-factor auth
the verification was successful



  • No labels