802.1X и RADIUS
Материал из Xgu.ru
|
Эта статья находится в процессе написания. |
Автор: Наташа Самойленко
Автор: Игорь Чубин
- Короткий URL: 802.1X_RADIUS
На этой странице рассматривается как организовать аутентификацию при доступе к порту коммутатора, поддерживающего стандарт 802.1X. Описывается настройки коммутаторов, а также собственно клиентских машин, которые будут осуществлять доступ в сеть. Рассмотрены случаи, когда аутентификация выполняется для хоста под управлением Windows XP, Linux, на котором запущен Xsupplicant, и Mac OS X.
Протокол RADIUS, его устройство, а также процедура инсталляции и конфигурирования RADIUS-сервера рассматривается на другой странице.
[править] Задачи
- Протокол RADIUS
- Обзор доступных RADIUS-серверов с открытым исходным кодом
- Инсталляция и настройка RADIUS-сервера FreeRADIUS
- Web-интерфейс RADIUS-сервера
- Организация PPPoE сервера с аутентификацией через RADIUS
- Совместное использование Active Directory и RADIUS-сервера FreeRADIUS
- Организация доступа к портам коммутатора с помощью 802.1X и RADIUS (802.1X RADIUS)
- Настройка XSupplicant
[править] Основные понятия
AAA (authentication, authorization, accounting) — это набор сервисов сетевой безопасности, которые определяют подход для организации контроля доступа к сети.
Authentication (аутентификация) — процес подтверждения пользователем своей подлиности, подтверждения того, что пользователь запрашивающий сервис легитимный пользователь системы (в системе существует учетная запись для этого пользователя). Аутентификация может осуществляться по паролю, смарт-карте, сертификату и др.
Authorization (авторизация) — определяет какие сервисы будут доступны или какие сервисы будут запрещены пользователю прошедшему аутентификацию.
Accounting (учёт) — слежение за потреблением сетевых ресурсов пользователем.
EAP (Extensible Authentication Protocol) — протокол определяющий подход к процедуре аутентификации (не определяет конкретный механизм аутентификации). На основе этого подхода могут быть реализованы различные механизмы аутентификации, называемые методы EAP. EAP определяет формат сообщений, а каждый протокол использующий EAP определяет способ инкапсуляции сообщений EAP в свой формат.
EAPOL (EAP over LANs) — протокол определяющий способ инкапсуляции, который позволяет передавать пакеты EAP между supplicant и аутентификатором в локальных проводных сетях.
PAE (Port Access Entity) — отвечает за выполнение алгоритмов и протоколов.
[править] Настройка коммутатора Cisco для работы аутентификатором
Порядок настройки коммутатора:
- Настройка параметров RADIUS-сервера
- Настройка аутентификации 802.1X на коммутаторе
- Включение аутентификации 802.1X на коммутаторе
- Настройка аутентификации 802.1X на интерфейсах
- (опционально) Настройка динамического размещения порта коммутатора в VLAN'е по результатам аутентификации
- (опционально) Настройка динамических ACL для авторизованных пользователей
[править] Настройка параметров RADIUS-сервера
Если используется аутентификация на RADIUS-сервере, то должны быть настроены адрес (или имя) сервера и пароль использующийся между сервером и аутентификатором:
Switch(config)# radius-server host [host name | IP address] auth-port [port] acct-port [port] Switch(config)# radius-server key [string]
По умолчанию на коммутаторах Cisco для аутентификации используется порт 1654.
[править] Настройка аутентификации 802.1X на коммутаторе
Включение ААА:
Switch(config)# aaa new-model
Для аутентификации при доступе к порту коммутатора, необходимо указать методы аутентификации:
Switch(config)# aaa authentication dot1x {default|listname} method1 [method2 ...]
Возможные методы:
- group {group-name|radius|tacacs+} - использовать аутентификационные серверы.
- enable - использовать пароль привилегированного режима enable
- krb5 - использовать Kerberos 5 аутентификацию
- line - использовать пароль line
- local - использовать локальные имена и пароли
- none - не выполнять аутентификацию
Единственный метод, который действительно поддерживает 802.1X это group radius метод, в котором подлинность пользователя проверяется на RADIUS-сервере. Метод group tacacs+ не поддерживает аутентификацию 802.1X, а остальные методы (enable, line, local) аутентифицируют клиента по локальным данным коммутатора.
[править] Включение аутентификации 802.1X на коммутаторе
Включить аутентификацию 802.1X на коммутаторе:
Switch(config)# dot1x system-auth-control
[править] Настройка аутентификации 802.1X на интерфейсах
Каждый порт коммутатора, на котором должна выполняться аутентификация необходимо настроить следующим образом (порт коммутатора должен быть в режиме access):
Switch(config-if)# dot1x port-control {force-autorized|force-unauthorized|auto}
Опции означают:
- force-authorized - обязательно авторизовать клиента. Аутентификация не обязательна. Используется по умолчанию.
- force-unauthorized - не переводить порт в авторизованное состояние. Это означает, что трафик клиенту через этот порт проходить не может
- auto - использовать 802.1X для перехода из неавторизованного в авторизованное состояние.
Не путайте аутентифицировать и авторизовать!!! Клиент может быть авторизованным для использования порта, но при этом даже не проходить аутентификацию!
К порту коммутатора, использующему 802.1X, обычно подключается один компьютер. Если к нему подключено несколько компьютеров, необходимо дать для этого порта команду:
Switch(config-if)# dot1x multi-hosts
[править] Настройка динамического размещения порта коммутатора в VLAN'е по результатам аутентификации
Поддержка протокола 802.1X позволяет коммутатору помещать порт в различные VLAN'ы в зависимости от результатов аутентификации клиента. Для этого необходимо:
- Настроить RADIUS север таким образом чтобы он передавал информацию и о принадлежности пользователя к VLAN'у
- Настроить на коммутаторе авторизацию на RADIUS сервере для присвоения номера VLAN'а
- Настроить на коммутаторе соответствующие VLAN'ы
- Настроить DHCP-сервер
Настройка на коммутаторе авторизации на RADIUS-сервере для присвоения номера VLAN'а:
Switch(config)# aaa authorization network default group radius
Коммутаторы Cisco поддерживают следующие виды VLAN'ов:
- Пользовательский VLAN - обычный VLAN созданный администратором
- Guest VLAN - VLAN в который помещаются клиенты не поддерживающие 802.1X. Коммутатор помещает клиента в guest VLAN когда клиент не отправляет пакеты EAPOL или не отвечает на EAPOL Запрос/Identity
- Restricted VLAN - в этот VLAN помещаются клиенты не прошедшие аутентификацию
Описание процедуры настройки VLAN'ов на коммутаторе Cisco можно прочитать на странице VLAN.
Настройка существующего VLAN'а в качестве guest VLAN'а на интерфейсе:
Switch(config-if)# dot1x guest-vlan {vlan-id}
Настройка существующего VLAN'а в качестве restricted VLAN'а на интерфейсе:
Switch(config-if)# dot1x auth-fail vlan {vlan-id}
[править] Настройка динамических ACL для авторизованных пользователей
[править] Проверка работы 802.1X и RADIUS
test aaa group <group-name | radius> username password new-code
[править] Настройка коммутатора HP ProCurve для работы аутентификатором
Порядок настройки коммутатора:
- Настройка параметров RADIUS-сервера
- Настройка аутентификации 802.1X на портах коммутатора
- Настройка вида аутентификации 802.1X на коммутаторе
- Включение аутентификации 802.1X на коммутаторе
- (опционально) Настройка динамического размещения порта коммутатора в VLAN'е по результатам аутентификации
[править] Настройка параметров RADIUS-сервера
Настройка RADIUS-сервера:
switch(config)# radius-server host 10.0.1.1 key procurve
Минимальная настройка, которую необходимо выполнить это указание адреса RADIUS-сервера. Задание ключа является обязательным только если он указан на RADIUS-сервере.
[править] Настройка аутентификации 802.1X на портах коммутатора
Включение 802.1X на интерфейсе:
switch(config)# aaa port-access authenticator <port-list>
[править] Увеличение максимального количества авторизованных клиентов на портах
Указание максимального количества авторизованных MAC-адресов на порту (по умолчанию 1):
switch(config)# aaa port-access authenticator client-limit <port-list> <1-32>
По умолчанию количество адресов — 1, а максимальное значение — 32. Если на коммутаторе на одном порту настроена аутентификация 802.1X и MAC- или Web-аутентификация, то это суммарное количество клиентов для обоих методов.
[править] Настройка режима контроля аутентификации на портах
Настройка режима контроля аутентификации на портах:
switch(config)# aaa port-access authenticator <port-list> control <authorized | auto | unauthorized>
Параметры команды:
- authorized - обязательно авторизовать клиента. Аутентификация не обязательна. Используется также термин force-authorized;
- unauthorized - не переводить порт в авторизованное состояние. Это означает, что трафик клиенту через этот порт проходить не может. Используется также термин force-unauthorized;
- auto - использовать 802.1X дли перехода из неавторизованного в авторизованное состояние. Используется по умолчанию.
[править] Настройка вида аутентификации 802.1X на коммутаторе
Настройка вид аутентификации 802.1X на коммутаторе:
switch(config)# aaa authentication port-access <local | eap-radius | chap-radius>
- local — Использовать локальную базу коммутатора
- eap-radius — Использовать RADIUS-сервер в режиме EAP
- chap-radius — Использовать RADIUS-сервер в режиме CHAP (MD5)
[править] Включение аутентификации 802.1X на коммутаторе
Включить аутентификацию 802.1X на коммутаторе:
switch(config)# aaa port-access authenticator active
[править] Административная реаутентификация клиентов
На указанных портах заблокировать входящий и исходящий трафик и перезапустить процесс аутентификации:
switch(config)# aaa port-access authenticator <port-list> initialize
Инициировать реаутентификацию клиентов на указанных портах (если аутентификатор не находится в состоянии “HELD”):
switch(config)# aaa port-access authenticator <port-list> reauthenticate
[править] Изменение параметров и таймеров аутентификации
Интервал времени, который порт ожидает для передачи следующего EAPOL PDU во время сессии аутентификации (по умолчанию 30 секунд):
switch(config)# aaa port-access authenticator <port-list> tx-period <0-65535>
[править] Управление аутентифицированной сессией
Интервал времени (logoff-period) после которого неактивная сессия обрывается (по умолчанию 300 секунд):
switch(config)# aaa port-access authenticator <port-list> logoff-period <60-9999999>
Интервал времени от момента прохождения аутентификации (reauth-period), по истечению которого клиент будет повторно аутентифицирован (по умолчанию 0 секунд):
switch(config)# aaa port-access authenticator <port-list> reauth-period <0-9999999>
Если установить этот интервал в 0, то реаутентификация будет отключена.
[править] Неуспешная аутентификация
Количество попыток (max-retries) для пользователя ввести правильно имя и пароль (по умолчанию 3):
switch(config)# aaa port-access web-based <port-list> max-retries <1-10>
Время которое коммутатор ждет (quiet-period) прежде чем отправит повторный запрос на аутентификацию клиенту, который её не прошел (по умолчанию 60 секунд):
switch(config)# aaa port-access authenticator <port-list> quiet-period <1-65535>
Интервал времени (supplicant-timeout) в течение которого коммутатор ждет ответ от supplicant на EAP-запрос. Если supplicant не отвечает по истечению интервала, то сессия time out (по умолчанию 30 секунд):
switch(config)# aaa port-access authenticator <port-list> supplicant-timeout <1-300>
Задержка в секундах (unauth-period) для перемещения порта в VLAN для неавторизованных клиентов. Эта задержка позволяет дать больше времени клиенту для инициации аутентификации. Если клиент не инициировал аутентификацию до истечения таймера, то порт попадает в VLAN для неавторизованных клиентов (по умолчанию 0 секунд):
switch(config)# aaa port-access authenticator <port-list> unauth-period <0-255>
[править] Недоступность RADIUS-сервера
Количество запросов (max-requests) на RADIUS-сервер, если он недоступен (по умолчанию 2):
switch(config)# aaa port-access authenticator <port-list> max-requests <1-10>
Интервал времени (server-timeout) в течении которого коммутатор ждет ответа от RADIUS-сервера (по умолчанию 30 секунд):
switch(config)# aaa port-access authenticator <port-list> server-timeout <1-300>
[править] Настройка динамического размещения порта коммутатора в VLAN'е по результатам аутентификации
При настройке коммутатора нужно настроить на нем все VLAN, которые используются для аутентификации клиентов.
Для того чтобы VLAN назначенный RADIUS-сервером был применен на интерфейсе, необходимо чтобы соответствующий VLAN был создан на коммутаторе.
Если аутентификация прошла, но VLAN'а, который динамически назначен с RADIUS-сервера, на коммутаторе нет, то в логах будет такое сообщение:
W 07/11/09 15:29:40 02400 dca: 8021X client, RADIUS-assigned VID validation
error. MAC 001BFC7DBD0E port 5 VLAN-Id 0 or unknown.
Коммутатор назначает порт в VLAN по результатам успешной аутентификации (по приоритету в порядке убывания):
- VLAN полученный от RADIUS-сервера;
- Авторизованный VLAN настроенный на коммутаторе;
- Статический VLAN заданный на этом порту.
Если на порту коммутатора находятся несколько клиентов, то
[править] VLAN для авторизованных пользователей
Задание авторизованного VLAN:
switch(config)# aaa port-access authenticator 10 auth-vid 20
[править] VLAN для неавторизованных пользователей
Задание VLAN для пользователей не прошедших аутентификацию:
switch(config)# aaa port-access authenticator 10 unauth-vid 30
В этот VLAN попадают пользователи не прошедшие аутентификацию и хосты без supplicant.
|
RADIUS source-interface? |
[править] Настройка динамического назначения ACL по результатам аутентификации
Для того чтобы на интерфейс после прохождения аутентификации был назначен ACL, на коммутаторе не требуется никаких дополнительных настроек.
[править] Правила взаимодействия с другими ACL
[править] Просмотр информации о примененном ACL
sw(config)# sh port-access authenticator 5 clients detailed
Port Access Authenticator Client Status Detailed
Client Base Details :
Port : 5
Session Status : Open Session Time(sec) : 0
Frames In : 0 Frames Out : 0
Username : PCU01\mstudent MAC Address : 001bfc-7dbd0e
IP : n/a
Access Policy Details :
COS Map : 00000000 In Limit % : 0
Untagged VLAN : 99 Out Limit % : 0
Tagged VLANs : No Tagged VLANs
RADIUS-ACL List :
permit in 1 from any to 10.1.99.1
permit in 6 from any to any 80
permit in 6 from any to 10.1.99.1 22
permit in 17 from any to any 67
deny in ip from any to any
ACL назначенные с RADIUS-сервера:
sw(config)# sh access-list radius 5 Radius-configured Port-based ACL for Port 5, Client -- 001BFC7DBD0E permit in 1 from any to 10.1.99.1 permit in 6 from any to any 80 permit in 6 from any to 10.1.99.1 22 permit in 17 from any to any 67 deny in ip from any to any
[править] Просмотр настроек
[править] Просмотр общей информации о настройках 802.1X на коммутаторе
sw(config)# sh port-access authenticator
Port Access Authenticator Status
Port-access authenticator activated [No] : Yes
Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No
Auth Unauth Untagged Tagged % In RADIUS Cntrl
Port Clients Clients VLAN VLANs Port COS Limit ACL Dir
---- -------- -------- -------- ------ --------- ----------- ------ -----
5 1 0 99 No 000000 0 No both
6 0 0 0 No No No No both
7 0 0 0 No No No No both
8 0 0 0 No No No No both
sw(config)# sh port-access authenticator config
Port Access Authenticator Configuration
Port-access authenticator activated [No] : Yes
Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No
| Re-auth Access Max Quiet TX Supplicant Server Cntrl
Port | Period Control Reqs Period Timeout Timeout Timeout Dir
---- + ------- -------- ----- ------- -------- ---------- -------- -----
5 | No Auto 2 60 30 30 30 both
6 | No Auto 2 60 30 30 30 both
7 | No Auto 2 60 30 30 30 both
8 | No Auto 2 60 30 30 30 both
sw(config)# sh port-access authenticator session-counters
Port Access Authenticator Session Counters
Port-access authenticator activated [No] : Yes
Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No
Session Session
Port Frames In Frames Out Time(sec.) Status User
---- ----------- ----------- ----------- ----------- ------------------------
5 242 159 0 in-progress PCU01\mstudent
sw(config)# sh port-access authenticator statistics
Port Access Authenticator Statistics
Port-access authenticator activated [No] : Yes
Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No
Source TX TX RX RX RX RX RX
Port MAC address ReqId Req Start Logoff RespId Resp Errors
---- ------------- ------ ------ ------- ------- ------- ------- -------
5 001bfc-7dbd0e 17 20 10 0 12 20 0
6 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0
sw(config)# sh port-access authenticator vlan
Port Access Authenticator VLAN Configuration
Port-access authenticator activated [No] : Yes
Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No
Access Unauth Auth
Port Control VLAN ID VLAN ID
---- -------- -------- --------
5 Auto 2 10
6 Auto 2 99
7 Auto 2 99
8 Auto 2 99
[править] Просмотр информации об интерфейсе
sw(config)# sh port-access authenticator 5 clients Port Access Authenticator Client Status Port Client Name MAC Address IP Address Session Status ----- ----------------------- ------------- ------------- -------------- 5 PCU01\mstudent 001bfc-7dbd0e n/a Open
sw(config)# sh port-access authenticator 5 clients detailed Port Access Authenticator Client Status Detailed Client Base Details : Port : 5 Session Status : Open Session Time(sec) : 0 Frames In : 242 Frames Out : 159 Username : PCU01\mstudent MAC Address : 001bfc-7dbd0e IP : n/a Access Policy Details : COS Map : 00000000 In Limit % : 0 Untagged VLAN : 99 Out Limit % : 0 Tagged VLANs : No Tagged VLANs RADIUS-ACL List : No Radius ACL List
[править] Просмотр статистики
Просмотр статистики:
switch# show port-access authenticator statistics
Обнуление счетчиков статистики:
switch(config)# aaa port-access authenticator <port-list> clear-statistics
[править] Проверка работы RADIUS-сервера
Настроенные RADIUS-сервера :
sw(config)# sh radius
Status and Counters - General RADIUS Information
Deadtime(min) : 0
Timeout(secs) : 5
Retransmit Attempts : 3
Global Encryption Key :
Dynamic Authorization UDP Port : 3799
Auth Acct DM/ Time
Server IP Addr Port Port CoA Window Encryption Key
--------------- ----- ----- ---- ------- --------------------------------
10.1.10.10 1812 1813 No 300 procurve
Просмотр статистики об аутентификации:
sw(config)# sh radius authentication
Status and Counters - RADIUS Authentication Information
NAS Identifier : sw
Invalid Server Addresses : 0
UDP
Server IP Addr Port Timeouts Requests Challenges Accepts Rejects
--------------- ----- ---------- ---------- ---------- ---------- ----------
10.1.10.10 1812 41 32 20 2 0
|
Почему-то не отображается ответ RADIUS-сервера в том случае, когда он не нашел имени пользователя, который подключался. То есть, в статистике есть только счетчик указывающий, что запросы отправлялись, но отказа нет. Возможно IAS как-то так отвечает или вообще не отвечает. Так как ответа от RADIUS-сервера нет, то на коммутаторе будут такие сообщения:
При это на самом сервере запрос виден. |
Просмотр статистики об учете (accounting):
sw(config)# sh radius accounting
Status and Counters - RADIUS Accounting Information
NAS Identifier : sw
Invalid Server Addresses : 0
UDP
Server IP Addr Port Timeouts Requests Responses
--------------- ----- ---------- ---------- ----------
10.1.10.10 1813 0 3 3
Просмотр подробной статистики о конкретном RADIUS-сервере:
sw(config)# sh radius host 10.1.10.10 Status and Counters - RADIUS Server Information Server IP Addr : 10.1.10.10 Authentication UDP Port : 1812 Accounting UDP Port : 1813 Round Trip Time : 1 Round Trip Time : 0 Pending Requests : 0 Pending Requests : 0 Retransmissions : 32 Retransmissions : 0 Timeouts : 41 Timeouts : 0 Malformed Responses : 0 Malformed Responses : 0 Bad Authenticators : 0 Bad Authenticators : 0 Unknown Types : 0 Unknown Types : 0 Packets Dropped : 3 Packets Dropped : 0 Access Requests : 32 Accounting Requests : 3 Access Challenges : 20 Accounting Responses : 3 Access Accepts : 2 Access Rejects : 0
[править] Настройка клиента
[править] Windows
Пример для EAP-авторизации из FreeRADIUS Wiki
[править] Настройка Windows XP
[править] Настройки аутентификации пользователя
[править] Настройки аутентификации компьютера
[править] Linux
[править] XSupplicant
Xsupplicant - это open source supplicant, который позволяет клиенту проходить аутентификацию на RADIUS-сервере используя 802.1X и EAP (Extensible Authentication Protocol). Может быть использован для проводных и беспроводных сетей.
[править] Установка XSupplicant
[править] Настройка XSupplicant
[править] Mac OS X
[править] Настройка коммутатора HP ProCurve для работы supplicant
Коммутатор HP ProCurve может работать как аутентификатор на одних портах и как supplicant на других.
Включить порт для работы supplicant:
switch(config)# aaa port-access supplicant 10
Настроить имя пользователя и пароль, которые будут использоваться для аутентификации этого коммутатора:
switch(config)# aaa port-access supplicant 10 identity sw_1 secret
После выполнения команды необходимо будет дважды ввести пароль.
[править] Приложение. Конфигурационные файлы
(для какого случая. нужно написать)
[править] Пример конфигурации коммутатора Cisco
Пример конфигурации коммутатора:
! version 12.2 ! hostname Switch ! ! aaa new-model aaa authentication dot1x default group radius aaa authorization network default group radius ! ! ! dot1x system-auth-control ! interface FastEthernet0/1 switchport access vlan 90 switchport mode access dot1x port-control auto dot1x reauthentication dot1x guest-vlan 20 dot1x auth-fail vlan 50 ! ! interface FastEthernet0/11 switchport trunk encapsulation dot1q switchport mode trunk switchport nonegotiate ! ! radius-server host 192.168.1.3 auth-port 1645 acct-port 1646 radius-server source-ports 1645-1646 radius-server key radiuskey !
[править] Дополнительная информация
Ещё информация о проблемах с аутентификацией 802.1X и DHCP: (может скоро пропасть)
- RFC 3580 - IEEE 802.1X RADIUS Usage Guidelines
- Configure IEEE 802.1X Authentication with Catalyst 6500/6000 Running Cisco IOS Software
- Authentication Configuration Guide - 802.1X
- Подробные инструкции по настройке сетевой карты и установке сертификатов для клиентов под управлением Windows XP
Supplicant:
| ||||||||||
[править] Материалы по контролю доступа в сеть на Xgu.ru
- RADIUS
- DIAMETER
- 802.1X
- EAP
- 802.1X и RADIUS — детальное описание процедуры настройки коммутатора на использование 802.1X и RADIUS
- NAC
- ProCurve NAC 800 — контроллер доступа в сеть от ProCurve
- FreeNAC — свободная программная реализация NAC-контроллера
- Полигон по ProCurve NAC в УЦ Сетевые Технологии
|
Основы |
ProCurve Adaptive Edge | ProCurve ProActive Defense | ProCurve Network Access Control | ProCurve Wireless |
|
Программы |
ProCurve Manager | ProCurve Identity Driven Manager | ProCurve Network Immunity Manager | ProCurve Mobility Manager |
|
Устройства |
ProCurve Switch | ProCurve Router | ProCurve ONE Module | ProCurve TMS Module | ProCurve NAC 800 | ProCurve Access Point | ProCurve WESM |
|
|
|
|
Безопасность |
ProCurve Security | DHCP snooping | Dynamic ARP Protection | IP Source Guard | Port security | Аутентификация при доступе к сети | Доступ к коммутатору ProCurve |
|
Канальный уровень |
CDP | LLDP | VLAN в ProCurve | GVRP | STP в ProCurve | ProCurve Mesh | Агрегирование каналов | Зеркалирование трафика |
|
Сетевой уровень |
RIP в ProCurve | OSPF в ProCurve | VRRP в ProCurve | XRRP в ProCurve | QoS в ProCurve | Multicast в ProCurve |
|
Разное |
|
