Установка пароля на веб-интерфейс контроллера 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 года, стабильный и тестинг. Все новые контроллеры с 2023 года поставляются с ним.. Подробнее про релизы.

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

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

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

Форма http-авторизации. Введены логин и пароль.

Если ранее не устанавливался пароль на MQTT брокер и нет необходимости доступа к брокеру извне, то:

  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.
    
    # Chaged to localhos-only for security reasons for now
    
    listener 18883 lo
    protocol websockets
    allow_anonymous true
    acl_file /etc/mosquitto/acl/default.conf
    password_file /etc/mosquitto/passwd/default.conf
    
  2. Изменить файл можно открыв его в текстовом редакторе, например, nano:
    nano /etc/mosquitto/conf.d/10listeners.conf
    
  3. Перезапустите mosquitto командой
    systemctl restart mosquitto
    
    Таким образом, брокер становится доступен только на самом контроллере.
  4. Проверьте, что в правом верхнем углу появился статус Подключено в зеленой рамке.

Если ранее пароль на MQTT брокер устанавливался и необходимо оставить доступ к брокеру извне, то дополнительно mosquitto настраивать не нужно.

Далее нужно установить пароль на 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. Если не установлен пароль на MQTT брокер, то приведите файл /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.
    
    # Chaged to localhos-only for security reasons for now
    
    listener 18883 lo
    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 и убедитесь, что при входе в веб-интерфейс пароль не запрашивается.