Почему UFW должен (пере) запускаться во время загрузки, если это только диспетчер правил iptables?

README из пакета с исходным кодом говорит:

When installing ufw from source, you will also need to integrate it into your
boot process for the firewall to start when you restart your system. Depending
on your needs, this can be as simple as adding the following to a startup
script (eg rc.local for systems that use it):

# /lib/ufw/ufw-init start

For systems that use SysV initscripts, an example script is provided in
doc/initscript.example. See doc/upstart.example for an Upstart example. Consult
your distribution's documentation for the proper way to modify your boot
process.

В моей системе у меня есть это:

# /etc/ufw/ufw.conf
#

# Set to yes to start on boot. If setting this remotely, be sure to add a rule
# to allow your remote connection before starting ufw. Eg: 'ufw allow 22/tcp'
ENABLED=yes

Итак, почему простой диспетчер правил iptables должен запускаться во время загрузки? Есть ли в этом какой-то секрет, или он просто проверяет, соблюдаются ли все правила?

6
задан 23 February 2011 в 16:52

3 ответа

При загрузке системы правила брандмауэра отсутствуют. Ядро не сохраняет их никуда.

Если вы не запускаете UFW (или какой-либо другой менеджер брандмауэра), ваш iptables пуст. Также правило по умолчанию для каждой цепочки (FORWARD, INPUT, OUTPUT) - ПРИНЯТЬ, поэтому все разрешено.

Таким образом, UFW не просто проверяет, а фактически внедряет эти правила и создает дополнительные цепочки, которые он использует для управления правилами.

0
ответ дан 23 February 2011 в 16:52

Когда вы запускаете iptables (инструмент низкого уровня для управления правилами брандмауэра netfilter в Linux), правило загружается только в ядро ​​и, следовательно, находится в оперативной памяти. Когда вы выключаете или перезагружаетесь, ядро ​​переинициализируется, так как ОЗУ не является постоянной памятью, и по умолчанию используется ПРИНЯТЬ для всех таблиц (или без межсетевого экрана).

Поэтому, чтобы после загрузки был доступен брандмауэр, вы должны загрузить правила iptables в ядро. Вы можете сделать это вручную, добавив правила iptables в скрипт, который запускается при загрузке, например /etc/rc.local, или используйте инструмент, который сделает это за вас. UFW является одним из таких инструментов, и когда он включен, он позаботится о загрузке правил брандмауэра при загрузке, если он интегрирован в процесс загрузки, как говорит README. Если ufw упакован для вашего дистрибутива, как в Ubuntu, то упаковка позаботится об этом за вас. Проще говоря, после установки ufw через apt-get в Ubuntu вам не нужно больше ничего делать для его интеграции в систему, кроме запуска sudo ufw enable.

0
ответ дан 23 February 2011 в 16:52

Чтобы сохранить статус UFW, вы должны выполнить эту команду:

sudo invoke-rc.d iptables-persistent save

, тогда ваши правила будут сохранены и загружены после перезагрузки.

0
ответ дан 23 February 2011 в 16:52

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

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