Ubuntu: Как добавить правило iptables, которое UFW не может создать
UFW работает очень хорошо для меня, за исключением случаев, когда это не...
Я хочу иметь возможность добавить другое правило вручную, которое будет применяться при загрузке?
- где я должен поставить это правило?
- как сделать так, чтобы он запускался при загрузке?
- как мне заставить его играть с UFW?
1 ответ
Согласно этой вики-странице Ubuntu (прокрутите вниз до "Advanced Functionality"), вы можете достичь того, чего хотите, поставив свой собственный iptables
правила в следующие файлы:
/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 sanity проверяет правила при запуске, он ожидает сопровождающий комментарий. Если он НЕ присутствует, даже если синтаксис правила правильный, UFW все равно удалит его.
И не просто используйте произвольный комментарий: это ДОЛЖЕН быть комментарий, который UFW вставит при создании пользовательского правила через cli, то есть:
sudo ufw allow http/tcp
Поэтому, если вы хотите предварительно заполнить серию правил в наборе правил в простом файле, вам все равно нужно создать правила через интерфейс CLI UFW, чтобы узнать синтаксис комментариев, которые он ожидает, чтобы правило прошло проверку и сохранялось.,
Попробуйте описанное выше и БЕЗ комментария и перезагрузите приведенное выше правило HTTP для образца; Вы заметите только с комментарием, что добавленное вручную правило выдержит перезапуск (UFW Enable) UFW.
Это действительно нелогичное поведение и совсем не задокументировано.