Сетевые решения — IEEE 802.1x

802.1x — это стандарт, который используется для аутентификации и авторизации пользователей в сети через сервер RADIUS / TACACS+. Благодаря 802.1x можно предоставить пользователям права доступа к корпоративной сети и ее сервисам в любом месте физического доступа к ней. Так, подключившись к беспроводной сети или к сетевой розетке по кабелю, пользователь будет автоматически помещен в тот VLAN который предопределен политиками группы к которой привязана учетная запись пользователя. К данному VLAN будет привязан соответствующий список доступа ACL. Пользователь также получит IP адрес из нужной сети по DHCP.

Чтобы реализовать данную модель потребуется коммутатор, который будет выступать в роли аутентификатора, RADIUS сервер и суппликант (клиент) 802.1x на пользовательском устройстве. Если суппликант отсутствует, тогда можно провести авторизацию по мак-адресу (MAC Authentication Bypass, MAB), либо получить авторизацию после прохождения web-аутентификации (Web-Auth) в браузере. Родной клиент 802.1x присутствует во многих операционных системах, например, Windows XP/Vista/7/CE/Mobile, Linux, Solaris, Apple OS X, и др.

Стимулом для написания статьи послужил недавно прошедший web-семинар Cisco, который провели Илья Озарнов и Геннадий Симонов. На мой взгляд эти люди подготовили очень интересный доклад с практическими советами, которые могут пригодится в любой момент работы системного инженера.

2. Сценарии реализации AAA

Cisco выделяет три сценария для реализации AAA: Monitor Mode, Low Impact Mode, High Security Mode.

2.1 Monitor Mode

Режим наблюдения, при котором доступ к сети полностью открыт. На каждом порту настроена аутентификация 802.1x без авторизации. Ведется анализ мак-адресов, подключенных к сети. Анализируются порты, к которым подключено более одного устройства.

2.2 Low Impact Mode

Селективно открытый режим доступа в сеть. Устройства, которые не прошли аутентификацию получают ограниченный доступ в сеть, например, для них могут быть разрешены только протоколы DHCP и TFTP. Протокол EAP открыт по умолчанию.

Типичная таблица доступа, характерная для Low Impact сценария будет выглядеть следующим образом:

Клиенты Аутентификация Авторизация Реализация
All Pre-Auth Limited Access Pre-Auth ACL
Employees 802.1x success Enterprise Access Permit-Any dACL
Corporate Asset MAB Success Enterprise Access Permit-Any dACL
Phones 802.1x or MAB Success Voice Access MDA with Voice VSA + Permit-Any dACL
Employees 802.1x fail -> MAB or Web-Auth Success Enterprise Access Permit-Any dACL
Sponsored Guest 802.1x Fail/Timeoute -> MAB Fail -> Web-Auth Success Limited + Internet Access Permit-Internet dACL
Unknown / Unauthorized 802.1x Fail/timeout -> MAB Fail -> Web-Auth Fail Limited Access Pre-Auth ACL
All None (AAA Server down) Limited Access Pre-Auth ACL

Хочу здесь отметить, что более подробное описание аутентификаций (802.1x, MAB, Web-Auth) и реализаций авторизаций (Pre-Auth ACL, Permit-Any ACL, MDA) будет дано в следующих разделах данной статьи.

2.3 High Security Mode

Режим, при котором до авторизации на порту запрещены все протоколы кроме EAP.

 3. Настройка IEEE 802.1x аутентификации

3.1 Настройка коммутатора:

#aaa new-model
#aaa authentication dot1x default group radius
#aaa authrization network default group radius

#dot1x system-auth-control

#radius-server host 10.10.15.40 auth-port 1645 acct-port 1646 key secretpass123
#radius-server attribute 6 on-for-login-auth
#radius-server attribute 8 include-in-access-req
#radius-server vsa send authentication

(config-if)#dot1x pae authenticator
(config-if)#dot1x port-control auto

3.2 Настройка сервера RADIUS на базе Cisco ACS (версия 5.2)

  1. Сначала необходимо занести коммутатор в базу данных ACS. Идем в Network Device Groups — Network Devices and AAA Clients, отмечаем поле Authentication Options RADIUS и вводим общий ключ (shared secret) secretpass123.
  2. Затем нужно проверить связку коммутатора с сервером ACS. Для этого создаем локального пользователя в Network Resources — Users and Identity Stores — Internal Identity Stores — Users, где создаем пользователя, вводим имя и пароль. Применяем настройки. Если мы можем зайти на устройство используя учетные данные данного пользователя, тогда можно переходить к следующему шагу — интеграции ACS с AD.
  3. Для связки с AD идем в Users and Identity Stores — External Identity Stores — Active Directory. Указываем имя домена в поле Active Directory Domain Name, вводим логин и пароль пользователя в соответствующие поля. Данный пользователь должен обладать как минимум правами заведения и удаления уч. записей пользователей и компьютеров в домене. Если привязка прошла успешно, появятся новые вкладки: Directory Groups и Directory Attributes, где можно монтировать группы AD в ACS.
  4. Теперь нужно создать авторизационный профайл, в котором будут определены VLAN, ACL и прочие параметры, которые будут применены к порту подключившегося пользователя или группы пользователей. Для этого в Policy Elements — Authorizations and Permissions — Network Access — Authorization Profiles во вкладке General создаем имя профайла, затем во вкладке Common Tasks определяем номер VLAN, ACL и пр. параметры.
  5. Идем в раздел Access Policies — Access Services. Здесь есть два типа политик по умолчанию: политики Deafult Device Admin, которые относятся к политикам авторизации через TACACS и политики Default Network Access — относятся к политикам авторизации через RADIUS. Если зайти в меню Default Network Access во вкладку Allowed Protocols, то увидим следующие включенные протоколы по умолчанию, с которыми будет работать сервер: PAP/ASCII, EAP-MD5, EAP-TLS, PEAP, EAP-FAST. Проверьте, что включен протокол PEAP.
  6. В разделе Default Network Access в меню Identity нужно завести как минимум одно правило, где указывается местонахождение базы данных пользователей для определенной группы устройств (коммутаторы, маршрутизаторы, которые настраиваются в разделе Network Device Groups, см. п. 1). Так к определенной группе устройств можно привязать аутентификацию и авторизацию либо через локальную базу данных либо через AD.
  7. В том же разделе Default Network Access, в меню Authorization нужно привязать авторизационный профайл (см. п. 4) к группе пользователей. Для этого нужно кликнуть по кнопке Generate, чтобы создать правило и в поле NDG:Device Type указать, в какой группе находится устройство к которому подключается пользователь и выбрать профайл для данной группы. Здесь же можно назначить профайл для разных групп пользователей.
  8. В разделе System Administration — Configuration — Local Server Certificates — Local Certificates можно увидеть self-signed сертификат. Можно также выдать сертификат серверу ACS через сервер сертификатов.

3.3 Настройка клиента:

  1. Заходим в свойства сетевого адаптера.
  2. Выбираем вкладку Authentication*
  3. Отмечаем пункт Enable IEEE 802.1x authentication for this netwok.
  4. В поле EAP type выбираем Protected EAP (PEAP)
  5. Отмечаем поле Authenticate as computer when computer information is unavailable.
  6. В свойствах протокола PEAP отмечаем поле Validate Server Certificate. С этого поля можно также начинать процедуру траблшутинга, если не заработает аутентификация.
  7. Можно выбрать метод аутентификации Secured password (EAP-MSCHAP v2). В его настройках можно отметить поле Automatically use my Windows logon name and password (and domain if any), чтобы не вводить два раза подряд имя доменного пользователя и пароль.
  8. После этого можно подключить компьютер к сети. Он получит адрес по DHCP из того VLAN, в который будет помещен порт после авторизации.

Проверить процесс аутентификации и авторизации можно через режим debug на коммутаторе.

Проверить в каком VLAN находится порт можно командой sh vlan br.

*Если вкладка «Authentication» («Проверка подлинности») отсутствует в свойствах проводного подключения, необходимо запустить соответствую службу. В командной строке пишете services.msc, затем, для Windows XP запускаете службу «Автонастройка проводного доступа», для Windows 7 запускаете службу «Проводная автонастройка». После чего, нужная нам вкладка станет доступна.

4. Настройка MAB аутентификации

Кроме тех команд, которые были использованы при реализации 802.1x, нужно добавить одну новую команду dot1x mac-auth-bypass, остальные по усмотрению:

(config-if)#dot1x mac-auth-bypass
(config-if)#dot1x pae authenticator
(config-if)#dot1x port-control auto
(config-if)#dot1x max-reauth-req 1
(config-if)#dot1x reauthentication

После этого при попытке подключения устройства пользователя, коммутатор отправит на сервер его имя в виде мак-адреса. Чтобы сервер правильно интерпретировал данного пользователя, нужно создать для него учетную запись, где в качестве имени пользователя будет выступать мак-адрес устройства [взято из Интернета]:

5. Настройка Web-аутентификации

Реализовать web-аутентификацию можно посредством коммутатора либо сервера web-аутентификации NAC Guest Server (NGS)

Для настройки коммутатора в качестве посредника при web-аутентификации используются следующие команды:

(config)# ip admission name webauth1 proxy http
(config)# interface fastethernet 5/1
(config-if)# ip admission webauth1
(config-if)# exit
(config)# ip device tracking
# show ip admission configuration

Когда будет инициирована HTTP сессия в браузере, коммутатор перехватит HTTP запрос и ответит заготовленной формой, куда нужно будет ввести имя пользователя и пароль. Введенные данные затем отсылаются на AAA сервер для аутентификации и авторизации.

6. Flex-Auth Approach

При желании можно настроить гибкую аутентификацию (Flex-Auth Approach), где выбрать порядок и набор методов аутентификации пользователей:

(config-if)#authentication event fail action next method
(config-if)#authentication order dot1x mab

7. Реализация авторизаций

7.1 Pre-Auth ACL

Настройки порта в данном случае будут выглядеть так:

(config-if)#authentication port-control auto
(config-if)#authentication open
(config-if)#ip access-group PREAUTH in

Список доступа PREAUTH как раз предопределяет, что будет разрешено неавторизованному пользователю. Он может выглядеть следующим образом:

permit tcp any any established
permit udp any any eq bootps
permit udp any host 10.10.15.30 eq domain
permit udp any host 10.10.15.31 eq tftp

7.2 Permit-Any dACL

На сервере ACS в авторизационном профайле (см. раздел 3.2, п. 4 настроек сервера RADIUS на ACS) в настройках динамического ACL (dACL) можно указать следующую строчку:

permit ip any any

После того, как пользователь авторизуется в сети, данная строчка будет добавлена к списку доступа PREAUTH и он примет следующий вид, где 10.10.20.5 — адрес авторизованного устройства, автоматически подставленный ACS:

permit ip 10.10.20.5 any
permit tcp any any established
permit udp any any eq bootps
permit udp any host 10.10.15.30 eq domain
permit udp any host 10.10.15.31 eq tftp

7.3 MDA Voice Support

Если необходимо подключить телефон и компьютер к одному порту, тогда можно воспользоваться одним из двух способов:

  1. Используем протокол CDP, Voice VLAN ((config-if)#switchport voice vlan 10), Data VLAN. Минусы данного способа таковы, что через Voice VLAN телефон беспрепятственно сможет подключиться к сети, также как и злоумышленник, если он сгенерирует пакет CDP. Данный способ не совместим с dACL и Web-Auth.
  2. Используем Multi-Domain Authentication (MDA). Если IEEE 802.1x разрешает подключать всего одно устройство на порт, то MDA позволяется подключить одно устройство на домен на порт ((config-if)#authentication host-mode multi-domain). MDA можно настроить как с MAB, так и с 802.1x.

Проверить настройки MDA можно командой sh dot1x int gi1/25 details.

Вывод команды будет выглядеть примерно так:

Dot1x Authenticator Client List --------------------------------- Domain = DATA Supplicant = 4444.33e3.2222.1111 Auth SM State = Authenticated Auth BEND SM State = Idle Port status = Authorized Authentication Method = Dot1x Authorized By = Authentication Server Dot1x Authenticator Client List Domain = VOICE Supplicant = 4421.32e3.2332.1451 Auth SM State = Authenticated Auth BEND SM State = Idle Port status = Authorized Authentication Method = MAB
Authorized By = Authentication Server

Понравилась статья? Поделиться с друзьями:
TelecomBook
Яндекс.Метрика