16.8. Conexões TCP/IP seguras por túneis SSH

Pode ser utilizado o SSH para criptografar a conexão de rede entre os clientes e o servidor PostgreSQL. Feito de forma apropriada, fornece uma conexão de rede adequadamente segura, mesmo para clientes sem capacidade de SSL.

Primeiro deve-se ter certeza que o servidor SSH está executando de forma apropriada na mesma máquina onde está o servidor PostgreSQL, e que é possível se conectar utilizando o ssh como algum usuário. Depois pode ser estabelecido, a partir da máquina cliente, um túnel seguro usando um comando como o mostrado abaixo:

ssh -L 3333:foo.com:5432 joel@foo.com

O primeiro número no argumento -L, 3333, é o número da porta do lado cliente do túnel; pode ser escolhido livremente. O segundo número, 5432, é o fim remoto do túnel: o número da porta que o servidor está utilizando. O nome, ou endereço de IP, entre os números das portas é o hospedeiro do servidor de banco de dados onde vai ser feita a conexão. Para que seja possível conectar com o servidor de banco de dados utilizando este túnel, deve ser feita a conexão com a porta 3333 na máquina cliente:

psql -h localhost -p 3333 template1

Para o servidor de banco de dados vai parecer como se fosse realmente o usuário joel@foo.com, e vai utilizar o procedimento de autenticação que estiver configurado para este usuário e hospedeiro. Deve ser observado que o servidor não vai supor que a conexão está criptografada por SSL, porque, na verdade, não está criptografada entre o servidor SSH e o servidor PostgreSQL. Isto não deve causar nenhum risco adicional à segurança, desde que estes dois servidores estejam na mesma máquina.

Para que a configuração do túnel seja bem-sucedida, deve ser permitida a conexão através do ssh como joel@foo.com, da mesma maneira como se tivesse tentado utilizar o ssh para estabelecer uma sessão de terminal.

Dica: Existem diversas outras aplicações que podem fornecer túneis seguros utilizando procedimentos conceitualmente semelhantes ao que foi descrito.

SourceForge.net Logo CSS válido!