Page tree
Skip to end of metadata
Go to start of metadata

Базовая настройка FreeRadius

Прежде чем настраивать коммутатор для работы с рассматриваемыми технологиями, вначале нужно установить и настроить сервер аутентификации, в нашем случае это будет freeradius. В простейшем случае после установки сервиса freeradius достаточно добавить пользователей в файл /etc/freeradius/3.0/users. Учетная запись 'nag' будет использоваться для 802.1X-метода аутентификации, а учетная запись 'b8-27-eb-ea-05-e1', которая является MAC-адресом сетевого принтера, для метода MAB. Обе они будут иметь VLAN_ID 20.

/etc/freeradius/3.0/users
nag Cleartext-Password := "nag"
        Tunnel-Type = 13,
        Tunnel-Medium-Type = 6,
        Tunnel-Private-Group-ID = "20"

b8-27-eb-ea-05-e1 Cleartext-Password := "b8-27-eb-ea-05-e1"
        Tunnel-Type = 13,
        Tunnel-Medium-Type = 6,
        Tunnel-Private-Group-ID = "20"

где:

  • 13 - указывает на тип Tunnel - Virtual LANs (VLAN);
  •  6 - стандарт 802;
  • 20 - указываем VLAN_ID, в который хотим помещать данные клиента.

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

IEEE 802.1X

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

Коммутаторы SNR поддерживают 3 метода контроля доступа к ресурсам сети:
1. Port-based - как только первый пользователь успешно прошёл аутентификацию 802.1x, остальные пользователи, подключённые через тот же порт, тоже получают доступ к ресурсам сети. Если первый пользователь отключится, то все остальные пользователи потеряют доступ к ресурсам сети, пока кто-то не пройдёт успешно аутентификацию. Если после аутентификации трафик должен попадать в определённый VLAN или к нему должен применяться DACL (Dynamic ACL), то для других пользователей будет применены те же правила и политики: их трафик будет попадать в выделенный VLAN и к ним будут применяться те же правила Dynamic ACL;

Важно!

Переключение пользователя в определённый VLAN (VLAN передан в сообщении RADIUS) работает только для Port-based режима!

2. MAC-based - в данном методе коммутатор контролирует доступ клиентов на основе MAC-адресов. Если один хост с одним MAC-адресом прошёл аутентификацию и получил доступ к ресурсам сети, то второй хост с другим MAC-адресом не получит доступ к ресурсам сети, пока сам не пройдёт успешно аутентификацию 802.1x.
3. User-based - контроль доступа пользователя происходит на основе следующих данных: IP-адрес + MAC-адрес + порт. Важно, чтобы запись о хосте была в таблице DHCP Snooping Binding. У метода User-based есть 2 подтипа: standart и advanced. Standard даёт возможность использовать настроенные ограниченные ресурсы (так называемые limited resources, настраиваются в "dot1x user free-resource ...") пользователям, которые ещё не прошли аутентификацию, в режиме advanced неаутентифицированные пользователи не могут пользоваться этими ресурсами. 

И коммутатор, и клиент могут инициировать аутентификацию. Коммутатор делает это, когда состояние порта меняется с DOWN на UP или периодически, пока клиент за портом не  аутентифицирован. Для этих задач коммутатор использует протоколы EAPOL (extensible authentication protocol over LAN) и RADIUS (remote authentication in dial-in user service). Рассмотрим, что происходит, когда новое сетевое устройство с поддержкой 802.1X подключается к порту коммутатора.

Принцип работы

  1. Устройство (supplicant) инициирует аутентификацию, посылая EAPOL-Start-фрейм на мультикастовый MAC-адрес 01:80:c2:00:00:03.
  2. Коммутатор получает этот кадр, с этого момента он начинает выступать в роли промежуточного устройства (authenticator) между клиентом и сервером аутентификации (RADIUS). В ответ посылается EAP-фрейм Request/Identity, предлагающий клиенту представиться.
  3. Клиент отвечает EAP-фреймом Response/Identity, содержащим имя пользователя. Эта информация добавляется в пакет протокола RADIUS Access-Request и в числе прочих атрибутов пересылается серверу аутентификации.
  4. Сервер аутентификации отправляет на IP-адрес коммутатора RADIUS-пакет Access-Challenge с запросом пароля для данного имени пользователя. Коммутатор отправляет этот запрос клиенту EAP-фрейм с запросом пароля.
  5. Клиент отправляет в ответ EAP-фрейм со своим паролем, который пересылается коммутатором серверу аутентификации в Access-Request пакете. Если клиент идентифицирован, то в ответ посылается пакет Access-Accept.
  6. Коммутатор посылает клиенту EAP-фрейм EAP-Success. На этом этапе порт аутентифицирован. В случае, если устройство пришлет EAP-фрейм Logoff, порт вернется в исходное состояние.

Информация:

Рассмотрен базовый пример. В случае использования таких протоколов шифрования, как MD5 и MSCHAPv2 в процесс аутентификации добавятся кадры протокола TLS.

Пример настройки Port-based

Сервер RADIUS имеет IP-адрес 192.168.1.3 и открытый ключ шифрования 'testing123':

(config)#radius-server authentication host 192.168.1.3 key testing123
(config)#aaa enable 

Создадим необходимые VLAN:

(config)#vlan 20;100

Включим 802.1X глобально и на порте:

(config)#dot1x enable
(config)#int e1/0/2   
(config-if-ethernet1/0/2)#dot1x enable 

Зададим port-based метод аутентификации и гостевую VLAN для тех, кто не прошел ее:

(config-if-ethernet1/0/2)#dot1x port-method portbased 
(config-if-ethernet1/0/2)#dot1x guest-vlan 100

Подключим устройство , использующее учетную запись 'nag', и проверим результат:

#sh dot1x interface e1/0/2

802.1X is enabled on port Ethernet1/0/2
Authentication Method:Port based
Configured Access Vlan 1, Guest Vlan 100, Current Vlan 20
  Status        Authorized
Port-control        Auto
  Supplicant        f0-de-f1-19-d5-eb

VLAN id 20
Authenticator State Machine
  State         Authenticated

Backend State Machine
  State         Idle

Reauthentication State Machine
  State         Stop

Как видно, устройство успешно авторизовалось, передав свои логин/пароль, заданные в настройках подключения.

Пример настройки User-based Advanced

Рассмотрим пример аутентификации User-based Advanced на коммутаторе SNR-S2989G-8TX (Версия ПО: V705R002C014B010).

Создаём VLAN и Interface VLAN для IP-связности с RADIUS-сервером, также в этом VLAN будет работать DHCP-сервер/DHCP Relay, который предоставляет реквизиты клиентам:

SNR-S2989G-8TX(config)#vlan 30
SNR-S2989G-8TX(config-vlan30)#interface vlan 30
SNR-S2989G-8TX(config-if-vlan30)#ip address 192.168.30.100 255.255.255.0

Включаем в режиме глобального конфигурирование 802.1x:

SNR-S2989G-8TX(config)#dot1x enable

Обязательно настраиваем RADIUS-сервер и аутентификацию 802.1x. В моём примере IP-ажрес RADIUS-сервера 192.168.30.250, ключ для RADIUS - "snr":

SNR-S2989G-8TX(config)#radius-server authentication host 192.168.30.250 key 0 snr
SNR-S2989G-8TX(config)#aaa enable
SNR-S2989G-8TX(config)#authentication dot1x radius none

Важно также указать хотя бы один ресурс, доступный без аутентификации, так называемый Free Resource. Команда работает только для User-based аутентификации:

SNR-S2989G-8TX(config)#dot1x user free-resource 192.168.30.254 255.255.255.255

User-based для аутентификации ссылается на таблицу DHCP Snooping Binding, поэтому важно настроить DHCP Snooping, в моём примере клиент работает во VLAN 30, в котором работает DHCP-сервер:

SNR-S2989G-8TX(config)#ip dhcp snooping enable
SNR-S2989G-8TX(config)#ip dhcp snooping vlan 30
SNR-S2989G-8TX(config)#ip dhcp snooping binding enable

Настройки Uplink-порта, за которым находится DHCP-сервер:

SNR-S2989G-8TX(config-if-ethernet1/0/1)#description Uplink
SNR-S2989G-8TX(config-if-ethernet1/0/1)#switchport mode trunk
SNR-S2989G-8TX(config-if-ethernet1/0/1)#ip dhcp snooping trust

Настройки порта с пользователями. Здесь мы обратим внимание на обязательную команду «ip dhcp snooping binding dot1x» - после ввода этой команды модуль DHCP Snooping будет информировать модуль 802.1x о пользователях для дальнейшей аутентификации. После ввода этой команды вы увидите в таблице DHCP Snooping Binding, что у пользователей появился флаг X (Если клиенты получают реквизиты по DHCP, то флаги будут "DX", если статически, то в таблицу DHCP Snooping Binding необходимо внести статические записи о клиентах, при правильной настройке у таких клиентов будут флаги "SX"). Настройки клиентского порта выглядят так:

SNR-S2989G-8TX(config-if-ethernet1/0/7)#description Clients
SNR-S2989G-8TX(config-if-ethernet1/0/7)#switchport access vlan 30
SNR-S2989G-8TX(config-if-ethernet1/0/7)#dot1x enable
SNR-S2989G-8TX(config-if-ethernet1/0/7)#dot1x max-user userbased 5
SNR-S2989G-8TX(config-if-ethernet1/0/7)#ip dhcp snooping binding dot1x

Если вы хотите, чтобы в выводе информации о 802.1x юзерах (show dot1x user, show aaa authenticated-user) был показан IP-адрес клиента, взятый из DHCP Snooping, вместо 0.0.0.0, то выполните команду:

SNR-S2989G-8TX(config)#dot1x user-ip-from dhcpsnooping enable

И не забываем проверить важные пункты для корректной работы:
- IP-связность между коммутатором и RADIUS-сервером;
- клиенты, проходящие 802.1x аутентификацию, должны попадать в один широковещательный домен с DHCP-сервером/DHCP Relay;
- Если пользователи имеют статические данные, тогда вам необходимо завести статические записи в таблице DHCP Snooping Binding;
- Важно наличие хотя бы одного настроенного Free Resource.

Подключаем клиента в порт Ethernet1/0/7 и проверяем работоспособность:
1. Помним, что 802.1x User-based опирается на записи DHCP Snooping Binding. В данном тесте клиент получает данные с помощью DHCP, поэтому сначала мы инициализируем на клиенте DHCP-Client. Модуль 802.1x не запрещает прохождение DHCP-пакетов через коммутатор и выполняет коммутации по общим правилам коммутации с учётом настроенного DHCP Snooping;
2. Клиент получил реквизиты по DHCP (IP: 192.168.30.102/24, Default gateway 192.168.30.250), и на коммутаторе мы можем увидеть новую запись в таблице DHCP Snooping Binding с флагами «D» (Dynamic) и «X» (Запись передана модулю 802.1x):

Также мы можем выполнить Ping до двух ресурсов и проверить, какие ресурсы будут доступны:
     1) Ping 192.168.30.250 (Default Gateway) - недоступен. Коммутатор будет блокировать и ARP запросы на этот адрес, и ICMP-пакеты, если указать ARP статически, пока пользователь не пройдёт 802.1x аутентификацию;
     2) Ping 192.168.30.254 (Free Resource) - доступен. Коммутатор пропустит и ARP и другие пакеты на адрес, указанный в качестве Free Resource.
3. Теперь, когда появилась запись в DHCP Snooping Binding, клиенту необходимо пройти аутентификацию 802.1x, чтобы получить доступ ко всем ресурсам сети.
Клиент инициализирует аутентификацию 802.1x и успешно её проходит, можно увидеть успешную аутентификацию на коммутаторе:

Клиент повторно запрашивает DHCP-реквизиты, DHCP-сервер выдаёт ему те же реквизиты и теперь клиенту доступны все ресурсы сети.
На этом закончим пример настройки коммутатора для аутентификации 802.1x User-based Advanced.

MAB

Многие сетевые устройства не имеют специального ПО для работы с 802.1X, в таких случаях можно использовать технологию MAB (mac authentication bypass), которая использует MAC-адрес устройства, как логин/пароль для аутентификации через RADIUS. При таком способе используются только два RADIUS-пакета:

  • Access-Request, содержащий в опциях логин/пароль клиента;
  • Access-Success, отправляемый сервером аутентификации, если клиент идентифицирован.

Информация:

MAB поддерживает в качестве сервера аутентификации только RADIUS.

Пример настройки

Важно отметить, что для использования функционала guest-vlan в случае с MAB необходимо использовать hybrid-порт. Включим поддержку MAB глобально:

(config)#mac-authentication-bypass enable

Информация:

Для коммутаторов серии S2995, дополнительно, в режиме глобальной конфигурации требуется применить команду "mac-address-learning cpu-control"

Затем на порте:

(config)#int e1/0/3
(config-if-ethernet1/0/3)#mac-authentication-bypass enable

Ограничим максимальное количество MAC-адресов на порте до одного (три по умолчанию):

(config-if-ethernet1/0/3)#mac-authentication-bypass binding-limit 1

Настроим порт в режиме hybrid и укажем используемые VLAN:

(config-if-ethernet1/0/3)#switchport mode hybrid
(config-if-ethernet1/0/3)#switchport hybrid allowed vlan 20;100 untag
(config-if-ethernet1/0/3)#switchport hybrid native vlan 100

Зададим гостевую VLAN:

(config-if-ethernet1/0/3)#mac-authentication-bypass guest-vlan 100

Проверим результат:

#sh mac-authentication-bypass interface e1/0/3

Interface Ethernet1/0/3 user config:
MAB enable: Enable

Binding info: 1
--------------------------------------------------------
MAB Binding built at Sun Jan  1 02:24:02 2006
 	VID 20, Port: Ethernet1/0/2
 	Client MAC: b8-27-eb-ea-05-e1
 	Binding State: MAB_AUTHENTICATED
 	Binding State Lease: 169 seconds left

На одном порте возможно одновременно использовать MAB и 802.1X аутентификации, но без использования guest-vlan для последней. В нашем примере с hybrid-портом неаутентифицированный 802.1X-пользователь все равно окажется в VLAN 100, т.к. он native.

(config-if-ethernet1/0/3)#dot1x enable
(config-if-ethernet1/0/3)#dot1x port-method portbased 

Теперь подключим к порту 1/0/3 устройство с 802.1X аутентификацией и проверим результат:

#sh dot1x interface ethernet 1/0/3

802.1X is enabled on port Ethernet1/0/3
Authentication Method:Port based
Configured Native Vlan 100, Guest Vlan 100, Current Vlan 20
  Status        Authorized
Port-control        Auto
  Supplicant        f0-de-f1-19-d5-eb

VLAN id 20
Authenticator State Machine
  State         Authenticated

Backend State Machine
  State         Idle

Reauthentication State Machine
  State         Stop

Подключим к порту e1/0/3 устройство с неверными учетными 802.1X данными и проверим результат:

#sh dot1x interface e1/0/3

802.1X is enabled on port Ethernet1/0/3
Authentication Method:Port based
Configured Native Vlan 100, Guest Vlan 0, Current Vlan 100
  Status        Unauthorized
Port-control        Auto
  Supplicant        f0-de-f1-19-d5-eb

VLAN id 100
Authenticator State Machine
  State         Held

Backend State Machine
  State         Idle

Reauthentication State Machine
  State         Stop