8.10. Настройка dot1x (802.1X)
Назначение
Локальные сети IEEE 802 часто развертываются в средах, которые допускают физическое подключение неавторизованных устройств к инфраструктуре локальной сети, или разрешают неавторизованным пользователям пытаться получить доступ к локальной сети через уже подключенное оборудование.
Dot1x предназначен для настройки аутентификации пользователей в подобных сетях.
Описание
Стандарт IEEE 802.1X определяет протокол контроля доступа и аутентификации, который ограничивает права неавторизованных компьютеров, подключенных к коммутатору. Сервер аутентификации проверяет каждый компьютер перед тем, как тот сможет воспользоваться сервисами, которые предоставляет ему коммутатор. До тех пор, пока компьютер не аутентифицировался, он может использовать только протокол EAPOL (англ. extensible authentication protocol over LAN) и только после успешной аутентификации весь остальной трафик сможет проходить через тот порт коммутатора, к которому подключен данный компьютер.
При аутентификации на основе портов 802.1X устройства в сети имеют следующие роли:
Клиент: устройство (ПК), которое запрашивает доступ к услугам локальной сети и коммутатора и отвечает на запросы коммутатора. На ПК должно быть установлено клиентское программное обеспечение с поддержкой стандарта 802.1X (supplicant).
Сервер аутентификации: выполняет аутентификацию клиента. Сервер аутентификации проверяет данные клиента и уведомляет коммутатор о наличии у клиента прав доступа к локальной сети и службам коммутатора. Поскольку коммутатор выступает в роли прокси, служба аутентификации прозрачна для клиента. В настоящей реализации единственным поддерживаемым сервером аутентификации является система безопасности RADIUS с расширениями EAP. RADIUS работает по модели клиент/сервер, в которой безопасная информация об аутентификации передается между сервером RADIUS и одним или несколькими клиентами RADIUS.
Коммутатор: контролирует физический доступ к сети на основе статуса аутентификации клиента . Коммутатор выступает роли прокси между клиентом и сервером аутентификации, запрашивая у клиента идентификационную информацию, проверяя ее на сервере аутентификации и передавая ответ клиенту. На коммутаторе реализован клиент RADIUS, который отвечает за инкапсуляцию и декапсуляцию фреймов EAP и взаимодействие с сервером аутентификации. Когда коммутатор получает фреймы EAPOL и передает их на сервер аутентификации, заголовок Ethernet удаляется, а оставшийся фрейм EAP повторно инкапсулируется в формат RADIUS. фреймы EAP не изменяются и не проверяются во время инкапсуляции, сервер аутентификации должен поддерживать EAP в исходном формате фрейма. Когда коммутатор получает фреймы от сервера аутентификации, заголовок фрейма сервера удаляется, и фрейм EAP инкапсулируется в фрейм Ethernet и отправляется клиенту.
Dot1x может быть включен на L3-интерфейсе и порте доступа.
Для получения более подробной информации см. IEEE Std 802.1X-2004.
Настройка
Базовая настройка dot1x
Шаг 1: Вход в режим “Global config”
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: Настройка порта, настройка сервера 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: Выход из режима “Global config”
Switch(config)# end
Шаг 6: Проверка
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 - 0058.3f00.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 на L3-интерфейсе
В примере выше описано включение функции dot1x на порте доступа. Данная функция также может быть включена на L3-интерфейсе. В примере ниже показано, как включить L3-интерфейс на порте “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 может быть принудительно авторизованным или принудительно неавторизованным.
Можно выбрать режим управления портом: принудительно авторизованный, принудительно неавторизованный или автоматический. Новая конфигурация перезаписывает предыдущую.
Принудительно авторизованный:
Switch(config)# interface eth-0-25
Switch(config-if)# dot1x port-control force-authorized
Switch(config-if)# exit
Принудительно неавторизованный:
Switch(config)# interface eth-0-25
Switch(config-if)# dot1x port-control force-unauthorized
Switch(config-if)# exit
Включение учета dot1x
Учет Dot1x предназначен для отслеживания использования сети после аутентификации пользователя. По умолчанию учет Dot1x отключен.
Включение учета:
Switch(config)# dot1x accounting-mode radius
Коммутатор отправляет запрос на запуск учета на сервер после аутентификации пользователя, если не получен соответствующий ответ, действует в соответствии с настройками политики start-fail:
Online - сбой службы учета не будет влиять на возможность пользователей выхода в сеть.
Offline - при сбое службы учета пользователям будет отказано находиться в сети.
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
Установка максимального количества неудачных запросов RADIUS, отправленных на сервер:
Switch(config)# radius-server retransmit 5
Установка значения таймаута при отсутствии ответа от сервера RADIUS:
Switch(config)# radius-server timeout 10
Дополнительные параметры интерфейса
Можно указать количество попыток повторной аутентификации перед тем, как стать неавторизованным:
Switch(config-if)# dot1x max-req 5
Можно установить версию протокола:
Switch(config-if)# dot1x protocol-version 1
Можно указать период покоя в состоянии HELD:
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
Можно указать секунды между последовательными попытками запроса ID:
Switch(config-if)# dot1x timeout tx-period 60
Можно включить dot1x handshake с клиентом на порте, указав период handshake:
Switch(config-if)# dot1x handshake
Switch(config-if)# dot1x timeout handshake-period 1