# acl-hydro-additions.conf — строки, которые ДОПИСЫВАЮТСЯ к вашему acl.conf # (или acl-with-commands.conf) при подключении блока гидропоники. # # Ничего не заменяет: узлы фермы получают свои права рядом с существующими # chirpstack / nodered / esp32. Курс: «Биоферма 2.0», раздел 08, занятие 9. # # Дерево тем фермы (единообразно со стендом): # wifi/hydro// -> телеметрия узла фермы # cmd//set <- команда актуатору (командир — только nodered) # cmd//ack -> актуатор подтверждает исполнение # # ПРИНЦИП (тот же, что в acl-with-commands.conf): датчик пишет ТОЛЬКО свою # телеметрию и слушает ТОЛЬКО свою команду. Командир один — nodered. # # Применение: # cat acl-hydro-additions.conf >> /opt/iot/mosquitto/config/acl.conf # mosquitto_passwd /opt/iot/mosquitto/config/passwd hydro-solution # и т.д. # docker restart mosquitto # ACL перечитывается при старте брокера # # ВНИМАНИЕ: у nodered право `topic write cmd/+/set` уже есть в # acl-with-commands.conf — НЕ дублируйте строку, иначе запутаете себя при отладке. # --- Узел раствора: pH / EC / TDS / уровень + два актуатора --------------- # Здесь применён ТОТ САМЫЙ приём сужения, который в acl-with-commands.conf # оставлен как «отдельный разбор»: вместо cmd/+/set перечисляем КОНКРЕТНЫЕ # hw_id. Узел физически не может ни увидеть чужую команду, ни подделать # чужую квитанцию. Именно это ученики предлагают сами на занятии 9 — # сравните с esp32 выше и объясните, почему так лучше. user hydro-solution topic write wifi/hydro/hydro-solution/# topic read cmd/hydro-dose-phdown/set topic write cmd/hydro-dose-phdown/ack topic read cmd/hydro-pump-main/set topic write cmd/hydro-pump-main/ack # --- Узел климата и света: воздух, освещённость, спектр ------------------- user hydro-climate topic write wifi/hydro/hydro-climate/# topic read cmd/hydro-led/set topic write cmd/hydro-led/ack # --- Узлы CV-мониторинга растений (раздел 09): только телеметрия ---------- # Актуаторов нет => НЕТ никаких прав на дерево cmd/. Наименьшие привилегии: # право, которое не нужно, не выдаётся — даже «на всякий случай». user hydro-plantA topic write wifi/hydro/hydro-plantA/# user hydro-plantB topic write wifi/hydro/hydro-plantB/# # --- ЗАДАНИЕ НА ЗАНЯТИЕ 9 (разбор безопасности) -------------------------- # 1) Сравните права `hydro-solution` (выше) и `esp32` (в acl-with-commands.conf). # Найдите, что именно позволяет `cmd/+/set` и чего не позволяет явный список. # 2) Проверьте руками, что сужение работает: # mosquitto_sub -u hydro-solution -P '...' -t 'cmd/hydro-led/set' # Ожидаемо: подписка отклонена (узел раствора не должен видеть команду свету). # 3) Вопрос на обсуждение: почему право писать в `wifi/hydro/#` (а не в свою # ветку) — это возможность для узла подделать данные СОСЕДНЕЙ группы # эксперимента? Чем это опаснее в проекте, где сравнивают A и Б? # (Подсказка: подделанные данные ломают не безопасность, а ВЫВОД # исследования — а он и есть результат курса.)