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.
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.
