UFW удалит любое добавленное вручную правило, в /etc/ufw/user.rules
котором НЕ предшествует комментарий:
### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 out
-A ufw-user-output -p tcp --dport 80 -j ACCEPT
Когда UFW sanity проверяет правила при запуске, он ожидает сопровождающего комментария. Если он НЕ присутствует, даже если синтаксис правила правильный, UFW все равно удалит его.
И не просто используйте произвольный комментарий: это ДОЛЖЕН быть комментарий, который UFW вставит при создании пользовательского правила через cli, то есть:
sudo ufw allow http/tcp
Поэтому, если вы хотите предварительно заполнить серию правил в наборе правил в простом файле, вам все равно нужно создать правила через интерфейс CLI UFW, чтобы узнать синтаксис комментариев, которые он ожидает, чтобы правило прошло проверку и сохранялось. ,
Попробуйте описанное выше и БЕЗ комментария и перезагрузите приведенное выше правило HTTP для образца; Вы заметите только с комментарием, что добавленное вручную правило выдержит перезапуск ( включение UFW) UFW.
Это действительно нелогичное поведение и совсем не задокументировано.