Documentação do PostgreSQL 8.0.0 | ||||
---|---|---|---|---|
Anterior | Início | Capítulo 16. Ambiente do servidor em tempo de execução | Fim | Próxima |
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.