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

Материал из Wiren Board
Это утверждённая версия страницы. Она же — наиболее свежая версия.

Описание

Эта инструкция для пользователей контроллеров Wiren Board 6...7, работающих под 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 127.0.0.1
    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 и убедитесь, что при входе в веб-интерфейс пароль не запрашивается.