Настройка точки доступа Ubiquiti AP-AC-Lite

Содержание

Введение

Точка доступа похожа на летающую тарелку, питается через PoE, способна работать в частотных диапазонах 2,4 и 5 Гигагерц и обеспечивать скорость связи до 500 мегабит в секунду. По замыслку производителя точка доступа не предназначена для домашнего использования и должна работать только под управлением фирменного WiFi-контроллера.

UAP-AC-Lite

Документацию на описываемую точку доступа можно найти на странице UAP-AC-LITE Quick Start Guide.

Фирменная прошивка

По умолчанию точка доступа получает настройки по DHCP. MAC-адрес точки доступа можно посмотреть на наклейке под креплением в центре. Ищем MAC-адрес в журналах DHCP-сервера или в его файле аренд и определяем IP-адрес. По IP-адресу можно установить подключение с точкой доступа по протоколу SSH. По умолчанию на ней настроен пользователь ubnt с паролем ubnt.

stupin@stupin:~$ ssh ubnt@192.168.254.12
ubnt@192.168.254.12's password: 


BusyBox v1.25.1 () built-in shell (ash)


  ___ ___      .__________.__
 |   |   |____ |__\_  ____/__|
 |   |   /    \|  ||  __) |  |   (c) 2010-2019
 |   |  |   |  \  ||  \   |  |   Ubiquiti Networks, Inc.
 |______|___|  /__||__/   |__|
            |_/                  https://www.ui.com/

      Welcome to UniFi UAP-AC-Lite!

UBNT-BZ.v4.0.66# 

Посмотреть модель, версию прошивки, MAC-адрсес, IP-адрес, сетевое имя и время работы с момента загрузки можно с помощью команды info:

UBNT-BZ.v4.0.66# info

Model:       UAP-AC-Lite
Version:     4.0.66.10832
MAC Address: 74:ac:b9:6c:e3:9d
IP Address:  192.168.254.12
Hostname:    UBNT
Uptime:      125 seconds

Status:      Unable to resolve (http://unifi:8080/inform)

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

UBNT-BZ.v4.0.66# help
UniFi Command Line Interface - Ubiquiti Networks

   info                      display device information
   set-default               restore to factory default
   set-inform <inform_url>   attempt inform URL (e.g. set-inform http://192.168.0.8:8080/inform)
   upgrade <firmware_url>    upgrade firmware (e.g. upgrade http://192.168.0.8/unifi_fw.bin)
   fwupdate --url <firmware_url|firmware_name> [--dl-only] [--md5sum <sum_of_fw>]
            [--keep-firmware] [--keep-running] [--reboot-sys] 
                                   new firmware update command
   reboot                    reboot the device

Из командной строки по SSH можно только сбросить настройки точки доступа к заводским, указать URL контроллера, обновить прошивку или перезагрузить точку доступа. Все остальные настройки точки доступа можно поменять только через WiFi-контроллер.

Прошивка OpenWRT

К счастью, в точку доступа можно прошить неофициальную прошивку OpenWRT, превратив точку доступа в WiFi-роутер. Описание нескольких вариантов процедуры прошивки OpenWRT на устройства модельного ряда Ubiquiti UniFi AP AC можно найти на странице Ubiquiti UniFi AP AC.

Установка прошивки версии 3.7.58

Перед установкой прошивки OpenWRT на точку доступа Ubiquiti AP AC Lite нужно сначала установить фирменную прошивку версии 3.7.58. У меня была установлена более свежая прошивка версии 4.0.66.10832, поэтому мне пришлось сначала проделать следующие действия:

  • У меня была установлена более свежая прошивка версии 4.0.66.10832, но для установки прошивки OpenWRT нужно сначала прошить более старую версию прошивки версии 3.7.58. Скачиваем нужную нам прошивку версии 3.7.58.
  • Для удобства дальнейших действий можно переименовать прошивку следующим образом:

    mv BZ*.bin ubnt.bin
    
  • Проверяем хэш-функции прошивки утилитами md5sum и sha1 следующим образом:

    $ md5sum ubnt.bin 
    5bb23b387defcbd1f6cda5819c7905e5  ubnt.bin
    $ sha512sum BZ.qca956x.v3.7.58.6385.170508.0957.bin 
    850921008ffa17450dd3ca235ab933a7d50e048bc103e8b27c78ddb35578be6a9a50fb20194a3198913ed370872142ae5f93e0026d84cc299b558ff8073cc6e7  ubnt.bin
    

    Хэш-функции должны сойтись с приведёнными в примере выше.

  • Подключаем точку доступа через PoE-инжектор к компьютеру.
  • Настраиваем на сетевой карте компьютера, к которой подключили точку доступа, любой IP-адрес из сети 192.168.1.0/24, за исключением адресов 192.168.1.20 и 192.168.1.1. Первый из них используется по умолчанию фирменной прошивкой, а второй используется по умолчанию прошивкой OpenWRT, поэтому оба эти IP-адреса должны быть свободны.
  • Проверяем связь с точкой доступа при помощи команды ping:

    $ ping 192.168.1.20
    

    Если связи нет, налаживаем её: проверяем правильность подключения точки доступа, PoE-инжектора, компьютера, удостовериваемся, что на компьютере настроен правильный сетевой интерфейс, настроен правильно, нет маршрутов в сеть 192.168.1.0/24 через другие сетевые интерфейсы и т.п.

  • Заходим на точку доступа по SSH по IP-адресу 192.168.1.20 под пользователем ubnt и с паролем ubnt:

    $ ssh ubnt@192.168.1.20
    
  • Если войти не получилось, то сбрасываем настройки точки доступа. Для этого выключаем её, нажимаем при помощи канцелярской скрепки скрытую кнопку Reset и включаем её снова.

  • После того, получен доступ к точке доступа по SSH, скопируем скачанную прошивку с компьютера на точку доступа

    $ scp ubnt.bin ubnt@192.168.1.20:/tmp/
    
  • Заходим на точку доступа по SSH и запускаем команду обновления прошивки:

    UBNT-BZ.v4.0.66# fwupdate.real -m /tmp/ubnt.bin
    
  • После завершения обновления прошивки выключаем точку доступа и включаем снова.

  • После загрузки версия прошивки в приглашении должна измениться на нужную нам:

    UBNT-BZ.v3.7.58# 
    

Установка OpenWRT

Теперь можно установить прошивку OpenWRT. Для этого выполним следующее:

  • Скачаем на компьютер прошивку OpenWRT самой свежей версии (на момент написания статьи ей была 19.07.8) для Ubiquiti AP AC Lite по соответствующей ссылке
  • Скопируем прошивку OpenWRT в точку доступа по SSH с помощью утилиты scp:

    $ scp openwrt-19.07.8-ath79-generic-ubnt_unifiac-lite-squashfs-sysupgrade.bin ubnt@192.168.1.20:/tmp/
    
  • Заходим на точку доступа по SSH и выполняем команды записи образа в раздел kernel0 и очистки раздела kernel1:

    UBNT-BZ.v3.7.58# mtd write /tmp/openwrt-xxxxx-squashfs-sysupgrade.bin kernel0
    UBNT-BZ.v3.7.58# mtd erase kernel1
    
  • Вводим на точке доступа команду следующую команду:

    UBNT-BZ.v3.7.58# cat /proc/mtd
    

    И ищем в её выводе раздел с названием bs. Скорее это будет раздел mtd4.

  • Выполняем следующую команду (имя раздела mtd4 нужно заменить на найденное в предыдущем пункте инструкции):

    UBNT-BZ.v3.7.58# dd if=/dev/zero bs=1 count=1 of=/dev/mtd4
    
  • Всё готово. При следующей перезагрузке загрузится уже прошивка OpenWRT. Настроить WiFi-роутер можно будет по ссылке http://192.168.1.1.

Установка дополнительных пакетов

Согласно странице с техническими характеристиками Ubiquiti UniFi AP AC Lite на сайте проекта OpenWRT, устройство обладает флеш-памятью объёмом всего 16 мегабайт. После установки OpenWRT остаётся свободно около 3,3 мегабайт. С таким объёмом особо не разгуляешься, поэтому я доустановил на WiFi-роутер всего два пакета, которые показались мне наиболее полезными.

Установка luci-ssl

По умолчанию административный веб-интерфейс WiFi-роутера доступен только по протоколу HTTP, а стало быть не защищён шифрованием. Для включения протокола HTTPS нужно доустановить в систему пакет luci-ssl.

Установка zabbix-agentd

Для контроля оборудования и виртуальных машин в своей домашней компьютерной сети я использую систему мониторинга Zabbix, поэтому решил установить на точку доступа Zabbix-агента.

После установки я зашёл на WiFi-роутер по SSH под пользователем root, отредактировал файл /etc/zabbix_agentd.conf следующим образом:

root@ubiquiti:~# egrep -v '^(#|^$)' /etc/zabbix_agentd.conf
LogType=system
Server=<zabbix>
StartAgents=1
ServerActive=<zabbix>
Hostname=<ubiquiti>
Timeout=30
Include=/etc/zabbix_agentd.conf.d/

И перезапустил Zabbix-агента при помощи такой команды:

# /etc/init.d/zabbix_agentd.conf

Чтобы не изнашивать флеш-память записью журналов, все журналы хранятся в оперативной памяти и пропадают при перезагрузке системы. Прочитать содержимое журнала можно с помощью команды logread. Чтобы увидеть последние 10 строк этого журнала, можно воспользоваться очевидным конвейером:

# logread | tail