UFW: o que exatamente é isso?

13

O que é o UFW? Você pensaria que essa é uma pergunta fácil, mas quanto mais fontes eu leio, menos claro fica.

O acrônimo indica o Uncomplicated FireWall, como se o ufw realmente implementasse um firewall. E, de fato, em muitos lugares, é referido como um firewall em si, como neste artigo .

A página wiki de ajuda do Ubuntu na UFW diz que o UFW é uma ferramenta de configuração para o iptables. (Por sua vez, a página da wiki de ajuda sobre firewalls diz que iptables é o banco de dados de regras de firewall e que também é o firewall real, como se um banco de dados fosse um firewall, o que é obviamente falso. E é claro que 'iptables' também é o nome de um programa.)

Se o ufw for uma ferramenta de configuração, podemos esperar que seja um programa que você executa para configurar alguma coisa e, uma vez feito, você sai com a configuração estabelecida. Essa é a posição da resposta aceita desta pergunta: O FireWall não complicado (ufw) é um serviço?

Mas outras respostas sobre essa pergunta discordam - não, é um serviço. E, de fato, na minha máquina 18.04, vejo que o ufw está sendo executado como um serviço! Por que diabos uma ferramenta de configuração é executada como um serviço ?!

Além disso, systemctl list-units --all --type=serviceshows ufw.serviceé loaded and active(e também exited?!) Ainda ufw statusmostra inactive.

Então, o que significa ufw status = inactive?

  1. Que "o firewall" (seja o que for) está inativo? É o que o documento da página de manual do ufw para 'status' sugere.

  2. Ou significa que as regras configuradas no ufw estão inativas (mas outras configuradas no iptables estão ativas)?

  3. Ou isso significa que o ufw iniciou na inicialização, instalou suas regras no ipconfig (ou onde quer que vá) para que elas entrem em vigor agora, e agora o ufw não tem nada para fazer e fica inativo?

De interesse particular: desejo seguir algumas instruções que exigem a emissão de alguns comandos do iptables, mas estou preocupado que eles entrem em conflito ou sejam sobrescritos pelo aparelho ufw.

gwideman
fonte
2
iptables é o firewall. Ele também possui as regras, porque obviamente precisa, mas chamá-lo de 'banco de dados' está ampliando um pouco, pois o kernel não fornece persistência; carregá-los no momento da inicialização deve ser resolvido por alguma ferramenta como o ufw.
Jan Hudec
@JanHudec Vejo algumas pessoas falando sobre o iptables como se fosse o firewall, mas até onde eu sei, o netfilter fornece a funcionalidade do firewall, enquanto o iptables fornece a data para o netfilter. Eu gosto do seu argumento de que o iptables apenas contém dados na memória e, portanto, "banco de dados" também é enganoso.
precisa saber é o seguinte
Pessoalmente, consideraria o netfilter parte do iptables, mas posso estar errado neste ponto.
Jan Hudec
Zanna editou minha pergunta para arrumar coisas como URLs (obrigado!), Mas substituiu "UFW" por todas as instâncias de "ufw". Agora acredito que letras minúsculas é o caso apropriado (como mostrado em manpages.ubuntu.com/manpages/xenial/en/man8/ufw.8.html e wiki.ubuntu.com/UncomplicatedFirewall , mas não estou interessado em uma edição . guerra nessa Zanna favor reverter para minúsculas se você comprar minha prova.
gwideman

Respostas:

21

O ufw é um front-end para o netfilter / iptables, o mecanismo do Linux para rotear e filtrar o tráfego da Internet.

O ufw é completamente opcional e é possível criar tabelas de firewall e roteamento diretamente usando os comandos iptables. Algumas pessoas preferem a sintaxe do ufw, que deve facilitar um pouco.

O ufw em si não é o firewall, é uma ferramenta para definir a configuração do netfilter / iptables. Ele é registrado como um serviço porque precisa ser executado toda vez que sua máquina é inicializada. Não acredito que ele permaneça residente na memória depois de fazer essa configuração. "reiniciar" o serviço simplesmente executa novamente seus scripts. Não é incomum que coisas nas distribuições Linux sejam registradas como serviços, mesmo que sejam apenas scripts executados na inicialização ou no desligamento sem permanecer residente no meio.

Se você usa o ufw, não pode definir suas próprias regras do iptables usando seus próprios scripts, pois elas serão substituídas quando o ufw definir as suas próprias. Isso também significa que o ufw pode entrar em conflito com outras ferramentas que definem regras de firewall.

Se sudo ufw statusretornar "inativo", significa que o ufw foi desativado (e, por exemplo, não reaplicará nenhuma regra na inicialização). Você precisa garantir que o ufw esteja ativado sudo ufw enable, embora também precise configurar regras para que isso tenha significado. Se você tem certeza de que ativou o ufw, mas ele retorna "inativo", pode haver algum outro problema.

Observe que "iniciar" o serviço não habilita o ufw, apenas ativa o script de inicialização. Se o ufw estiver desativado quando o script de inicialização for executado, ele não fará nada.

Você pode saber se suas regras de firewall foram aplicadas a qualquer momento usando o iptables diretamente:

sudo iptables -L
sudo ip6tables -L
thomasrutter
fonte
1
Nota: Eu pessoalmente não uso o ufw, uso um pacote chamado netfilter-persistent, que permite escrever regras nativas de iptables em um arquivo e reaplicá-las na inicialização. Na inicialização, ele essencialmente faz o que o ufw faz: executa um script de início que aplica a configuração. A diferença é que não está traduzindo a partir de sua própria sintaxe simplificada, está apenas enviando os comandos iptables diretamente para iptables.
thomasrutter
Muitas coisas boas lá. Obrigado. Sobre isso: "Se você usa o ufw, não pode definir suas próprias regras do iptables usando seus próprios scripts, pois elas serão substituídas quando o ufw definir o seu próprio." O ufw exclui ativamente todas as regras de tabelas de ip existentes? Ou você está dizendo apenas com o ufw na imagem, que não pode confiar nos comandos / regras do iptables que entram em vigor porque eles podem ser substituídos pelo ufw?
precisa saber é o seguinte
Também para thomas: "netfilter-persistent"> isso se relaciona com iptables-persistent?
precisa saber é
Sim, é assim que costumava ser chamado. Se a sua versão do Ubuntu tiver ambos, o pacote iptables-persistent provavelmente será apenas um pacote de transição para dar às pessoas de versões mais antigas um caminho de atualização.
thomasrutter
1
Desculpe se eu confundi você mencionando o resolv.conf, eu estava apenas usando como exemplo de outra parte da configuração no Ubuntu que pode ser controlada por outro serviço que substitui as alterações que você faz diretamente. Não está conectado.
thomasrutter