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

image

Рис. 8.5 Конфигурация сети

Шаг 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