16.8. Connexions tcp/ip sécurisées avec des tunnels ssh tunnels
Vous pouvez utiliser ssh pour
crypter la connexion réseau entre les clients et un serveur
PostgreSQL™. réalisé
correctement, ceci fournit une connexion réseau sécurisée, y compris
pour les clients non SSL.
Tout d'abord, assurez-vous qu'un serveur ssh est en cours d'exécution sur la même machine
que le serveur PostgreSQL™ et
que vous pouvez vous connecter via
ssh
en tant qu'un utilisateur
quelconque. ensuite, vous pouvez établir un tunnel sécurisé avec une
commande comme ceci sur la machine cliente :
ssh -L 3333:foo.com:5432 joe@foo.com
Le premier numéro de l'argument -l, 3333, est
le numéro de port de votre bout du tunnel ; il peut être choisi
librement. Le second numéro, 5432, est le bout distant du tunnel : le
numéro de port que votre serveur utilise. Le nom ou l'adresse entre
les numéros de port est l'hôte disposant du serveur de bases de
données auquel vous souhaitez vous connecter. Pour cela, vous vous
connectez au port 3333 de votre machine locale :
psql -h localhost -p 3333 postgres
Sur le serveur de bases de données, il semblera que vous êtes
réellement l'utilisateur joe@foo.com et il
utilisera la procédure d'authentification adéquate pour cet
utilisateur. Pour que la configuration du serveur réussisse, vous
devez être autorisé à vous connecter via
ssh
en tant que joe@foo.com, comme si vous essayez d'utiliser
ssh
pour configurer une
session terminal.
Astuce
Plusieurs autres applications existantes peuvent fournir des
tunnels sécurisés en utilisant une procédure similaire dans le
concept à celle que nous venons de décrire.