UFW работает очень хорошо для меня, за исключением случаев, когда это не так ...
Я хочу иметь возможность вручную добавить еще одно правило, которое будет применяться при загрузке?
В соответствии с эта страница вики Ubuntu (прокрутите вниз до «Расширенная функциональность»), вы можете добиться того, чего хотите, установив свой собственный iptables
rules в следующие файлы:
/etc/ufw/before.rules
/etc/ufw/after.rules
В before
файл оценивается перед любым ufw
применяются правила; то after
файл оценивается после. (Также есть соответствующие before6
и after6
файлы правил для вашего ip6tables
правила.)
Эти файлы правил должны находиться в iptables-restore
-совместимый синтаксис, предположительно потому, что ufw
просто загружает их, используя iptables-restore
. Наконец, обратите внимание, что вам нужно остановить и перезапустить ufw
после того, как вы внесете какие-либо изменения в файлы правил.
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 проверяет правила при запуске, она ожидает сопроводительного комментария. Если это НЕ присутствует, даже если синтаксис правила правильный, UFW все равно очистит его.
И не используйте произвольный комментарий: он ДОЛЖЕН быть комментарием, который UFW будет вставлять при создании правила пользователя через cli, то есть:
sudo ufw allow http/tcp
Поэтому, если вы хотите предварительно заполнить серию правил в наборе правил в простом файле, вам все равно нужно будет создать правила через интерфейс командной строки UFW, чтобы изучить синтаксис комментариев, которые он ожидает, чтобы правило прошло проверку и сохранится. .
Попробуйте выполнить вышеизложенное с БЕЗ комментария и перезагрузите образец правила HTTP выше; вы заметите только с комментарием, выдерживает ли добавленное вручную правило перезапуск (ufw включить) из UFW.
Это действительно противоречит интуиции и совсем не задокументировано.