A cifragem de conexão do Firebird 3 e a VPN são duas fronteiras
Uma VPN a funcionar não diz nada sobre quem pode abrir o listener do Firebird nem sobre o que o cliente negociou. Verifique separadamente a acessibilidade, a autenticação e a cifragem de conexão.
A VPN liga-se, o cliente abre uma sessão e todos assumem que a ligação à base de dados está protegida. Acabaram de ser confundidas três coisas diferentes. Se o listener está acessível, se o servidor aceitou o utilizador e se o Firebird negociou a cifragem de conexão são mecanismos separados com provas separadas. O túnel responde apenas à primeira, e apenas para as origens que permitiu.
Duas fronteiras que não se sobrepõem
A fronteira da VPN protege os pacotes entre um cliente e uma gateway. A cifragem de conexão do Firebird protege o protocolo da base de dados entre a biblioteca de cliente e o processo do servidor. Ambas podem estar presentes e nenhuma substitui a outra.
Se o túnel termina antes do anfitrião da base de dados, o tráfego além dele só fica protegido pelo que a sessão da base de dados negociou. É nessa lacuna que uma revisão costuma encontrar a surpresa. O diagrama do túnel termina numa gateway, e a ligação que transporta a sua consulta continua para além dela. Quem ler esse diagrama mais tarde herda a suposição.
Fronteira um: quem pode abrir o listener
Identifique o endereço real do servidor e a porta configurada, que é 3050 salvo se tiver sido alterada, e depois permita apenas as origens VPN aprovadas na firewall do anfitrião e da rede. Tenha em conta qualquer tradução de endereços na gateway VPN e dê ao anfitrião da base de dados uma rota de retorno para o conjunto de clientes se a gateway for separada.
Depois demonstre o negativo. Um caminho externo que deve ser negado tem de continuar negado, porque abrir o túnel não restringe o listener do Firebird por si só.
Fronteira dois: o que o Firebird negoceia
O Firebird 3 introduziu um quadro de cifragem de conexão com uma política de servidor que pode ser desativada, ativada ou exigida. A política define o mínimo. A sessão real continua a depender da biblioteca de cliente carregada pela aplicação e dos plugins suportados por ambos os lados.
Nas notas de versão do Firebird 3 o Arc4 está listado como o plugin de cifragem de conexão predefinido dessa versão. O Arc4 é uma predefinição histórica, não uma recomendação de cifra moderna, e não é a mesma coisa que a proteção VPN exterior.
A autenticação é uma terceira variável na mesma negociação. O servidor aceita um conjunto de plugins de autenticação, a biblioteca de cliente oferece um subconjunto e os dois têm de se sobrepor.
A armadilha Legacy_Auth
Suportar o Legacy_Auth exige relaxar a política predefinida de cifragem obrigatória do servidor. Esse é o custo de compatibilidade documentado, e é por isso que baixar a política para silenciar um erro de ligação é uma alteração de segurança e não uma correção.
Se um cliente falhar de repente após uma atualização do servidor, compare as listas de plugins antes de enfraquecer seja o que for. A falha é geralmente um desencontro de negociação, e a resposta é um plugin suportado dos dois lados.
Verifique a ligação que importa
Numa compilação que forneça a variável de contexto, esta consulta reporta o estado de cifragem da ligação atual:
SELECT RDB$GET_CONTEXT('SYSTEM', 'WIRE_ENCRYPTED')
FROM RDB$DATABASE;
Execute-a através da ligação própria da aplicação, não através de uma sessão de administrador no mesmo servidor. Uma ligação de administração cifrada não diz nada sobre a sessão de outra biblioteca de cliente, e uma compilação mais antiga que não suporta a variável não é prova de que a cifragem está desligada.
Registe em conjunto a versão da biblioteca de cliente, a compilação do servidor e o resultado, porque nenhum deles isolado é legível.
Permissões e o caminho de atualização
Restringir as origens e cifrar o transporte não substituem a autenticação nem as permissões de mínimo privilégio. Verifique as permissões do utilizador comum da base de dados sobre os objetos que ele realmente toca.
Por fim, trate uma implementação de longa duração como uma questão de manutenção. Um túnel não torna uma biblioteca de cliente obsoleta segura indefinidamente, e um caminho de atualização suportado é mais barato do que descobrir que o plugin de que precisa foi removido.