Поиск...

пятница, 22 ноября 2013 г.

Настройка 802.1x на оборудовании cisco (Часть №2)

И снова доброго времени суток!!!

В прошлом посте мы остановились на том, что закончили общую настройку ACS. Кто случайно попал сразу на вторую часть, то прочитайте сначала первую. А всех остальных, приглашаю под кат...

Теперь вернемся на наш L2_Switch. Настроим его на работу с 802.1x.

L2_Switch#conf t
L2_Switch(config)#aaa new-model - глобально включаем ААА;
L2_Switch(config)#aaa authentication dot1x default group radius - настраиваем свитч использовать Radius для 802.1x аутентификации на всех интерфейсах;
L2_Switch(config)#aaa authorization network default group radius - настраиваем свитч использовать Radius для 802.1x авторизации;
L2_Switch(config)#aaa accounting dot1x default start-stop group radius - настраиваем свитч использовать Radius для 802.1x аккаунтинга;
L2_Switch(config)#ip radius source-interface vlan 2 - в качестве интерфейса, с которого будет отправляться информация на ACS (Radius) используем interface-vlan 2;
L2_Switch(config)#radius-server host 192.168.1.100 auth-port 1645 acct-port 1646 - прописываем IP-адрес и порты нашего Radius-сервера;
L2_Switch(config)#radius-server key сisc0 - указываем секретный ключ, который мы задавали при настройке ACS;
L2_Switch(config)#dot1x system-auth-control - включаем 802.1x на свитче;
L2_Switch(config)#int range fa 1/1 - 2 - заходим сразу на два интерфейса, где у нас будет работать 802.1x;
L2_Switch(config-if-range)#dot1x port-control auto - устанавливаем состояние порта для 802.1x "автоматически", т.е. будет определяться по итогам аутентификации;
L2_Switch(config-if-range)#dot1x timeout reauth-period server - указываем, что период между повторными аутентификациями указан на ACS-сервере;
L2_Switch(config-if-range)#dot1x reauthentication - включаем повторную аутентификацию на портах;
L2_Switch(config-if-range)#dot1x guest-vlan 5 - данная команда используется для определения устройств, на которых нет CTA или не поддерживается 802.1x, в определенный vlan. В нашем случае - это vlan5 (TRASH);
L2_Switch(config-if-range)#exit
L2_Switch(config)#exit
L2_Switch#wr


Итак, со свитчем закончили. Теперь нам снова предстоит вернуться на ACS и как то связать все предыдущие настройки воедино :). Для этого нам необходимо будет создать и настроить так называемый "Network Access Profile". Он то и свяжет ранее настроенные аутентификацию, "Posture Validation" и авторизацию.
Возвращаемся на ACS и выбираем из правого меню пункт "Network Access Profiles". В нем не будет еще профилей, так что нажимайте на "Add Profile". Откроется следующее окно:


Здесь задаем имя нашему профилю (1) и включаем его (2). Остальные параметры оставляем по умолчанию. Нажимаем "Submit". Вы вернетесь на предыдущее окно, но там уже будет созданный профиль:


Как видите, профиль появился и он активирован. В поле "Policies" представлены политики, с помощью которых нам и предстоит связать ранее сделанные отдельные настройки в "единый организм" :). Так же вверху написано, что для применения настроек необходимо нажать на "Apply and Restart". Так и делаем.
После перезапуска переходим по первой ссылке в поле "Policies", а именно "Protocols". Откроется окно, в котором нас интересует только "EAP-FAST":


Устанавливаем значения параметров, как показано на рисунке выше и нажимаем "Submit". Вы вернетесь на предыдущее окно. Там снова нажимаем "Apply and Restart" и выбираем следующую ссылку "Authentication":


Здесь нас интересует "Credential Validation Database", т.е. к какой базе мы будем обращаться для проверки пользователя. Так как мы используем внутреннюю базу ACS, то выбираем "ACS Internal Database" в левом столбце, нажимаем на стрелку и переносим его в правый столбец. После этого нажимаем на "Submit" и затем, вернувшись на предыдущую страницу, "Apply and Restart". Переходим по следующей ссылке "Posture Validation". Соответственно вы не увидите там правил, так что сразу нажимаем на "Add Rule":



Итак, здесь задаем имя нашему правилу (1). В пункте "Condition" из правого столбца выбираем "Cisco:PA" (так как мы используем только его) и переносим его в левый столбец (2). Далее выбираем ранее созданную внутреннюю политику "Posture Validation" (3). Помните, я говорил про параметр "Posture Token", который соответствовал каждой подгруппе критериев в политике "Posture Validation", так вот здесь, в соответствующих полях, и задается текст, который будет высвечиваться у клиентов с установленным CTA. Соответственно, "Healthy" (4) - при успешной проверке высветится "You was success validated!!!", "Unknown" (5) - при не успешной высветится "Call your administrator!!!". Конечно, помимо просто фразы, можно задавать и другие фишки, но, это уже вам на баловство :). Нажимаем "Submit".
Вы вернетесь на предыдущее окно и должны увидеть вот такую картинку:
 

Нажимаем "Done". Вернувшись на предыдущее окно, снова нажимаем на "Apply and Restart" и переходим по последней ссылке "Authorization". Вы снова увидите отсутствие правил. Нам необходимо создать 3 правила, так что 3 раза нажимаем на "Add Rule". После этого добавятся 3 строчки. Далее начинаем заполнять их, используя выпадающее меню в каждом параметре. По итогу у вас должно получиться вот так:




Итак, что мы имеем. Каждой группе пользователей соответствует свой vlan, в который они будут попадать при успешной авторизации и только после успешной проверки "Posture Validation" (параметр "System Posture Token" ("Healthy")) (1,2,3). Если соответствия не будет найдено или "Posture Validation" завершиться не удачно (не будет установленного CTA или он не будет соответствовать нужной версии), то пользователь будет перемещен в глухой vlan TRASH (4). Прошу обратить внимание, что даже если вы зайдете под пользователем, который входит в группу "Administrators", на компьютер, у которого нет CTA или не та версия, то вы будете перемещены в vlan TRASH (это мы увидим когда будем делать проверки). Использовать настройки групп пользователей и самих пользователей мы не будем, так что снимите отметки с данных параметров (5). Нажимаем "Submit". Вернувшись на предыдущую страницу, снова нажимаем "Apply and Restart".
Основные настройки на сетевом оборудовании и на сервере ACS закончены. Нам осталось настроить DHCP сервер, установить Cisco Trust Agent на Host_1 и, собственно, сделать все проверки работы 802.1x.
Начнем с сервера DHCP. Возвращаемся на Server CA, ACS, DHCP. Переходим в "Start"--"Control Panel"--"Add or Remove Programs"--"Add/Remove Windows Components". Далее находим сервис DHCP:


Нажимаем "OK". Затем нажимаем "Next". Начнется процесс установки. После установки переходим к сервису ("All Programs"--"Administrative Tools"--"DHCP"). В открывшемся окне правой клавишей мыши нажимаем на сервере и выбираем пункт меню "New Scope". Запустится wizard. В первом окне нажимаем "Next". Откроется окно:


Здесь задаем имя (для того, чтобы не запутаться, лучше задавать имя, соответствующее vlan-у, для которого создается пул). Нажимаем "Next":


Здесь указываем начальный (1) и конечный (2) IP-адреса для выдачи клиентам, так же задаем маску сети (3). Нажимаем "Next":


Здесь необходимо указывать диапазон (меня лично удивило, что именно диапазон. Указать конкретно один IP-адрес не получится) IP-адресов, которые выдаваться клиентам не будут. Но так как в диапазон для раздачи клиентам у нас не попадают ни адрес сервера, ни адреса сетевого оборудования, то оставляем поля пустыми и нажимаем "Next":


Здесь задается время, на которое выделяется IP-адрес клиенту. Оставляем по умолчанию и нажимаем "Next". Откроется окно, где предложат настроить дополнительные опции DHCP сервера. Соглашаемся и нажимаем "Next":


Здесь задаем IP-адрес шлюза по умолчанию, который будет спускаться клиентам. Задаем его и нажимаем "Add". Он появится в списке ниже. В следующих окнах нам настраивать ничего не надо, так что смело нажимайте "Next" в этом окне и в следующих. В последнем окне нажимаем "Finish".
Первый пул появится в списке. Таким же образом необходимо создать пулы для остальных vlan-ов. В итоге, у вас должно получиться вот так:


Всё, с сервером DHCP закончили. Переходим на Host_1 и установим Cisco Trust Agent (CTA). Для его установки нам понадобится непосредственно установочный файл (ctasetup-supplicant-win-2.1.103.0.msi) и перенесенные на рабочую станцию (любым доступным способом) сертификаты (корневой сертификат CA и сертификат сервера ACS), которые мы генерировали ранее.
Для успешной инсталляции CTA необходимо, перед началом установки, в папке, где лежит установочный файл, создать папку с названием "certs" и положить туда скопированные сертификаты:


Запускаем файл *.msi. В первом окне нажимаем "Next". Во втором, соглашаемся с лицензией и нажимаем "Next". В следующем окне показан путь, куда будет установлен CTA. Если не требуется его менять, то нажимаем "Next". Откроется окно:


Здесь выбираем пункт "Complete" для установки полного функционала программы. Нажимаем "Next". Появится окно с оповещением, что все готово к установке. Нажимаем "Next". Начнется процесс установки. На конечном этапе у вас должно появиться следующее сообщение:


Оно обозначает, что сертификаты, лежащие в специально созданной папке, успешно импортированы. Нажимаем "OK". В финальном окне нажимаем "Finish". Вам сразу предложат перегрузить компьютер. Пока этого не делайте, так как мы подходим уже к нашим проверкам и необходимо еще немного к ним подготовиться.
Прежде чем перегружать компьютер, создайте на нем точно таких же пользователей, как мы создавали на сервере ACS (admin, guest, work и, желательно, на время дать им права администраторов для отображения сообщений от CTA, так как у простых пользователей может быть запрет на всплывание окон).
Так же пришло время включить порты на свитче L2_Switch, к которым подключены хосты для проверки:

L2_Switch#conf t
L2_Switch(config)#int range fa 1/1 - 2
L2_Switch(config-if-range)#no shutdown
L2_Switch(config-if-range)#exit
L2_Switch(config)#exit
L2_Switch#wr
L2_Switch#


Все готово к проверкам. Для начала, давайте посмотрим в каком vlan-е на данный момент находятся порты, к которым подключены Host_1 и Host_2:


Как видно из рисунка, на данный момент эти порты находятся в vlan-е TRASH, хотя, если помните, мы не определяли их в определенную сеть, а лишь указали, что guest-vlan для 802.1x является именно vlan TRASH. Это и правильно, так как не известно, что будет подключено в данный порт и как завершится аутентификация.
Теперь, переходим на Host_1 (проверьте, чтобы в настройках сетевой карты стоял пункт динамически получать IP-адрес) и перегружаем его (ну или включаем, если вы его выключали). При загрузке у вас должно появиться, помимо стандартного окна аутентификации windows, куда необходимо ввести учетные данные пользователя, еще и вот такое дополнительное окно Cisco Trust Agent-а:


Здесь вводим данные пользователя, которого заводили на ACS (в данном случае начнем с пользователя "admin"). CTA по умолчанию пытается аутентифицировать и сам компьютер, но так как мы этого не настраивали, то придется подождать некоторое время, пока он не закончит эти попытки. Если вы все ввели правильно, то после загрузки windows вы увидите следующее сообщение:


Если помните, сообщение "You was success validated!!!" мы сами задавали ранее, и обозначает оно, что мы успешно прошли "Posture Validation". Еще одним признаком успешной аутентификации является значок CTA в панели инструментов (зеленый цвет, как показано на рисунке).
Теперь посмотрим, что делается на свитче L2_Switch и проверим сетевую доступность с компьютера Host_1. Переходим на L2_Switch:
 

Как видно, порт перешел из vlan-а TRASH в vlan Administrator. Идем на Host_1:


Как видно из рисунка, мы получили параметры (IP-адрес, маску сети и шлюз) по DHCP из нужного диапазона (1) и получили сетевую доступность, оговоренную в начале поста (успешный ping на ACS (2), на PC_For_Test_1 (3) и на PC_For_Test_2 (4)).
Идем дальше. Теперь сделаем "LogOff" и зайдем под пользователем "work" (Следует отметить, что CTA сохраняет у себя учетные данные, которые вы вводили для каждого нового пользователя и соответственно в следующий раз при входе в систему под этим пользователем, вводить эти данные не придется.). После входа в систему вы должны будете увидеть то же сообщение, что и в предыдущем примере. Проверим что доступно этому пользователю:


Как видно, IP-адрес получен из нужного диапазона (1), доступ в сеть администратора закрыт (2), есть доступ к PC_For_Test_1 (3) и к PC_For_Test_2 (4). Всё, как и оговаривали при постановке задачи.
Посмотрим теперь на L2_Switch:


Порт находится в нужном vlan-е (WORK). Снова делаем "LogOff" и заходим под пользователем "guest":


Как видно, IP-адрес получен из нужного диапазона (1), доступ в сеть администратора закрыта (2), есть доступ к PC_For_Test_1 (3) и нет доступа к PC_For_Test_2 (4). Всё, как и оговаривали при постановке задачи.
Снова посмотрим на L2_Switch, но теперь с помощью команды "show dot1x interface fastEthernet 1/1 details". С помощью нее тоже можно увидеть всю интересующую нас информацию:


    где:
  • 1 - mac-адрес компьютера;
  • 2 - его состояние "аутентифицирован";
  • 3 - состояние порта коммутатора "авторизован";
  • 4 - период повторной аутентификации 3600 секунд (задавали ранее на ACS);
  • 5 - обозначает, что повторная аутентификация включена;
  • 6 - время, до повторной аутентификации;
  • 7 - метод аутентификации 802.1x;
  • 8 - указывает, что процесс Posture Validation прошел успешно;
  • 9 - порт авторизован сервером (ACS);
  • 10 - порт находится в vlan-е тегом 4 (GUEST).
Все как и должно быть. Осталось проверить, что произойдет, если версия CTA не соответствует заданной и куда попадают компьютеры или другие устройства, у которых вообще нет CTA или не поддерживается 802.1x.
Для проверки версии CTA, изменим условие в политике "Posture Validation Policy". Для этого, переходим на ACS и идем по пути "Posture Validation" -- "Internal Posture Validation Setup". Там выбираем ранее созданную политику ("My_Policy"), в ней выбираем необходимый "Condition" и в нем удаляем старый параметр с Cisco:PA:OS-Version >=2.0.0.0 и добавляем новый Cisco:PA:OS-Version >=6.0.0.0.
В итоге, политика должна выглядеть следующим образом:


Нажимаем на "Done". В следующем окне нажимаем "Apply and Restart". Затем возвращаемся на Host_1 и делаем "LogOff". Зайдем под учетной записью администратора и посмотрим что получится:


Вы увидите вот такое сообщение. Если помните, это сообщение мы настраивали как раз для тех, кто не пройдет "Posture Validation". Теперь посмотрим какой IP-адрес у компьютера и проверим сетевую доступность:


Теперь на свитче L2_Switch:
 

Из рисунков видно, что даже несмотря на то, что мы зашли на компьютер под учетной записью администратора ("admin"), мы попали в изолированный vlan TRASH, получили IP-адрес из соответствующего диапазона и можем лишь ping-овать только шлюз по умолчанию (как и оговаривалось в начале поста).
Ну и последняя проверка. Включим Host_2 и посмотрим куда он попадет:


Как и предполагалось, он попал куда следует :). Рисунок говорит сам за себя.
Проверки успешно пройдены, всё что планировали, работает. Есть небольшой "баг" который я заметил при написании поста и работе в GNS3. При проверках, когда вы сделали "Login" и "Logoff" для пользователей и потом перезагрузили Host_1, то 802.1x не отработает. Чтобы все заработало снова, необходимо остановить ("Stop") и снова запустить ("Start") L2_Switch.
Вот в принципе на сегодня и всё :). Надеюсь, повествование было для вас познавательным и интересным. Хочу поблагодарить вас за внимание!!!

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


С нетерпением жду вас в следующих постах!!!

С уважением, Ant0ni0n

2 комментария:

  1. http://juniper.io.ua/s394177/ настройка сетевого оборудования cisco

    ОтветитьУдалить
  2. Здравствуйте. Спасибо за пост - очень интересно. Практически доделал, но нужен CTA (ctasetup-supplicant-win-2.1.103.0.msi). Помогите, пожалуйста.

    ОтветитьУдалить