Skip to main content

Развертывание корпоративной беспроводной сети на базе Ubiquity Unifi

Введение

Однажды, после того, как в нашей лаборатории одна за другой сдохли две точки доступа D-Link и начал глючить роутер от ASUS, было решено качественно проапгрейдить беспроводную сеть. После беглого обзора предлагаемых решений и подсчета вариантов мы остановились на установке двух точек Unifi UAP-LR (Long Range), которые должы были покрыть несколько комнат нашей лабы. Одним из приятных бонусов точек является использование PoE (не 802.3af, а своего, 48 вольтового, но все же), что позволило вынести точки на подвесной потолок не утруждая себя особо сложным монтажем. При желании можно купить переходник за $20, который сделает точки доступа 802.3af-совместимыми.

Покупка и монтаж

Заказали точки в интернет-магазине у оф. партнера, без приключений получили. Для подключения одной из точек (которая под потолком) использовали уже проложенные кабеля, с другой стороны заведенные в серверный шкаф. Там же в шкафу был размещен блок питания (представляющий PoE-инжектор).

Настройка контроллера

Дальше — самое интересное. Изначально, было решено не экспериментировать и контроллер был установлен для тестов на локальной виндовой машине. Для проб были созданы несколько сетей, идентичным по настройкам сетям, которые раздавали умершие точки доступа (они не умели делать единую сеть, поэтому каждая имела свою собственную с одинаковым паролем). При этом в новой конфигурации каждый новая точка доступа генерила все сети (это стандартное поведение точек). Отдельно была создана новая сеть. Напомню, что всего можно создать до 4х сетей в контроллере. Первое время мы жили на обычном WPA2 с расшаренным ключем. Но, поскольку студенты — люди щедрые, ключ стал потихоньку утекать, и было решено перевести систему на доменные логины (к которым студенты относятся более ответственно, т.к. они уже персонализированные).

После успешного тестирования на локальной машине было решено перевести контроллер на серверную винду. Система бекапов конфигурации работает безукоризенно и контроллер переносится без проблем. Но тут мы столкнулись с другой проблемой. Установщик контроллера для этих точек доступа не умеет устанавливать сервис. Пришлось добавлять сервис руками, правда таким образом можно добиться только автоматического запуска от системного пользователя. Перезапуск\Остановка не работают. Этот факт, а так же некоторые другие события (неисправность этого сервера) в дальнейшем послужил поводом к переносу контроллеру на линуксовый сервак. В качестве нового обиталища был выбран один из внутренних ubuntu серверов. Установка контроллера и перенос данных не вызвали особых сложностей и производились штатными средствами согласно инструции.

На новой системе мы получили, кроме корректно работающего сервиса, другие приятные бонусы в виде bash API. Этот интерфейс позволяет удобным образом взаимодействовать с данными контроллера с помощью скриптов. Была подключена система автоматического бекапа через крон и автоматическое переиеменование устройств по логам авторизации.

Настройка RADIUS

Система не была бы корпоративной, если бы она не умела поддерживать 802.1x (т.е. AAA). Было решено подключить точки доступа к контроллеру домена. На DC (W2K8) был настроен NPS сервис с поддержкой PEAP (EAP-MSCHAPv2). В качестве ограничения политики была выставлена принадлежность к доменным пользователям, а также беспроводной тип подключения устройства. Каждую точку нужно добавить в качестве клиента RADIUS сервера (в его роли выступает NPS) и указать общий пароль. Пароль указывается в настройках контроллера для беспроводной сети.

Клиенты RADIUS
Клиенты RADIUS
Настройки политики
Настройки политики

IP-адреса RADIUS клиентов должны соответствовать IP-адресам соответствующих точек доступа, иначе аутентификация будет отваливаться.

Настройки беспроводной сети с WPA-EAP аутентификацией
Настройки беспроводной сети с WPA-EAP аутентификацией

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

Обычно пользователи со своим оборудованием не утруждают себя именованием своих устройств понятным не только им именем. Поэтому, для удобства ориентирования было решено сделать автоматическое переименовывание устройства в контроллере на более понятное имя, используя лог авторизации NPS. Для этого файл с логами скармливается специальному скрипту, который используя то самое bash API отправляет запросы контроллеру на переименовывание девайса. Так же, при желании, можно добавлять устройства в различные группы (ограничивать скорость, например)

Скрипт разбирает старый формат логов IAS. Для нового XML лога нужно будет писать другой парсер.

$ cat /root/accountingDaemon.sh
#!/bin/sh
cat /mnt/logfiles/IN`date +'%y%m'`.log | awk -F',' '{if ($5==4){print $3" "$4" "$6" Accounting "$9; $6 ~ s/-/:/g;cmd="/root/rename_client.sh "$9" Verified "$6"";system(cmd);}}' > /var/log/unifi/renaming.log 2>&1
$ cat /root/rename_client.sh
#!/bin/sh

username=Administrator
password=password
baseurl=https://999.999.999.999:8443
cookie=/tmp/unifi_cookie

. /root/unifi_api.sh

unifi_login
mac=`echo $1 | sed -e ‘s/-/:/g’ | tr [:upper:] [:lower:]`
status=»[$2] $3″
unifi_update_sta $mac «$status» nomail
echo
exit 0

Скрипт accountingDaemon помещается в крон. После этого все устройства будут иметь альяс вида [Verified] Username или [Verified] Domain\Username

Подводные камни

В какой то момент столкнулись с тем, что точки перестали авторизовывать клиентов (просто циклично требовали авторизации). Притом иногда одна точка отрабатывала нормально вторая нет. Решали бубном, изменением настроек сети. Также возможно помогло обновление прошивок точек доступа (обновляются автоматически).

Не все беспроводные устройства умеют WPA-EAP. Какое то время пришлось держать обычную сетку на WPA2, пока решали, что будем делать с ними. К счастью, их не очень много, да и конкретно в нашем случае гораздо удобней и надежней иметь их на проводе.