Немного о Unifi. Запуск unifi controller в виде сервиса в win2k8r2. Фильтр мак-адресов.

Рано или поздно во всех компаниях возникает вопрос расширения зоны покрытия wi-fi сети. Самый просто вариант — покупаем еще одну точку доступа и создаем еще одну сеть. Вариант подходит тем, у кого все сотрудники «стационарны» и не перемещаются из зоны действия одной сети в другую.

Вариант второй: покупаем точку той же модели, что и предыдущая и настраиваем wi-fi repeater. Выглядит просто, но на деле приходится сталкиваться с различными проблемами.

Вариант третий: купить точки Ubiquiti UniFi. Их прелесть в том, что сами точки, по сути, просто передатчики. Вся логика вынесена в отдельную программу-контроллер, которая может быть установлена на windows, linux, mac os. Таким образом, расширяется сеть путем установки новых точек доступа и добавления их в контроллер.

Но если бы все было так просто, этой заметки не появилось бы в моем блоге. Всем админам хочется сделать систему максимально автономной и не требующей вмешательства в случае перезагрузок. По умолчанию, unifi controller запускается в виде обычного приложения. Т.е. после каждой перезагрузки, необходим ручной запуск — иначе новые устройства не смогут подключиться (старые будут работать). К счастью, производитель предусмотрел вариант запуска приложения в качестве сервиса. Согласно мануалу необходимо выполнить:

 1. Закройте UniFi, если он запущен.

2. Добавьте в переменную PATH путь к Java. Путь будет таким C:\Program Files (x86)\Java\jre6\bin или  C:\Program Files\Java\jre6\bin (либо jre7, в случае использования java 7).

3. Запустите с правами администратора командную строку (cmd.exe) и перейдите в директорию с файлами UniFi (cd «%userprofile%/Ubiquiti Unifi»).

4. Выполните java -jar lib\ace.jar installsvc

5. Запустите сервис.

А вот здесь, если у вас windows server 2008 r2, можно добавить пункт 6 — убедитесь, что сервис не стартует с «говорящей» ошибкой

The unifi controller service terminated with service-specific error: the operation completed successfully.

Проблема заключается в использовании 64-битной версии java. С ней запустить сервис, по какой-то причине, не удается. Для решения этой проблемы, необходимо доустановить jre x86 и изменить в переменной окружения PATH путь к java на директорию, содержащую версию x86 — C:\Program Files (x86)\Java\jre6\bin или C:\Program Files (x86)\Java\jre7\bin. После этого сервис запустится без ошибок.

Еще один вопрос, который может возникнуть — фильтрация MAC-адресов. Многие компании применяют этот метод в качестве одного из способов ограничения доступа в wi-fi сеть. По какой-то причине, разработчики UniFi не включили этот функционал в возможности контроллера. Но он доступен в виде дополнения от команды тестировщиков UniFi — unifi-lab-master.

Качаем дополнение, скачиваем Python 2.7 x86-64, если у вас windows x64  (не 3 ветку!), устанавливаем и добавляем в переменную PATH путь к нему — C:\Python27 по умолчанию. Качаем cURL с поддержкой SSL. Распаковываем его и кладем в директорию со скриптами unifi-lab. Редактируем, при необходимости, конфигурационный файл unifi_lab_production.ini и запускаем unifi_lab.py. В файл unifi_lab_mac_auth.list вносим мак-адреса устройств, которым разрешено подключение к сети (по одному в каждой строке). Файл перечитывается постоянно, поэтому изменения вступают в силу сразу после сохранения.

Для того, чтобы не запускать скрипт вручную, его можно конвертировать в exe при помощи py2exe. После этого создаем задание в планировщике на запуск программы при старте системы, настраиваем его на запуск вне зависимости от входа пользователя и снимаем галочку «Stop the task if it runs longer than 3 days».

Теперь перезагрузки будут не страшны — все запустится автоматически.

Немного о Unifi. Запуск unifi controller в виде сервиса в win2k8r2. Фильтр мак-адресов.: 9 комментариев

  1. Спасибо за статью!
    вроде всё сделал как написано, но не могу зайти по вебу для настроек контролера. это так и должно быть? или я много прошу от контролера получившего службу?

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

  2. Доброе утро! Возможно ли придумать какой-нибудь велосипед, чтоб этот контроллер встал на Win 2008R2 под учеткой Администратора? С латиницей в имени встает без проблем, а вот с русским администратором ни в какую. Как решить?

    1. А зачем придумывать велосипед? Создайте еще одну учетку для запуска контроллера с латинскими буквами.

      1. Так это доменный админ. Сначала заходишь род ад ином, потом делаешь,,выход из системы,, логмнишься род латинской учеткой и опять заходишь под админом? В этом случае рога будет фурычить?

        1. Самый простой способ — создать еще одну учетку с правами админа (с латинскими буквами в имени), залогиниться под ней и поставить контроллер. Далее настроить его запуск в качестве сервиса и забыть про эту учетку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *