Solução da comunidade

Firewall de anfitrião ZFW no ZimaOS: aplicação segura, filtragem do Docker, IPv6 e compatibilidade atual

A May-July 2026 community module thread introducing ZFW as a ZimaOS dashboard firewall with host INPUT filtering, Docker DOCKER-USER rules, IPv6 handling, exposure visibility, and a 120-second Safe-Apply rollback. The thread documents multiple real compatibility bugs and fixes as ZimaOS moved from legacy iptables to nf_tables.

O ZFW é uma firewall do anfitrião desenvolvida pela comunidade para o ZimaOS, não uma funcionalidade integrada da IceWhale. É instalado como uma extensão do sistema ao nível do anfitrião, surge como um mosaico no painel e tenta resolver uma lacuna real do ZimaOS: os serviços nativos e as portas publicadas pelo Docker podem ficar acessíveis através da LAN, a menos que outra firewall ou um dispositivo de rede a montante as restrinja.

A publicação original começou no ZFW v1.0.10, mas essa versão já não é a referência adequada para uma instalação atual. O ZFW continuou a mudar rapidamente à medida que o próprio ZimaOS evoluía. A versão upstream atual é a v1.0.25, e o projeto já corrigiu problemas de compatibilidade relacionados com o nf_tables backend, alterações dos tokens de sessão do ZimaOS 1.7.x, exposição do Docker através de IPv6 e tráfego da Zima Net em tun0.

Painel da firewall ZFW no ZimaOS, mostrando o estado ativo, as portas expostas, as portas bloqueadas, as descobertas e os controlos de aplicação segura
O ZFW integra o estado da firewall, as contagens de exposição e os controlos de reversão de emergência num painel ao estilo do ZimaOS.

O ZFW é software comunitário, não uma firewall da IceWhale

A Lintux desenvolveu e mantém o ZFW de forma independente. O tópico original contém testes sólidos da comunidade, incluindo utilizadores que confirmaram a persistência das regras, as portas bloqueadas, o comportamento de reversão e posteriores correções de compatibilidade, mas nenhum anúncio da IceWhale transforma o ZFW numa firewall oficial do ZimaOS.

Essa distinção é importante porque o ZFW manipula diretamente a pilha de rede do anfitrião. Uma regra incorreta ou incompatível pode bloquear o SSH, a WebUI, as aplicações Docker ou o acesso remoto.

O ZFW separa os serviços do anfitrião das portas publicadas pelo Docker

a arquitetura do ZFW reconhece que o tráfego do Docker é diferente do tráfego INPUT normal do anfitrião:

  • os serviços nativos do ZimaOS/anfitrião são controlados através de regras ao estilo INPUT;
  • As portas publicadas pelo Docker são filtradas através de DOCKER-USER;
  • O IPv6 tem as suas próprias cadeias e comportamento correspondentes.

Isto é mais rigoroso do que um tutorial de firewall que verifica apenas INPUT e presume que o Docker segue o mesmo caminho.

A aplicação segura é a funcionalidade de segurança mais importante

O código-fonte introduziu uma reversão de emergência de 120 segundos. Quando um conjunto de regras é aplicado, o utilizador tem de o confirmar antes de o temporizador expirar. Se as regras bloquearem acidentalmente o acesso do utilizador, a firewall reverte automaticamente.

Isto é especialmente valioso num NAS sem interface gráfica, porque um erro na firewall pode, caso contrário, transformar-se numa tarefa de recuperação com monitor e teclado locais.

O tópico expôs uma lacuna real de permissão por predefinição no terminal do ZimaOS

Um utilizador comunicou que o ZFW bloqueava a porta TCP 7681, a porta predefinida do terminal ttyd. A Lintux explicou que a lista de permissões inicial incluía portas como SSH, HTTP/HTTPS, SMB e vários serviços do ZimaOS, mas não a 7681.

Este é um lembrete útil: antes de ativar uma política de negação por predefinição, faça um inventário dos serviços de que realmente depende. Uma firewall pode estar a funcionar corretamente e, ainda assim, bloquear um serviço que o perfil predefinido não contemplou.

O ZimaOS 1.6.2 alterou o backend do iptables

Uma das atualizações mais importantes do tópico original surgiu depois de o ZimaOS 1.6.2 ter alterado o caminho efetivo do iptables do Docker para o nf_tables backend. As versões mais antigas do ZFW podiam escrever regras na tabela legada não utilizada, enquanto o mosaico continuava a parecer saudável.

As versões posteriores adicionaram deteção do backend e validação adicional das regras do Docker. É por isso que as instruções antigas de instalação do ZFW nunca devem ser congeladas como uma receita permanente.

O tópico encontrou e corrigiu uma condição real de falha aberta do Docker

Durante os testes da v1.0.16, um utilizador descobriu que DOCKER-USER podia terminar num simples RETURN sem as regras esperadas de negação predefinida. O Lintux confirmou que se tratava de um caminho real e inesperado de falha aberta e alterou a lógica de inventário das portas.

Mais tarde, o mesmo utilizador reinstalou a v1.0.19, reaplicou a firewall e verificou que as regras esperadas por porta e o tratamento UDP estavam presentes.

O IPv6 exigiu várias rondas de correções no mundo real

O tópico original documenta casos em que a proteção IPv6 estava ativa, mas era comunicada incorretamente, e outros casos em que portas IPv6 publicadas pelo Docker eram bloqueadas inesperadamente. Não eram preocupações teóricas; os utilizadores publicaram a saída das cadeias em funcionamento e o responsável pela manutenção reproduziu e corrigiu caminhos específicos.

Numa ligação doméstica compatível com IPv6, teste o acesso a partir de uma rede IPv6 externa real, em vez de presumir que um teste na LAN IPv4 prova a mesma política.

O ZFW atual também teve de se adaptar ao acesso remoto do Zima Net

Uma versão posterior do projeto original descobriu que o tráfego de acesso remoto Zima Net integrado no ZimaOS, em tun0 podia ser descartado por compilações mais antigas do ZFW. A versão v1.0.24 do ZFW adicionou o tratamento de contorno necessário nas cadeias relevantes.

Este é outro motivo para atualizar o ZimaOS e o ZFW em conjunto e verificar o acesso remoto após uma atualização da firewall.

Utilize a versão atual do ZFW, não a v1.0.10

Em setembro de 2026, a versão v1.0.25 do ZFW é indicada como a versão mais recente no projeto original. Consulte as versões atuais do ZFW e o histórico de compatibilidade antes de instalar ou atualizar.

Verifique a firewall ativa, não apenas o mosaico verde do painel

Depois de ativar o ZFW, teste:

  • SSH e a WebUI a partir da LAN;
  • o terminal do ZimaOS;
  • portas importantes publicadas pelo Docker;
  • Tailscale/ZeroTier/Zima Net, se utilizados;
  • IPv6 a partir do exterior da LAN, quando relevante;
  • persistência após reinícios.

O histórico do código-fonte mostra por que motivo uma interface com aspeto saudável não deve ser a única prova de que as regras chegaram ao backend ativo.

Perguntas frequentes sobre o ZFW

O ZFW é uma firewall oficial da IceWhale?

Não. É um módulo comunitário de firewall do anfitrião que se integra profundamente com o ZimaOS.

Os utilizadores atuais devem instalar a v1.0.10 a partir da publicação original?

Não. Desde essa versão, o projeto recebeu muitas correções de compatibilidade e segurança.

Por que motivo o ZFW utiliza DOCKER-USER?

O tráfego publicado pelo Docker pode contornar a filtragem INPUT normal do anfitrião, por isso o ZFW utiliza o caminho de filtragem dedicado do Docker para as portas dos contentores.