Правила UFW исчезают после ручного добавления их к user.rules человечности 16.04

Я должен добавить правила к ufw путем редактирования user.rules по некоторым причинам, когда я добавляю правила к нему и делаю sudo ufw reload, правил не стало. Какая-либо причина, почему это происходит и как я могу добавить правила путем ручного редактирования user.rules файл?

2
задан 20 October 2019 в 19:59

2 ответа

Если Вы добавите свои пользовательские правила в/etc/ufw/before*.rules или after*.rules то вместо этого, он не исчезнет после перезагрузки.

Когда допустимый ufw команды вводятся в оболочку, т.е. пользовательские пользовательские правила, они входят в/etc/ufw/user*.rules файлы, и они сохраняются.

root@ubuntu:~# ufw allow 22/tcp
Rule added
Rule added (v6)
root@ubuntu:~# grep tcp.*22 /etc/ufw/user*.rules
/etc/ufw/user6.rules:### tuple ### allow tcp 22 ::/0 any ::/0 in
/etc/ufw/user6.rules:-A ufw6-user-input -p tcp --dport 22 -j ACCEPT
/etc/ufw/user.rules:### tuple ### allow tcp 22 0.0.0.0/0 any 0.0.0.0/0 in
/etc/ufw/user.rules:-A ufw-user-input -p tcp --dport 22 -j ACCEPT
root@ubuntu:~# iptables -L -n | grep dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

При редактировании user*.rules непосредственно добавленные правила (если допустимый) будут загружены в с перезагрузкой ufw, но не сохранятся при следующем перезапуске ufw сервиса.

Поэтому добавьте свои пользовательские правила в/etc/ufw/before*.rules или after*.rules вместо этого.

Ссылки:

1
ответ дан 2 December 2019 в 02:44

Я просто врезался в эти сценарии ruleset для автоматизации сборки хоста. Проблема с тем, как UFW проверяет /etc/ufw/user.rules

Просто вручную добавляя правило к /etc/ufw/user.rules такой как:

-A ufw-user-output -p tcp --dport 80 -j ACCEPT

Будет очищен, когда ruleset является исправностью, проверенной, когда UFW запускается БЕЗ сопроводительного комментария:

### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 out

Таким образом, для ручного добавления правила, позволяющего TCP/80, который выживает, перезагрузка UFW была бы:

### 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, когда Вы добавляете правило через CLI. В этом примере с помощью TCP/80, который был бы:

sudo ufw allow http/tcp

Проверка этого решения:

Шаги для репродуцирования ОТКАЗА:

  • sudo ufw disable

  • sudo vi /etc/ufw/user.rules

  • Добавить -A ufw-user-output -p tcp --dport 80 -j ACCEPT БЕЗ комментария

  • сохраните и закройте/etc/ufw/user.rules

  • sudo ufw enable

Ваше вручную добавленное правило будет ОЧИЩЕНО; это не переживет перезапуск UFW

Шаги для воссоздания РЕШЕНИЯ:

  • sudo ufw disable

  • sudo vi /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

  • сохраните и закройте/etc/ufw/user.rules

  • sudo ufw enable

Ваше вручную добавленное правило СОХРАНИТСЯ

Да, абсолютно безумный, что правило с правильным синтаксисом, который не снабжен предисловием с комментарием, приведет проверку к сбою и очищаться. Как нелепый для интерфейса брандмауэра, утверждающего быть НЕСЛОЖНЫМ ;-).

Это свело меня с ума. Надеюсь, что это решение сохранило других людей горе -

2
ответ дан 2 December 2019 в 02:44

Другие вопросы по тегам:

Похожие вопросы: