Kerio no Linux: dar ao kvnet o MAC que o servidor espera
O kvnet é recriado a cada ligação, pelo que uma alteração de endereço única se perde. Leia o valor que o cliente registou e aplique-o a partir de um gancho após a ligação.
Três coisas têm de coincidir antes de um túnel Kerio transportar tráfego: o endereço na interface kvnet, o valor que o cliente registou e o que a política do servidor ou o DHCP espera. Quando não coincidem, o túnel autentica-se na mesma e sobe na mesma, e é exatamente isso que torna a falha confusa. A interface é criada por ligação, pelo que um endereço definido à mão pertence a essa sessão e a mais nada. É esta a forma do problema, e a solução é um gancho e não um ficheiro de configuração. O resto é onde ler o valor e onde aplicá-lo.
Porque o endereço continua a reverter
kvnet é um adaptador virtual que o cliente cria quando uma ligação começa e remove quando termina. Um ip link set manual sobrevive, portanto, exatamente o tempo da sessão a que foi aplicado, e a ligação seguinte começa com o que o cliente atribuir. Numa máquina em que o cliente não consegue aplicar o endereço esperado, cada reconexão reintroduz a mesma discrepância, e a regra de concessão ou de acesso volta a rejeitar o dispositivo.
Esse padrão é diagnóstico por si só. Um túnel que funciona numa sessão e falha na seguinte não é um problema de credenciais, porque as credenciais não mudam entre ligações.
Leia o valor no cliente, não na interface
O cliente Linux escreve os detalhes da negociação no seu registo de depuração, e o endereço que pretende usar aparece ali como o último testemunho com forma de endereço da sequência de ligação. Compare-o com o que o kernel realmente detém, que está a um readlink de distância: cat /sys/class/net/kvnet/address.
Se os dois diferirem, o cliente conhecia o valor correto e não conseguiu aplicá-lo, e um gancho que o aplica depois de a interface existir fecha essa lacuna. Se o registo não contiver qualquer endereço, o problema é anterior e pertence à versão do cliente ou ao perfil do servidor, e não a um script.
Aplique-o depois de a interface existir
Os utilizadores do NetworkManager podem colocar um script no seu diretório de despachante e agir apenas quando a interface VPN sobe. Um cliente gerido pelo systemd exige mais cuidado: um drop-in executado no arranque do serviço ativa-se normalmente antes de o adaptador existir, pelo que o gancho tem de esperar pela interface em vez de a presumir. Defina o endereço então, e se o kernel recusar enquanto a ligação está ativa, baixe-a, defina o endereço e volte a levantá-la. Releia o testemunho extraído através de um padrão de MAC antes de o passar ao ip link, para que uma linha de registo inesperada não possa tornar-se um argumento.
Tudo o que corre como root a partir do registo de um cliente merece uma propriedade estreita: um ficheiro pertencente ao root, não escrevível por outros, e sem interpolação de shell para além do endereço validado. Mantenha a verificação do padrão dentro do script. Não deixe o conteúdo do registo decidir que comando corre.
Verifique a concessão em vez da ligação
ip -4 -o addr show dev kvnet deve mostrar um endereço no intervalo esperado, ip neigh show dev kvnet deve mostrar a porta de ligação, e um serviço atrás da VPN deve responder. Depois desligue e volte a ligar uma vez; se o endereço reverter, o gancho está a disparar no evento errado ou não está a disparar de todo.
Uma interface que aparece com o endereço correto e nunca obtém uma concessão aponta para o lado do servidor. Essa é outra verificação e normalmente outra equipa. Confirme que a conta está autorizada e que o conjunto ainda tem um endereço antes de editar o gancho outra vez.
Reveja a alternativa depois de uma atualização
Uma compilação do cliente que define o endereço corretamente deixa o seu gancho a aplicar um valor desatualizado, o que é uma falha nova introduzida por uma correção. Também nunca copie um MAC de outra máquina ou de uma publicação de fórum; use o valor que este cliente regista para esta conta, e anote a data em que o verificou.
Mantenha o script suficientemente curto para ser lido de uma assentada. As alternativas que analisam registos são temporárias por natureza. As que sobrevivem são as que um leitor futuro compreende sem o fio original.