Next: DNS et résolution de
Up: TCP et UDP.
Previous: Le fichier /etc/services.
Table des matières
Le flux de données TCP peut être aisément reconstruit par toute personne
qui écoute sur le support physique (le câble, par exemple) et qui
arrive à visualiser votre trafic réseau. En fait, TCP est connu pour
être un service peu sûr en soi. Le but est donc de chiffrer (ou crypter)
les données de manière à ce que tout message capté par un tiers soit
illisible. Quelles doivent être les propriétés d'un flux chiffré?
- Il devrait garantir que le client se connectant effectue vraiment
cette opération sur le serveur en question. En d'autres termes, il
devrait authentifier le serveur pour assurer que ce dernier n'est
pas un cheval de Troie (ou Trojan, en anglais).
- Il devrait éviter que des parties des données soient lisibles par
un pirate. Toutes données lues par une tierce personne devraient apparaître
sous forme chiffrée.
- Il devrait être impossible pour quelqu'un qui a capté le message de
modifier le trafic des données sans se faire repérer.
Deux paquets permettent de rencontrer aisément ces objectifs. Supposons
que nous voulions utiliser POP3 (Post Office Protocol permet
à la station de travail d'un utilisateur d'accéder au courrier depuis
un serveur de courrier) pour rechercher du courriel provenant d'une
autre machine. Premièrement, nous pouvons vérifier que POP3 est en
cours d'exécution en se connectant au serveur POP3 lui-même. Lancez
un telnet sur le port 110 (qui est le service
POP3):
telnet localhost 110
Connected to localhost.localdomain.
Escape character is '^]'
+OK POP3 localhost.localdomain v7.64
server ready
QUIT
+OK Sayonara
connexion closed by foreign host
|
Pour rencontrer la première contrainte, nous allons utiliser le paquet
OpenSSH. Nous pouvons initialiser et exécuter le démon sshd
(Secure Shell daemon) s'il ne l'est pas déjà. Les commandes
suivantes peuvent être appliquées au serveur POP3:
ssh-keygen -b 1024 -f /etc/ssh/ssh_host_key
-q -N ''
ssh-keygen -d -f /etc/ssh/ssh_host_dsa_key
-q -N ''
sshd
|
Pour créer un canal chiffré comme indiqué à la figure 10,
nous utiliserons le programme de connexion client ssh
d'une manière un peu spéciale. Nous souhaitons le faire écouter sur
un port TCP particulier et ensuite, crypter puis rediriger tout le
trafic vers le port TCP distant du serveur.
Figure 10:
Redirection entre deux
machines.
|
Cette technique est connue sous le nom de redirection de port
chiffré (encrypted port forwarding). Sur la machine cliente,
nous sélectionnons un port quelconque mais inutilisé. Dans le cas
présent, il s'agit de 12345:
ssh -C -c arcfour -N -n -2 -L 12345:<pop3-server.doma.in>:110 \
<pop3-server.doma.in>
-l <user> -v |
où <user> est le nom d'un compte shell
courant sur le serveur POP3. Finalement, toujours sur la machine cliente,
nous effectuons:
telnet localhost 12345
Connected to localhost.localdomain
Escape character is '^]'
+OK POP3 localhost.localdomain v7.64
server ready
QUIT
+OK Sayonara
connexion closed by foreign host
|
Nous obtenons un résultat identique à celui qui précède. En effet,
en ce qui concerne le serveur, la connexion POP3 provient d'un client
sur la machine serveur elle-même (qui ne sait pas que cette connexion
a pour origine sshd) qui est en train d'effectuer
une redirection à partit d'un client ssh.
L'option -C compresse toutes les données
(ce qui est utile dans le cas des connexions à bas débit). Notez également
qu'en général, vous ne devriez utiliser aucun chiffrement avec arcfour
et le protocole SSH 2 (option -2).
La seconde méthode repose sur le programme forward
du paquet mirrordir. Ce programme possède
un protocole de chiffrement unique qui agit similairement à OpenSSH bien
qu'il n'ait pas été testé de manière approfondie par la communauté
(il ne devrait donc être utilisé qu'avec précaution). Sur une machine
agissant comme serveur, tapez simplement secure-mcserv.
Sur la machine cliente:
forward <user>@<pop3-server.doma.in>
<pop3-server.dom.in>:110 \
12345
-secure -z -K 1024
|
et ensuite lancez telnet pour effectuer
un test comme précédemment.
Avec la redirection, vous pouvez utiliser tout client POP3 comme vous
le feriez normalement. Cependant, veillez à attribuer localhost
à votre machine hôte et 12345 comme adresse
de port pour votre client POP3.
Cet exemple peut, naturellement, être transposé à presque tous les
services. Avec certains de ceux-ci qui effectuent des opérations spéciales
comme la création de connexion de retour TCP sur un client (c'est
le cas avec FTP, par exemple), cela ne fonctionnera pas.
Next: DNS et résolution de
Up: TCP et UDP.
Previous: Le fichier /etc/services.
Table des matières
1-01-2006