Настройка устройств серии ZyWALL/USG для авторизации клиентов на внешнем RADIUS-сервере

Как настроить ZyWALL/USG для авторизации клиентов через веб-страницу на внешнем RADIUS-сервере? Необходимо, чтобы клиентам, подключающимся по Wi-Fi при попытке открыть любую веб-страницу в Интернете выдавалось приглашение ввести логин и пароль, и дальнейший допуск осуществлялся бы только в случае успешной авторизации. База пользователей при этом расположена на внешнем RADIUS-сервере.

Для решения этой задачи подойдет устройство серии ZyWALL или USG. Рассмотрим настройку на примере ZyWALL 310/1100/1900 с микропрограммой версии 4.20, которые имеют одинаковый интерфейс и отличаются производительностью.
Эти устройства имеют универсальные порты P1-P8. Для упрощения будем использовать порты в соответствии с их настройками по умолчанию (заводскими настройками).
По умолчанию порт P1 настроен для подключения к провайдеру Интернета с автоматическим получением IP-адреса (WAN, DHCP-клиент).
Порт P3 – для подключения к локальной сети №1 и раздачи IP-адресов клиентам (LAN1 192.168.1.0/24, DHCP-сервер).
Порт P4 – для подключения к локальной сети №2 и раздачи IP-адресов клиентам (LAN2 192.168.2.0/24, DHCP-сервер).
Первую сеть LAN1 будем использовать для подключения внешнего RADIUS-сервера, а вторую LAN2 – для подключения клиентов по Wi-Fi. Для этого к порту P4 подключим одну или, при необходимости, несколько точек доступа ZyXEL серии NWA или WAC.
 
Рассмотрим настройки ZyWALL 1100 для этой задачи. Здесь и далее скриншоты сделаны с русским языком меню настройки, который можно выбрать в меню Configuration > System > Language. Для тех, кто предпочитает английский вариант, в тексте приведены названия соответствующих пунктов меню на английском.
В качестве примера RADIUS-сервера используем бесплатный вариант FreeRadius.net для ОС Windows, который можно скачать по ссылке: http://freeradius.net/
1. В меню Конфигурация (Configuration) > Объект (Object) > Сервер аутентификации (AAA Server) выберем закладку RADIUS и добавим наш RADIUS-сервер, нажав кнопку Добавить (Add).
 
В появившемся окне зададим:
a. Имя (Name), назовем его MyRadiusServer.
Далее настраиваются два аналогичных блока для сервера аутентификации (Authentication Server Settings) и сервера аккаунтинга (Accounting Server Settings). На момент написания статьи, последний был ошибочно назван в русском переводе сервером аутентификации.
b. Настройки сервера аутентификации (Authentication Server Settings):
   i. IP-адрес сервера (Server Address), в нашей схеме 192.168.1.33;
   ii. Порт аутентификации (Authentication Port), используем стандартный порт сервера аутентификации Raduis – 1812;
   iii. Ключ (Key) – зададим ключ testing123 (на скриншоте скрыт звездочками), используемый по умолчанию в нашем варианте FreeRaduis, при необходимости его можно изменить в файле настроек FreeRadius: \FreeRADIUS.net\etc\raddb\clients.conf.
c. Настройки сервера аккаунтинга (Accounting Server Settings):
   i. IP-адрес сервера (Server Address), тот же, что и для аутентификации -192.168.1.33;
   ii. Порт аутентификации (Accounting Port), используем стандартный порт сервера аккаунтинга Raduis – 1813;
   iii. Ключ (Key) – зададим ключ аналогичный серверу аутентификации - testing123 (на скриншоте скрыт звездочками). 
d. При необходимости можно поставить галочку в поле Активировать Accounting Interim Update (Enable Accounting Interim Update). В этом случае информация о подключенных пользователях и объему скаченных/переданных ими данных будут передаваться аккаунтинг-серверу регулярно через интервал, задаваемый ниже в поле Interim-интервал (Interim Interval), а не только в моменты подключения и отключения клиентов.
e. На этом настройка RADIUS-сервера завершена, нажмем кнопку OK и увидим наш сервер MyRadiusServer в списке:
 
2. Перейдем в меню Конфигурация (Configuration) > Объект (Object) > Метод аутентификации (Auth. Method) и добавим наш метод, нажав кнопку Добавить (Add).
 
a. В открывшемся окне зададим ему Имя (Name) – MyAuthenticationMethod и вновь нажмем кнопку Добавить (Add);
b. В раскрывшемся списке Аутентификации (Method List) выберем созданный нами ранее RADIUS-сервер – “group MyRadiusServer” нажмем OK, и увидим наш метод аутентификации в списке:
 
3. Выберем созданный нами метод аутентификации в меню Конфигурация (Configuration) > Система (System) > WWW. Выбор расположен в самом конце многочисленных настроек WWW, поэтому придется прокрутить страницу сколлбаром (вертикальная полоса прокрутки) до конца вниз:
 
В секции Аутентификация (Authentication) > Метод Аутентификации (Client Authentication Method) выбираем наш метод с именем MyAuthenticationMethod и нажимаем кнопку Применить (Apply):
 
4. Теперь, для того чтобы ZyWALL перехватывал запросы к веб-страницам определенных клиентов, необходимо включить веб-аутентификацию и создать политику ее применения в меню Конфигурация (Configuration) > Веб-аутентификация (Web Authentication). Проверяем, что стоит галочка в поле Активировать веб-аутентификацию (Enable Web Authentication), а в секции Обзор политик веб-аутентификации (Web Authentication Policy Summary) нажмем кнопку Добавить (Add):
 
В открывшемся окне поставим галочку в поле Активировать политику (Enable Policy), заполним поле Описание, назвав ее MyWebAuthenticationPolicy, а в секции Политика аутентификации пользователей (User Authentication Policy) выберем Входящий интерфейс (Incoming Interface) – ge4, так как в нашей задаче авторизоваться должны подключенные к порту P4 клиенты. Далее Аутентификация (Authentication) – required, Прозрачная аутентификация (SSO) (Single Sign-on) – снята. Наконец, для того чтобы при открытии любой веб-страницы неаутентифицированные пользователи перенаправлялись на страницу ввода логина и пароля установим галочку в поле Обязательная аутентификация пользователей (Force User Authentication), а в списке Аутентификация (Authentication Type) выберем default-web-portal. Нажимаем кнопку OK и видим нашу политику первым пунктом в списке:
 
На этом настройка ZyWALL завершена.
Важно убедиться, что Межсетевой экран (Firewall) на компьютере с RADIUS-сервером не блокирует протокол UDP, порты 1812 и 1813, используемые сервером. Для этого настройте соответствующие правила или отключите Firewall в ОС Windows.
Проверим, как это работает, открыв на любом устройстве, подключенном к точке доступа, какую-нибудь веб-страницу. При этом откроется страница с предложением ввести имя пользователя и пароль. Используем имя пользователя testuser и пароль testpw (скрыт звездочками), используемые по умолчанию в нашем FreeRadius.net. Их можно изменить или добавить в файле \FreeRADIUS.net\etc\raddb\users.conf.
 
Нажимаем кнопку Вход в систему и видим, что клиент успешно авторизован и начался отсчет времени сеанса:
  
Теперь клиент сможет открыть любую веб-страницу. Имеется возможность завершить сеанс досрочно, нажав кнопку Выход из системы.
В журнале ZyWALL также видна успешная авторизация пользователя testuser:
  
Установив программу-анализатор сетевого трафика Wireshark на компьютере с FreeRadius.net, можно видеть пакеты авторизации и аккаунтинга с RADIUS-сервером. Чтобы Wireshark показывал только обмен с RADIUS-сервером, и другие пакеты не мешали, применим фильтр radius (в зеленом поле).
В первом пакете ZyWALL отправляет на сервер запрос Acces-Request пользователя testuser (UDP порт 1812):
 
Во втором пакете подтверждает успешную авторизацию, высылая подтверждение Access-Accept:
 
Далее ZyWALL высылает информацию для сервера аккаунтинга (UDP порт 1813). Ниже приведен пакет Start, высылаемый при начале работы testuser:
 
После завершения сеанса, при нажатии на кнопку Выход из системы, аккаунтинг-сервер получает пакет Stop, в котором содержится информацию о времени сеанса Session-Time и количестве принятых/отправленных байт Input-Octets, Output-Octets пользователя с логином testusers. Эта же информация содержится в пакетах Interim Update, высылаемых ZyWALL'ом регулярно с заданным в его настройках интервалом.
 

KB-5048

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 2 из 2

Комментарии

0 комментариев