El cifrado de conexión de Firebird 3 y la VPN son dos fronteras
Una VPN que funciona no dice nada sobre quién puede abrir el listener de Firebird ni sobre lo que negoció el cliente. Compruebe por separado la accesibilidad, la autenticación y el cifrado de conexión.
La VPN conecta, el cliente abre una sesión y todos asumen que la conexión a la base de datos está protegida. Acaban de mezclarse tres cosas distintas. Si el listener es accesible, si el servidor aceptó al usuario y si Firebird negoció el cifrado de conexión son mecanismos separados con pruebas separadas. El túnel responde solo a la primera, y solo para las fuentes que usted permitió.
Dos fronteras que no se solapan
La frontera de la VPN protege los paquetes entre un cliente y una pasarela. El cifrado de conexión de Firebird protege el protocolo de base de datos entre la biblioteca de cliente y el proceso del servidor. Ambos pueden estar presentes y ninguno sustituye al otro.
Si el túnel termina antes del host de la base de datos, el tráfico más allá solo queda protegido por lo que haya negociado la sesión de base de datos. Es en ese hueco donde una revisión suele encontrar la sorpresa. El diagrama del túnel termina en una pasarela, y la conexión que lleva su consulta continúa más allá. Cualquiera que lea ese diagrama después hereda la suposición.
Frontera uno: quién puede abrir el listener
Identifique la dirección real del servidor y el puerto configurado, que es 3050 salvo que se haya cambiado, y luego permita solo las fuentes VPN aprobadas en los cortafuegos del host y de la red. Tenga en cuenta cualquier traducción de direcciones en la pasarela VPN y dé al host de la base de datos una ruta de retorno al conjunto de clientes si la pasarela está separada.
Luego demuestre lo negativo. Una ruta externa que debería denegarse debe seguir denegada, porque abrir el túnel no restringe por sí solo el listener de Firebird.
Frontera dos: qué negocia Firebird
Firebird 3 introdujo un marco de cifrado de conexión con una política de servidor que puede desactivarse, activarse o exigirse. La política fija el mínimo. La sesión real sigue dependiendo de la biblioteca de cliente que carga la aplicación y de los complementos que admiten ambas partes.
En las notas de la versión de Firebird 3 Arc4 figura como complemento de cifrado de conexión predeterminado de esa versión. Arc4 es un valor predeterminado histórico, no una recomendación de cifrado moderno, y no es lo mismo que la protección VPN externa.
La autenticación es una tercera variable en la misma negociación. El servidor acepta un conjunto de complementos de autenticación, la biblioteca de cliente ofrece un subconjunto y ambos tienen que solaparse.
La trampa de Legacy_Auth
Admitir Legacy_Auth exige relajar la política predeterminada de cifrado obligatorio del servidor. Ese es el coste de compatibilidad documentado, y por eso bajar la política para silenciar un error de conexión es un cambio de seguridad y no una corrección.
Si un cliente falla de repente tras actualizar el servidor, compare las listas de complementos antes de debilitar nada. El fallo suele ser un desajuste de negociación, y la respuesta es un complemento admitido en ambos lados.
Compruebe la conexión que importa
En una compilación que proporcione la variable de contexto, esta consulta informa del estado de cifrado de la conexión actual:
SELECT RDB$GET_CONTEXT('SYSTEM', 'WIRE_ENCRYPTED')
FROM RDB$DATABASE;
Ejecútela a través de la conexión propia de la aplicación, no de una sesión de administrador en el mismo servidor. Una conexión de administración cifrada no dice nada sobre la sesión de otra biblioteca de cliente, y una compilación más antigua que no admite la variable no es prueba de que el cifrado esté desactivado.
Anote juntos la versión de la biblioteca de cliente, la compilación del servidor y el resultado, porque ninguno de ellos por separado es legible.
Permisos y la ruta de actualización
Restringir las fuentes y cifrar el transporte no sustituyen la autenticación ni los permisos de mínimo privilegio. Compruebe los permisos del usuario normal de la base de datos sobre los objetos que realmente toca.
Por último, trate un despliegue de larga vida como una cuestión de mantenimiento. Un túnel no hace segura indefinidamente una biblioteca de cliente obsoleta, y una ruta de actualización admitida es más barata que descubrir que el complemento que necesita se ha eliminado.