Установка пароля на веб-интерфейс контроллера Wiren Board (Debian Stretch)

Материал из Wiren Board

Это черновик страницы. Последняя правка сделана 03.02.2023 пользователем A.Degtyarev.

Описание

Эта инструкция для пользователей контроллеров Wiren Board 5...7, работающих под Debian Stretch — это все релизы ПО до wb-2207 включительно. Подробнее про релизы.

Веб-интерфейс не поддерживает авторизацию пользователя, но вы можете настроить http-авторизацию сервера nginx. После окончания настройки при подключении будет появляться окно с запросом логина и пароля.

Установка пароля

Указаны адрес и порт для локального доступа к websocket и mqtt. Справа вверху зеленая надпись Connected сообщает об успешном соединении.
Форма http-авторизации. Введены логин и пароль.

Чтобы установить пароль, настройте mosquitto и nginx:

  1. Закройте доступ к websocket- и mqtt-порт снаружи. Для этого откройте файл /etc/mosquitto/conf.d/listeners.conf:
    nano /etc/mosquitto/conf.d/listeners.conf
    
    и приведите его к виду:
    #change 0.0.0.0 to limit listener to localhost
    
    listener 1883 127.0.0.1
    # example:
    #listener 1883 0.0.0.0
    
    #change 0.0.0.0 to 127.0.0.1 to limit listener to localhost
    
    listener 18883 127.0.0.1
    protocol websockets
    
  2. Перезагрузите mosquitto:
    systemctl restart mosquitto
    
  3. Теперь перейдите в веб-интерфейс и обновите страницу клавишами Ctrl+Shift+R — это сбросит кэш страницы.
  4. На ошибки соединения пока не обращайте внимание и перейдите в раздел Настройки — Веб-интерфейс, укажите в поле Порт новое число 80. Далее нажмите Применить. В правом верхнем углу должна появиться зеленая надпись Подключено. Теперь проверьте, что всё работает: перейдите в раздел Конфигурации и проверьте, что конфигурации доступны для просмотра и редактирования.

Далее нужно установить пароль на nginx.

  1. Включите глобальную аутентификацию:
    ln -s /etc/nginx/sites-available/global_auth /etc/nginx/sites-enabled
    systemctl restart nginx
    
    После этого при подключении к веб-интерфейсу будет запрошен логин и пароль. По умолчанию: логин root, пароль wirenboard.
  2. Чтобы поменять пароль, выполните команду ниже:
    printf "root:`openssl passwd -apr1`\n" > /etc/nginx/passwd
    
    здесь вместо root можно придумать любое другое имя пользователя.
    После выполнения команды появится запрос на ввод пароля — введите новый пароль, нажмите Enter, повторите ввод нового пароля и снова нажмите Enter.
  3. Вернитесь в веб-интерфейс, обновите страницу клавишами Ctrl+Shift+R и при запросе логина и пароля введите их.

Совет: Чтобы не вводить логин и пароль каждый раз при подключении к контроллеру, добавьте закладку с адресом контроллера в формате:

http://login:password@host/

Снятие пароля

Чтобы снять пароль с веб-интерфейса, верните конфигурацию mosquitto и nginx к состоянию по умолчанию.

  1. Отключите глобальную аутентификацию командой:
    rm /etc/nginx/sites-enabled/global_auth
    
  2. Перезагрузите nginx:
    systemctl restart nginx
    
  3. Откройте файл etc/mosquitto/conf.d/listeners.conf:
    nano /etc/mosquitto/conf.d/listeners.conf
    
    И приведите его к виду:
    #change 0.0.0.0 to limit listener to localhost
    
    listener 1883 0.0.0.0
    # example:
    #listener 1883 0.0.0.0
    
    #change 0.0.0.0 to 127.0.0.1 to limit listener to localhost
    
    listener 18883 0.0.0.0
    protocol websockets
    
  4. Перезагрузите mosquitto:
    systemctl restart mosquitto
    
  5. Перейдите в веб-интерфейс и обновите страницу клавишами Ctrl+Shift+R — это сбросит кэш страницы.
  6. Перейдите в раздел Настройки — Веб-интерфейс, укажите в поле Порт значение 18883. Нажмите Применить. В правом верхнем углу должна появиться зеленая надпись Подключено.
  7. Нажмите еще раз Ctrl+Shift+R и убедитесь, что при входе в веб-интерфейс пароль не запрашивается.