Я должен добавить правила к ufw путем редактирования user.rules по некоторым причинам, когда я добавляю правила к нему и делаю sudo ufw reload
, правил не стало. Какая-либо причина, почему это происходит и как я могу добавить правила путем ручного редактирования user.rules
файл?
Если Вы добавите свои пользовательские правила в/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 вместо этого.
Ссылки:
Я просто врезался в эти сценарии 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
Ваше вручную добавленное правило СОХРАНИТСЯ
Да, абсолютно безумный, что правило с правильным синтаксисом, который не снабжен предисловием с комментарием, приведет проверку к сбою и очищаться. Как нелепый для интерфейса брандмауэра, утверждающего быть НЕСЛОЖНЫМ ;-).
Это свело меня с ума. Надеюсь, что это решение сохранило других людей горе -