Outils pour utilisateurs

Outils du site


services:accès_à_distance

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
services:accès_à_distance [Thu Sep 3 10:15:03 2009]
elessar précisions et correction du style
services:accès_à_distance [Tue Jan 10 23:11:27 2012] (Version actuelle)
exca Tipiak ^^
Ligne 8: Ligne 8:
  
 ===== SSH ===== ===== SSH =====
 +
 +==== Précautions d'​usage ====
  
 Selon votre distribution,​ le serveur SSH est fourni dans un paquet nommé ''​ssh-server''​ ou ''​openssh-server'',​ qu'il vous suffit d'​installer. Pour pouvoir accéder à votre serveur depuis l'​Internet,​ vous devrez définir une [[réseau:​routeur:​redirections de port|redirection de port]] pour le TCP 22. Selon votre distribution,​ le serveur SSH est fourni dans un paquet nommé ''​ssh-server''​ ou ''​openssh-server'',​ qu'il vous suffit d'​installer. Pour pouvoir accéder à votre serveur depuis l'​Internet,​ vous devrez définir une [[réseau:​routeur:​redirections de port|redirection de port]] pour le TCP 22.
Ligne 14: Ligne 16:
  
 On recommande également d'​interdire à ''​root''​ de se connecter directement (option de configuration ''​PermitRootLogin''​) :​ en effet, un tel nom d'​utilisateur générique permet à un attaquant de n'​avoir à deviner que le mot de passe. Sachez également que OpenSSH propose un mécanisme d'​identification par clef publique, bien plus résistante que les mots de passe. On recommande également d'​interdire à ''​root''​ de se connecter directement (option de configuration ''​PermitRootLogin''​) :​ en effet, un tel nom d'​utilisateur générique permet à un attaquant de n'​avoir à deviner que le mot de passe. Sachez également que OpenSSH propose un mécanisme d'​identification par clef publique, bien plus résistante que les mots de passe.
 +
 +==== Aparté concernant les enregistrements DNS SSHFP ====
 +
 +La relation de confiance établie entre un client et un serveur SSH repose sur la vérification de l'​empreinte publique du serveur, exposée par ce dernier lorsqu'​une demande de connexion SSH survient. Normalement,​ il faudrait prendre le temps de calculer cette empreinte sur le serveur (avec l'​option -r de la commande ssh-keygen) afin de la comparer avec celle qui est proposée par l'​invite de commande, côté client. Si tout va bien et que l'​utilisateur valide, l'​hôte de destination est inscrit dans le fichier ~/​.ssh/​known_hosts du client qui n'aura plus à se soucier de contrôler l'​identité du serveur sauf si ce dernier réinitialise sa clef pour une raison ou pour une autre. Si cette vérification n'est pas faite avec sérieux, des attaques du type "man in the middle"​ pourront fonctionner et permettre à un pirate de récupérer l'​accès au serveur.
 +
 +En cas de doutes plusieurs moyens sont bons pour vérifier facilement l'​identité du serveur :
 +
 +    * Appeler l'​administrateur du serveur SSH et lui demander l'​empreinte ;
 +    * Lui demander cette empreinte par e-mail ;
 +    * Valider la comparaison sans se soucier de ces bêtises de Geek...
 +
 +Malheureusement,​ c'est souvent la dernière solution qui est retenue ; dans ce cas, aucun contrôle n'est effectué par le client qui risque alors de tomber dans les travers énoncés plus tôt. Heureusement,​ il existe un mécanisme pour faciliter la vérification de la clef : le protocole DNS permet d'​exposer les empreintes publiques du serveur dans ses enregistrements SSHFP. De son côté, l'​option VerifyHostKeyDNS=yes du client SSH demandera au "​resolver DNS" local l'​empreinte de clef correspondante pour vérifier celle retournée par le serveur SSH.
 +
 +Les empreintes peuvent être calculées de la façon suivante :
 +
 +<​code>​
 +# ssh-keygen -r machine
 +machine IN SSHFP 1 1 26s7o07k725r27o2s166567s09np3620q9s95442
 +machine IN SSHFP 2 1 1rs02s9k838r68sr13nn9qp6s6r16q6930p4nsnp
 +
 +"​machine"​ représente dans cet exemple le nom de l'​hôte qui autorise un accès SSH et pour lequel un enregistrement de type A existe aussi.
 +</​code>​
 +
 +Il reste à les ajouter à la zone DNS adaptée pour obtenir ce résultat lors de
 +la première connexion d'un client au serveur :
 +
 +<​code>​
 +    tintin@moulinsart:​~$ ssh -o VerifyHostKeyDNS=yes phil@machine.example.org -p 443
 +    The authenticity of host '​[machine.example.org]:​443 ([77.23.45.67]:​22)'​ can't be established.
 +    RSA key fingerprint is 64:​64:​67:​38:​14:​99:​0d:​b9:​53:​b7:​bd:​9e:​87:​64:​e1:​f4.
 +--> Matching host key fingerprint found in DNS.
 +    Are you sure you want to continue connecting (yes/no)?
 +</​code>​
  
 ===== SNMP ===== ===== SNMP =====
services/accès_à_distance.1251965703.txt.gz · Dernière modification: Thu Sep 3 10:15:03 2009 par elessar