Por que o UFW precisa ser (re) iniciado no momento da inicialização se for apenas o gerenciador de regras iptables?

6

O README do pacote de origem diz:

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.

No meu sistema, tenho isto:

# /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

Então, por que o gerenciador de regras simples do iptables precisa ser iniciado no momento da inicialização? Existe algum segredo para isso, ou apenas verifica se todas as regras estão em vigor?

    
por Tomasz Zieliński 23.02.2011 / 13:41

3 respostas

7

Quando o sistema é inicializado, não há regras de firewall. O kernel não está salvando esses arquivos em nenhum lugar.

Se você não iniciar o UFW (ou algum outro gerenciador de firewall), o seu iptables estará vazio. Além disso, a regra padrão para cada cadeia (FORWARD, INPUT, OUTPUT) é ACCEPT, então tudo é permitido.

Portanto, o UFW não está apenas verificando, mas sim colocando essas regras em prática e criando cadeias adicionais que ele usa para o gerenciamento de regras.

    
por Olli 23.02.2011 / 13:58
5

Quando você executa o iptables (a ferramenta de baixo nível para manipular regras de firewall do netfilter no Linux), a regra é carregada somente no kernel e, portanto, está na RAM. Quando você desliga ou reinicializa, o kernel é reinicializado, pois a memória RAM não é persistente, e o padrão é ACEITAR para todas as tabelas (ou nenhum firewall).

Portanto, para ter um firewall disponível após a inicialização, você deve carregar as regras do iptables no kernel. Você pode fazer isso manualmente, adicionando regras iptables a um script que é executado na inicialização, como /etc/rc.local, ou use uma ferramenta para fazer isso por você. O ufw é uma dessas ferramentas e, quando ativado, ele cuidará do carregamento de regras de firewall na inicialização para você, se estiver integrado ao processo de inicialização, como o README diz. Se o ufw for empacotado para a sua distribuição, como no Ubuntu, a embalagem cuidará disso para você. Simplificando, depois de instalar o ufw via apt-get no Ubuntu, você não precisa fazer mais nada para integrá-lo ao sistema, a não ser executar 'sudo ufw enable'.

    
por jdstrand 23.02.2011 / 23:22
1

Para salvar o status ufw, você precisa executar este comando:

sudo invoke-rc.d iptables-persistent save

então as regras serão salvas e carregadas após a reinicialização.

    
por user214627 11.11.2013 / 12:20