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

From Wiren Board
This is the approved revision of this page, as well as being the most recent.

Описание

Эта инструкция для пользователей контроллеров Wiren Board 6...8, работающих под Debian Bullseye — это текущий тестинг и все новые релизы ПО, начиная с февраля 2023 года. Подробнее про релизы.

Перед выполнением настроек убедитесь что правильно понимаете их смысл. Инструкция показывает типовые действия, служит памяткой.

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

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

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

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

  1. Откройте файл /etc/mosquitto/conf.d/10listeners.conf и приведите его к виду:
    # This file should be used to define external mosquitto listeners
    # (which are not used by internal services).
    
    
    # Default MQTT port listener.
    #
    # It allows anonymous listeners by default to be compatible with
    # old Wiren Board mosquitto configuration.
    #
    # It is recommended to add password authentication and TLS for security.
    listener 1883 127.0.0.1
    allow_anonymous true
    acl_file /etc/mosquitto/acl/default.conf
    password_file /etc/mosquitto/passwd/default.conf
    
    
    # Default Websockets listener.
    #
    # It is used by Wiren Board Web interface.
    #
    # It allows anonymous listeners by default to be compatible with
    # old Wiren Board mosquitto configuration.
    #
    # It is recommended to add password authentication for security.
    listener 18883 lo
    protocol websockets
    allow_anonymous true
    acl_file /etc/mosquitto/acl/default.conf
    password_file /etc/mosquitto/passwd/default.conf
    
    Изменить файл можно открыв его в текстовом редакторе, например, nano:
    nano /etc/mosquitto/conf.d/10listeners.conf
    
  2. Перезапустите mosquitto командой
    systemctl restart mosquitto
    
  3. Далее войдите в веб-интерфейс контроллера в раздел Настройки — Веб-интерфейс. В разделе Подключение к MQTT брокеру измените Порт на 80.
  4. Нажмите Применить и проверьте, что в правом верхнем углу появился статус Подключено в зеленой рамке.

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

  1. Включите глобальную аутентификацию командой:
    ln -s /etc/nginx/sites-available/global_auth /etc/nginx/sites-enabled
    
    Перезапустите nginx:
    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/10listeners.conf к виду:
    # This file should be used to define external mosquitto listeners
    # (which are not used by internal services).
    
    
    # Default MQTT port listener.
    #
    # It allows anonymous listeners by default to be compatible with
    # old Wiren Board mosquitto configuration.
    #
    # It is recommended to add password authentication and TLS for security.
    listener 1883
    allow_anonymous true
    acl_file /etc/mosquitto/acl/default.conf
    password_file /etc/mosquitto/passwd/default.conf
    
    
    # Default Websockets listener.
    #
    # It is used by Wiren Board Web interface.
    #
    # It allows anonymous listeners by default to be compatible with
    # old Wiren Board mosquitto configuration.
    #
    # It is recommended to add password authentication for security.
    listener 18883 
    protocol websockets
    allow_anonymous true
    acl_file /etc/mosquitto/acl/default.conf
    password_file /etc/mosquitto/passwd/default.conf
    
  4. Перезапустите mosquitto командой
    systemctl restart mosquitto
    
  5. Войдите в веб-интерфейс контроллера в раздел Настройки—Веб-интерфейс. В разделе Подключение к MQTT брокеру измените Порт на 18883.
  6. Нажмите Применить и проверьте, что в правом верхнем углу появился статус Подключено в зеленой рамке.
  7. Нажмите Ctrl+Shift+R и убедитесь, что при входе в веб-интерфейс пароль не запрашивается.