ZeroTier para uma LAN: regras de rota do UFW, não uma permissão de porta
Permitir uma porta no gateway não é o mesmo que encaminhar para um host atrás dele. Defina a rota gerenciada, ative o trânsito e escolha um caminho de retorno.
Chegar a uma impressora na LAN do escritório através de um membro do ZeroTier parece uma única regra, mas na verdade são três decisões em três lugares diferentes. A sobreposição precisa saber onde está a LAN, o host Linux precisa estar disposto a encaminhar pacotes e a LAN precisa saber como enviar a resposta de volta. Uma regra de entrada que abre uma porta no gateway não toca em nenhuma dessas coisas. É a ferramenta errada aplicada ao host certo.
Três tarefas, três responsáveis
A rota gerenciada pertence à configuração de rede do ZeroTier. Ela informa aos membros que um prefixo é alcançável através de um endereço de membro específico.
O encaminhamento pertence ao núcleo do Linux e a quem possui a política do seu firewall. Ele decide se um pacote que chega pela sobreposição sai novamente pela interface física. Um host que não encaminha descartará o pacote silenciosamente depois de aceitá-lo. O remetente vê um tempo limite e nada aparece no registo do serviço.
O caminho de retorno pertence à LAN. Seus hosts e seu roteador precisam saber que o prefixo da sobreposição é alcançável através do endereço LAN do seu gateway, ou algo precisa traduzir o tráfego para que a pergunta nunca surja.
Cada uma delas pode estar correta enquanto as outras falham, e é por isso que um teste que só faz ping no gateway não prova nada sobre o serviço por trás dele.
Aponte a rota gerenciada para o membro
Adicione uma rota para o prefixo de LAN desejado através do endereço de sobreposição do gateway, não do seu endereço LAN. O endereço de sobreposição é o que outros membros podem alcançar; o endereço LAN só faz sentido no cabo.
Os membros precisam aceitar as rotas gerenciadas para o desenho funcionar, e as suas próprias redes locais não podem já usar o prefixo que você anuncia. Um portátil remoto que em casa está em 192.168.60.0/24 também não pode encaminhar 192.168.60.0/24 através da sobreposição.
Mantenha o prefixo anunciado o mais estreito que a tarefa permitir. Anunciar um agregado maior para influenciar a preferência também pode reivindicar espaço de endereçamento que não é seu, e o conflito resultante aparece nos dispositivos ligados às duas redes. Também pode fazer com que um membro prefira um caminho que não leva a lugar nenhum. Mantenha a rota honesta e deixe a política fazer o resto.
Escreva o prefixo e o endereço do membro na mesma nota que as regras do firewall, porque a falha mais comum é uma rota apontando para o membro errado.
Ative o trânsito no núcleo
Leia o valor de encaminhamento em execução antes de mudar qualquer coisa, e depois torne a configuração permanente através do mecanismo que o seu sistema já usa, não de um comando único que desaparece ao reiniciar.
Se o UFW possui a política, as suas regras de rota expressam o encaminhamento para um par de origem, destino e interface. Elas são separadas das regras de entrada que abrem um serviço no próprio gateway:
sysctl net.ipv4.ip_forward
sudo ufw route allow in on zt3f2a1c9d out on eth0 proto tcp to 192.168.60.20 port 443
sudo ufw status verbose
O nome da interface é o dispositivo de sobreposição real nesse host, que você pode ler com ip link; não é uma string fixa em todas as instalações. Se o host encaminha por padrão e o UFW não está no caminho, a regra de rota será ignorada e o que importa são as configurações do núcleo.
Escolha como as respostas voltam
Com a preservação da origem, o serviço da LAN vê o endereço de sobreposição real e responde a ele. Isso exige uma rota no host da LAN ou no seu roteador apontando o prefixo da sobreposição para o seu gateway, e isso é uma mudança fora da caixa Linux.
Quando essa rota não pode ser adicionada, uma tradução de origem delimitada faz com que o pedido pareça vir do gateway na LAN. As respostas voltam então localmente e não é necessário alterar o encaminhamento da LAN, ao custo de perder a origem original nos registos do serviço.
Limite a tradução à origem da sobreposição e ao destino concreto da LAN. Traduzir tudo o que sai da interface LAN é a versão ampla que depois surpreende quem lê as regras, e também esconde tráfego que deveria ter sido bloqueado.
Nenhuma das opções concede acesso não solicitado da LAN para membros arbitrários da sobreposição. Se isso for desejado, é uma regra separada com a sua própria revisão.
Teste a partir de um membro real
Ligue-se a partir de outro membro, não do gateway, e peça um serviço permitido. Depois experimente um serviço que deve permanecer fechado, e repita os dois testes após uma reconexão e após um reinício do gateway.
Um membro que relata ONLINE, ou um ping bem-sucedido ao endereço de sobreposição do gateway, não valida a rota, a regra de encaminhamento nem o caminho de retorno:
zerotier-cli listnetworks
ip -4 route get 192.168.60.20
sudo ufw status numbered
O segundo comando mostra que interface o pacote usaria para o host da LAN, e o terceiro mostra se a regra de rota existe na forma que você pretendia. Se ambos parecerem corretos e o serviço ainda expirar, o caminho de retorno é o suspeito restante.