Перейти к основному содержимому

6.10 Настройка dot1x

6.10.1 Обзор

Введение в функциональность

IEEE 802.1X применяется для контроля доступа к сети на уровне порта. Этот стандарт используется для аутентификации и авторизации устройств, подключённых к порту с точка-точка соединением, и для предотвращения доступа к порту при неудачной аутентификации.

При аутентификации на основе 802.1X устройства в сети выполняют следующие роли:

  • Client - Устройство (например, ПК), которое запрашивает доступ к сети и отвечает на запросы коммутатора. Программное обеспечение клиента должно поддерживать стандарт 802.1X (например, приложение "xsupplicant" для Linux).
  • Authentication server - Проводит проверку личности клиента и уведомляет коммутатор о том, разрешён ли доступ. Поскольку коммутатор выступает в роли прокси, служба аутентификации остаётся прозрачной для клиента. В этой версии системы поддерживается только сервер аутентификации RADIUS с расширениями протокола Extensible Authentication Protocol (EAP). RADIUS работает по модели клиент/сервер, в которой защищённая информация для аутентификации обменивается между сервером RADIUS и одним или несколькими клиентами RADIUS.
  • Switch (edge switch or wireless access point) - Коммутатор контролирует физический доступ к сети на основе статуса аутентификации клиента. Он действует как посредник (прокси) между клиентом и сервером аутентификации, запрашивая у клиента информацию для идентификации, проверяя эту информацию на сервере аутентификации и передавая ответ клиенту.

Коммутатор включает клиент RADIUS, который отвечает за инкапсуляцию и деинкапсуляцию кадров EAP и взаимодействие с сервером аутентификации. Когда коммутатор получает кадры EAPOL и передаёт их на сервер аутентификации, Ethernet-заголовок удаляется, а оставшийся кадр EAP повторно инкапсулируется в формате RADIUS. Кадры EAP не изменяются и не анализируются во время инкапсуляции, и сервер аутентификации должен поддерживать EAP в его исходном формате.

Когда коммутатор получает кадры от сервера аутентификации, заголовок кадра сервера удаляется, оставляя кадр EAP, который затем инкапсулируется для Ethernet и отправляется клиенту.

Dot1x можно включить как на маршрутизируемом порту, так и на порту доступа.

Описание принципа работы

См. стандарт IEEE Std 802.1X-2004.

6.10.2 Конфигурация

Основная настройка dot1x

Рисунок 6-6: Mac address aging

Рисунок 6-6: dot1x

Шаг 1: Перейдите в режим настройки

Switch# configure terminal

Шаг 2: Включите dot1x глобально

Switch(config)# dot1x system-auth-ctrl

Шаг 3: Настройте параметры интерфейса и включите dot1x

Switch(config)# interface eth-0-25
Switch(config-if)# switchport mode access
Switch(config-if)# dot1x port-control auto
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface vlan 1
Switch(config-if)# ip address 192.168.100.1/24
Switch(config-if)# exit

Шаг 4: Настройте параметры L3-интерфейса и сервер RADIUS

Switch(config)# interface eth-0-26
Switch(config-if)# no switchport
Switch(config-if)# ip address 202.38.100.1/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# radius-server host 202.38.100.7
Switch(config)# radius-server host 2001:1000::1
Switch(config)# radius-server key test
Switch(config)# exit

Шаг 5: Выйдите из режима настройки

Switch(config)# end

Шаг 6: Проверка

Проверка статуса dot1x:

Switch# show dot1x
802.1X Port-Based Authentication Enabled
RADIUS server address: 2001:1000::1:1812
Next radius message ID: 0
RADIUS server address: 202.38.100.7:1812
Next radius message ID: 0
Switch# show dot1x interface eth-0-25
802.1X info for interface eth-0-25
portEnabled : true
portControl : Auto
portMode : Port based
portStatus : Authorized
Mac Auth bypass : disabled
reAuthenticate : disabled
reAuthPeriod : 3600
Max user number : 255
Current session number : 1
Accept user number : 1
Reject user number : 0
Guest VLAN : N/A
Assign VLAN : N/A
QuietPeriod : 60
ReqMax : 2
TxPeriod : 30
SuppTimeout : 30
ServerTimeout : 30
CD: adminControlledDirections : in
CD: operControlledDirections : in
CD: bridgeDetected : false
========================================

session 1: 1 - 0011.0100.0001
----------------------------------------
user name : admin
abort:F fail:F start:F timeout:F success:T
PAE: state: Authenticated - portMode: Auto
PAE: reAuthCount: 0 - rxRespId: 0
BE: state: Idle - reqCount: 0 - idFromServer: 5

Настройка dot1x на маршрутизируемом порту

Пример выше описывает включение dot1x на порту доступа. Эта функция также может быть активирована на маршрутизируемом порту. Следующий пример демонстрирует, как изменить eth-0-25 на маршрутизируемый порт и включить dot1x.

Switch(config)# interface eth-0-25
Switch(config-if)# no switchport
Switch(config-if)# ip address 192.168.100.1/24
Switch(config-if)# dot1x port-control auto
Switch(config-if)# no shutdown
Switch(config-if)# exit

Использование режима принудительного управления

Режим управления dot1x портом может быть настроен как force-authorized или force-unauthorized.

Режим force-authorized:

Switch(config)# interface eth-0-25
Switch(config-if)# dot1x port-control force-authorized
Switch(config-if)# exit

Режим force-unauthorized:

Switch(config)# interface eth-0-25
Switch(config-if)# dot1x port-control force-unauthorized
Switch(config-if)# exit

Пользователь может выбрать режим управления портом: force-authorized, force-unauthorized или auto. Последняя конфигурация перезапишет предыдущую.

Включение учёта dot1x

Учёт dot1x может быть использован для отслеживания использования сети после аутентификации пользователя. По умолчанию учёт dot1x отключён. Его можно включить в глобальном режиме настройки.

Включение учёта dot1x:

Switch(config)# dot1x accounting-mode radius

После включения учёта dot1x устройство отправляет запрос начала учёта на сервер после аутентификации пользователя. Если соответствующий ответ не получен, необходимо настроить политику для обработки ошибок:

  • online - Чтобы избежать влияния сетевых сбоев на пользователей, можно настроить политику, позволяющую пользователям оставаться онлайн.
  • offline - Если учёт dot1x не запускается, можно настроить политику для отклонения пользователей.
Switch(config)# dot1x accounting start-fail online

Пользователь может настроить учёт в режиме реального времени, чтобы устройство периодически отправляло запросы учёта на сервер. Сервер сохраняет учёт пользователей только при получении запросов учёта в реальном времени, что помогает избежать ошибок учёта, если сервер не получает пакеты остановки учёта от устройства.

Кроме того, пользователь может настроить максимальное количество попыток учёта в реальном времени без ответа и действие при сбое учёта в реальном времени. По умолчанию максимальное количество попыток учёта в реальном времени без ответа установлено на 3, и пользователю разрешается оставаться в сети после сбоя учёта в реальном времени.

Switch(config)# dot1x accounting realtime 60
Switch(config)# dot1x accounting interim-fail max-times 2 offline

Дополнительные параметры dot1x

Таймер для RADIUS сервера:

  • Установить время ожидания для повторной активации RADIUS сервера;
  • Задать максимальное количество неудачных запросов к серверу;
  • Установить тайм-аут для ответа от сервера.
Switch(config)# radius-server deadtime 10 
Switch(config)# radius-server retransmit 5
Switch(config)# radius-server timeout 10

Атрибуты интерфейса:

  • Указать количество попыток повторной аутентификации перед отключением;
  • Задать версию протокола;
  • Указать период тишины в состоянии HELD;
  • Включить повторную аутентификацию на порту;
  • Указать интервал между попытками повторной авторизации;
  • Установить тайм-аут ответа сервера;
  • Указать тайм-аут ответа клиента;
  • Установить интервал между последовательными запросами ID.
Switch(config)# interface eth-0-25
Switch(config-if)# dot1x max-req 5
Switch(config-if)# dot1x protocol-version 1
Switch(config-if)# dot1x quiet-period 120
Switch(config-if)# dot1x reauthentication
Switch(config-if)# dot1x timeout re-authperiod 1800
Switch(config-if)# dot1x timeout server-timeout 60
Switch(config-if)# dot1x timeout supp-timeout 60
Switch(config-if)# dot1x timeout tx-period 60
Switch(config-if)# dot1x handshake
Switch(config-if)# dot1x timeout handshake-period 1
Switch(config-if)# exit

6.10.3 Примеры использования

Настройка сервера RADIUS (пример с использованием WinRadius)

Шаг 1: Открытие настроек

На сервере WinRadius (например) выберите меню "Setting -> System", как показано на рисунке ниже.

Рисунок 6-7: Выбор "Setting -> System"

Рисунок 6-7: Выбор "Setting -> System"

Шаг 2: Конфигурация shared-key, порта авторизации и порта учёта

Настройте shared-key, порт авторизации и порт учёта. Эти параметры необходимы для взаимодействия сервера RADIUS с устройством.

Рисунок 6-8: Настройка shared-key, порта авторизации и порта учёта

Рисунок 6-8: Настройка shared-key, порта авторизации и порта учёта

Шаг 3: Добавление имени пользователя и пароля

На сервере добавьте имя пользователя и пароль для клиента, который будет использоваться для аутентификации.

Рисунок 6-9: Добавление имени пользователя и пароля на сервере

Рисунок 6-9: Добавление имени пользователя и пароля на сервере