7.10. Настройка dot1x (802.1X)
Назначение
Локальные сети IEEE 802 часто развертываются в средах, которые допускают физическое подключение неавторизованных устройств к инфраструктуре локальной сети, или разрешают неавторизованным пользователям пытаться получить доступ к локальной сети через уже подключенное оборудование.
Dot1x предназначен для настройки аутентификации пользователей в подобных сетях.
Описание
Контроль сетевого доступа на основе портов использует характеристики физического доступа к инфраструктуре локальных сетей IEEE 802, чтобы обеспечить средства аутентификации и авторизации устройств, подключенных к порту локальной сети, который имеет характеристики соединения “точка-точка”, и предотвращения доступа к этому порту в случаях, когда процесс аутентификации и авторизации не удается.
При аутентификации на основе портов 802.1X устройства в сети имеют следующие роли:
Клиент: устройство (ПК), которое запрашивает доступ к услугам локальной сети и коммутатора и отвечает на запросы коммутатора. На ПК должно быть установлено клиентское программное обеспечение с поддержкой стандарта 802.1X.
Сервер аутентификации: выполняет аутентификацию клиента. Сервер аутентификации проверяет данные клиента и уведомляет коммутатор о наличии у клиента прав доступа к локальной сети и службам коммутатора. Поскольку коммутатор выступает в роли прокси, служба аутентификации прозрачна для клиента. В настоящей реализации единственным поддерживаемым сервером аутентификации является система безопасности RADIUS с расширениями EAP. RADIUS работает по модели клиент/сервер, в которой безопасная информация об аутентификации передается между сервером RADIUS и одним или несколькими клиентами RADIUS.
Коммутатор: контролирует физический доступ к сети на основе статуса аутентификации клиента . Коммутатор выступает роли прокси между клиентом и сервером аутентификации, запрашивая у клиента идентификационную информацию, проверяя ее на сервере аутентификации и передавая ответ клиенту. На коммутаторе реализован клиент RADIUS, который отвечает за инкапсуляцию и декапсуляцию кадров EAP и взаимодействие с сервером аутентификации. Когда коммутатор получает кадры EAPOL и передает их на сервер аутентификации, заголовок Ethernet удаляется, а оставшийся кадр EAP повторно инкапсулируется в формат RADIUS. Кадры EAP не изменяются и не проверяются во время инкапсуляции, сервер аутентификации должен поддерживать EAP в исходном формате кадра. Когда коммутатор получает кадры от сервера аутентификации, заголовок кадра сервера удаляется, и кадр EAP инкапсулируется в кадр Ethernet и отправляется клиенту.
Dot1x может быть включен на маршрутизирующем порту и порту доступа.
Для получения более подробной информации см. 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 на маршрутизирующем порте
В примере выше описано включение функции 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 может быть принудительно авторизованным или принудительно неавторизованным.
Можно выбрать режим управления портом: принудительно авторизованный, принудительно неавторизованный или автоматический. Новая конфигурация перезаписывает предыдущую.
Принудительно авторизованный:
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