Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Способы изменить URL информационной страницы, UniFi Network
 
Привет! Есть ли способ запустить локальный контроллер, чтобы я мог настраивать точек доступа для клиентов прямо в офисе, делать их запуск и при этом чтобы контроллер сам обновлял информ URL? Я бы хотел настроить точку доступа у себя в офисе с помощью контроллера и одновременно задать информ URL прямо в контроллере, чтобы не пришлось постоянно подключаться к точке доступа по SSH. (Будет здорово, если будет какой-то запасной информ URL на случай сбоев!)

Зачем это нужно? У меня на ноутбуке настроено больше 200 точек доступа, и было бы здорово управлять ими, не присутствуя лично у клиента. Я использую CloudKeys, но не могу продавать CloudKey, если клиент покупает всего одну точку доступа.

С уважением!
 
@Knap-IT

Одно дополнительное замечание. Некоторые команды, которые отображаются с помощью «help» после входа в CLI, на самом деле являются алиасами для логин-оболочки, поэтому при запуске их через ssh с внешнего хоста нужно использовать не алиас, а их полную версию. Это касается и команды «set-inform», для которой требуется вызвать символическую ссылку на агент управления Ubiquiti Management Console, mca-cli-op. Таким образом, например, чтобы изменить URL информирования с внешнего хоста через ssh, понадобится примерно такой код: ssh 192.168.123.123 mca-cli-op set-inform http://192.168.0.8:8080/inform. Эти алиасы прописаны очень понятно в /etc/profile.

Если это отвечает на ваш исходный вопрос, пожалуйста, отметьте мой ответ как «Принятое решение».
 
@Knap-IT

Здесь есть ещё более крутое решение. Генерация публичных ключей, как я уже объяснял, остаётся той же, но добавление их в файл config.properties, как описано в упомянутой статье, гарантирует, что вы всегда сможете зайти на свой AP или запускать на нём свои команды через ssh без ввода пароля.

Небольшое замечание: публичные ключи, сгенерированные с помощью ssh-keygen, начинаются с указания типа ключа, например, «ssh-rsa», за которым идёт пробел и сам ключ. Уберите этот тип ключа перед тем, как вставлять в config.properties, и вместо этого впишите его в строку sshd.auth.key.x.type, например:  
config.system_cfg.1=sshd.auth.key.1.status=enabled  
config.system_cfg.2=sshd.auth.key.1.value=AAAAB3....... и так далее  
config.system_cfg.3=sshd.auth.key.1.type=ssh-rsa  

Публичные ключи, заданные таким образом, будут распространяться по всему сайту, так что вы сможете автоматически изменить информ-URL на всех устройствах без необходимости заходить в каждое из них отдельно.
 
@dpurgert именно здесь @Knap-IT. Но ты можешь доработать свою текущую установку, чтобы при необходимости использовать метод информирования L3.
 
Хотя можно сохранить загруженные публичные ключи на AP с помощью /usr/bin/cfgmtd -w -p /etc, я всё ещё ищу способ автоматически заполнять /etc/dropbear/authorized_keys (который, судя по всему, не является постоянным и не может им стать) при запуске или перезагрузке, чтобы не приходилось делать это вручную после каждой загрузки. Буду благодарен за любые советы. Это значительно повысило бы полезность моего варианта кода. Разработчики Ubiquiti тщательно (и, возможно, разумно) скрыли или убрали любые хуки в BusyBox CLI, которые могли бы поддерживать автозапуск кода при старте системы.
 
Интересное замечание по поводу использования authorized_keys в UniFi AP. Некоторые действия с контроллера приводят к тому, что файл /etc/dropbear/authorized_keys сбрасывается в пустой (нулевой длины). Это включает, но, возможно, не ограничивается добавлением новой беспроводной сети или изменением пароля на уже существующей сети в группе, используемой на AP. При этом другие данные (например, ранее загруженный публичный SSH-ключ) не удаляются, но, похоже, что dropbear (SSH-сервер) перезапускается и переинициализирует некоторые данные из прошивки или из других мест на AP. Это может ограничить полезность данного метода, хотя другие операции, такие как доступ к журналам или обновление URL информатора, подобных проблем, похоже, не вызывают. Я продолжаю с этим экспериментировать. Это одна из опасностей использования «недокументированных» функций любого ПО или оборудования. Помню, что у Microsoft в MS-DOS в 80-90-х годах было множество недокументированных хуков, которые они внедряли, чтобы дать своим разработчикам преимущество при написании кода для ОС. Они предупреждали, что эти функции могут исчезнуть в любой момент, но они были очень полезны, и многие разработчики, не только из Microsoft, на них рассчитывали. Когда Microsoft попыталась изменить эти функции, разразился огромный скандал среди сообщества разработчиков, и им пришлось оставить множество из них.
 
Решение, которое я предлагаю для доступа к нашей приватной локальной сети (с адресами IPv4 по RFC-1918) из вне — использовать для всего публичные IPv6-адреса. Это, конечно, риск с точки зрения безопасности, но риск управляемый. К сожалению, сетевая стэк на UniFi AP не поддерживает IPv6. Возможно, Ubiquiti считает, что в этом нет никакой необходимости, и что адреса v4 по RFC-1918 всегда будут работать, ведь точки доступа почти всегда находятся в частных сетях. А может, Ubiquiti просто не успели добраться до XXI века 😉
 
Эта статья должна охватить настройку URL информирования, DHCP Опции 43, приложение для телефона и использование переопределения контроллера (если, конечно, его сильно не изменили с тех пор, как я добавил статью в закладки).
 
Да, ваш пост напомнил мне поговорку про "срезать котов", но моя дочь, любящая котов, пару лет назад отучила меня использовать именно эту фразу. Можете ли вы подсказать, где можно найти краткое объяснение использования DHCP Option 43 для UniFi AP?
 
Да, если речь идёт об обновлении уже существующих или ранее установленных точек доступа, то самый быстрый способ решить проблему — использовать скрипт, особенно если на каждом объекте их несколько. Ведь в любом случае ему придётся ехать на место, учитывая, что все они подключены к его «личному» рабочему ноутбуку (а значит, скорее всего, к ним нельзя обратиться через интернет).

Однако если он занимается новыми установками, то предложенный тобой метод будет гораздо менее удобным, чем когда контроллер сразу раздаёт настройки всем устройствам, подключённым к конкретному объекту в момент их добавления.

В общем, способов решения этой задачи больше одного.
 
Это правда, в этом я уверен, но, как я понимаю, вопрос Knap-IT заключается в поиске способа массового применения изменения настроек примерно на 200 уже работающих точках доступа. Использование специфичных для производителя DHCP-расширений или DNS CNAME добавляет лишнюю сложность, которая здесь, возможно, и не нужна и не упростит задачу Knap-IT.

Я немного поковырялся в файловой системе UniFi AP и обнаружил пустой, доступный для записи файл authorized_keys. Немного тестов показали, что dropbear действительно принимает публичные RSA-ключи из этого файла. Использовать эту возможность не требуется никаких hostname или DHCP-расширений — всё можно сделать на уровне IP-адресов.

Гибкость, как правило, обратно пропорциональна сложности, и возможность использования SSH authorized_keys значительно шире, чем только установка inform URL. Например, можно парсить и анализировать логи управляемых групп AP, чтобы искать попытки вторжений или другую полезную для администратора информацию.

Однако такое решение требует: а) чтобы для каждой точки доступа UniFi DHCP назначал постоянный IP — это легко сделать, привязав выдачу к MAC-адресу, и б) чтобы кто-то с достаточными знаниями Linux и скриптинга мог воспользоваться этим приёмом.

Решение, которое я предложил, кажется, устроило Knap-IT и даже получило лайк от другого пользователя.

Нужно отметить, что использование SSH authorized_keys на UniFi AP, по всей видимости, не документировано и не поддерживается компанией Ubiquiti. Если вы применяете этот метод, техподдержка Ubiquiti может отказать вам в помощи, пока вы не сделаете сброс настроек до заводских. Я предполагаю, что именно поэтому возможность использования SSH authorized_keys могут убрать в будущих обновлениях прошивки UniFi AP.
 
Вам не нужно писать никаких скриптов — DHCP Option 43 (на вашем сайте) или CNAME (тоже на вашем сайте) с unifi на unifi.yourdomain.com должны отлично работать. Кроме того, контроллер можно (для каждого сайта отдельно) настроить так, чтобы он сообщал точкам доступа своё имя хоста после их подключения (то есть даже если локально оно «unifi», вы можете переопределить это начальное значение на ваш публичный IP-адрес или публичное имя хоста и так далее). Правда, это не влияет на уже существующие настройки.
 
Это именно то решение, которое я искал! Спасибо!
 
Вот метод, который даёт много свободы, если вы разбираетесь в Linux и готовы немного поработать с простым скриптингом, а также планируете управлять с Linux-машины или с любой системы, где есть OpenSSH. UniFi AP работают на встроенной версии Linux, которая хоть и минимальна, но умеет многое из того, что умеет обычный Linux. SSH-сервер BusyBox на UniFi AP — это демон под названием dropbear, который понимает многие стандартные протоколы OpenSSH, включая вход без пароля с использованием авторизованных ключей с удалённых систем.

Если вы ещё не делали этого раньше, на вашей локальной машине для управления запустите:  
ssh-keygen  
Просто нажимайте Enter на все вопросы и запросы. В итоге у вас появятся два файла: ~/.ssh/id_rsa и ~/.ssh/id_rsa.pub. Если вы уже делали это при общей настройке ssh, то у вас, скорее всего, уже есть .pub файл с публичным ключом в каталоге ~/.ssh (возможно с другим именем), который можно использовать здесь.

В любом случае, скопируйте ваш публичный ключ на каждый AP командой:  
scp ~/.ssh/id_rsa.pub <ip или fqhn AP>:  
Используйте известный IP-адрес или имя AP и подставьте актуальное имя вашего публичного ключа, если оно не «id_rsa.pub». Сделайте это для каждого AP, которым планируете управлять. Не забудьте двоеточие в конце!

Зайдите по ssh на каждый AP и выполните команду:  
cat id_rsa.pub >> /etc/dropbear/authorized_keys

После этого вы сможете запускать скрипты на управляющей машине с командами типа:  
ssh user@<IP или fqhn AP> set-inform http://2.3.4.123:8080/inform

«user» — это зарегистрированный пользователь на AP или «ubnt», если устройство после сброса к заводским настройкам. Пароль запрашиваться не будет, что позволит легко выполнять массовые обновления с помощью простого скрипта на выбранном вами языке.
Страницы: 1
Читают тему (гостей: 1)