Base de datos Postrage Conexión TCP / IP segura SQL mediante túnel SSH

18.10. Conexión TCP / IP segura mediante túnel SSH

Puede utilizar SSH para cifrar la conexión de red entre el cliente y el servidor PostgreSQL. Si se maneja correctamente, esto proporcionará una conexión de red suficientemente segura, incluso para aquellos clientes que no son compatibles con SSL.

Primero, asegúrese de que un servidor SSH se esté ejecutando correctamente en la misma máquina que el servidor PostgreSQL, y puede usar ssh para iniciar sesión como usuario. Luego, puede usar los siguientes comandos desde la máquina cliente para establecer un túnel seguro:

ssh -L 63333:localhost:5432 [email protected]

El primer número en el parámetro -L (63333) es el número de puerto en su extremo del túnel. Puede ser cualquier puerto no utilizado (IANA reserva los puertos 49152 a 65535 para uso personal). El segundo número (5432) es el extremo más alejado del túnel: el número de puerto utilizado por su servidor. El nombre o la dirección IP entre los números de puerto es el host del servidor de la base de datos al que se va a conectar. En cuanto al host desde el que está iniciando sesión, en este ejemplo está representado por foo.com. Para utilizar este túnel para conectarse al servidor de la base de datos, debe conectarse al puerto de su máquina local.

63333:psql -h localhost -p 63333 postgres

Para el servidor de la base de datos, en este entorno lo tratará como el usuario real joe en el host foo.com conectado a localhost, y utilizará el proceso de autenticación configurado para la conexión de este usuario y el host. Tenga en cuenta que el servidor no considerará que la conexión esté cifrada con SSL, porque no hay cifrado entre el servidor SSH y el servidor PostgreSQL. Siempre que estén en la misma máquina, esto no supondrá ningún riesgo de seguridad adicional.

Para que la configuración del túnel tenga éxito, debe permitir la conexión a través de ssh como [email protected], tal como ha intentado utilizar ssh para crear una sesión de terminal.

También debería haber configurado el reenvío de puertos:

ssh -L 63333:foo.com:5432 [email protected]

Pero el servidor de la base de datos verá la conexión procedente de su interfaz foo.com, que no está listen_addresses = 'localhost'abierta de forma predeterminada . Por lo general, esto no es lo que desea.

Si tiene que "saltar" al servidor de la base de datos a través de un host de inicio de sesión, una posible configuración se ve así:

ssh -L 63333:db.foo.com:5432 [email protected]

Tenga en cuenta que este método de conexión desde shell.foo.com a db.foo.com no será cifrado por el túnel SSH. Cuando la red está restringida a varios métodos, SSH ofrece bastantes posibilidades de configuración. Para obtener más información, consulte la documentación de SSH.

Algunas otras aplicaciones pueden proporcionar túneles seguros, que utilizan un proceso conceptualmente similar al SSH que se acaba de describir.

18.11. Registrar registro de eventos en Windows

Para registrar una biblioteca de registro de eventos de Windows para el sistema operativo, ejecute este comando:

regsvr32 pgsql_library_directory/pgevent.dll

Esto crea una clave de registro utilizada por el visor de eventos y la fuente de eventos predeterminada se llama PostgreSQL. Para especificar un nombre de fuente de evento diferente (consulte event_source). Utilice las opciones
/ ny / i: regsvr32 / n / i: event_source_name pgsql_library_directory / pgevent.dll

在这里插入代码片

Para anular el registro de la biblioteca de registro de eventos del sistema operativo, ejecute este comando:

regsvr32 /u [/i:event_source_name] pgsql_library_directory/pgevent.dll

Para habilitar el registro de eventos en el servidor de la base de datos, modifique log_destination en postgresql.conf para incluir eventlog.

Supongo que te gusta

Origin blog.csdn.net/weixin_42528266/article/details/108500934
Recomendado
Clasificación