Sélectionner une page

Il existe deux principaux types de connexions à distance sécurisées pour la maintenance d’un ordinateur :

  • SSH
  • SNMP dans un canal chiffré.

SSH – Précautions d’usage

Le serveur SSH est inclus dans un paquetage appelé openssh-server ou ssh-server, qu’il vous suffit d’installer, en fonction de votre distribution. Vous devrez établir une redirection de port TCP 22 afin d’accéder à votre serveur depuis Internet.

Il est parfois suggéré de modifier le port d’écoute du serveur SSH (le cas échéant, au niveau du routeur en cas de NAT, directement sur le serveur sinon). En effet, le port TCP 22 est fréquemment visé par les pirates informatiques. Ces attaques ne sont pas particulièrement nuisibles si vous utilisez un mot de passe fort, et peuvent être défendues à l’aide de logiciels comme fail2ban.

C’est également une bonne idée d’interdire les connexions directes à la racine (option de configuration PermitRootLogin) car cela permet à un attaquant d’accéder uniquement au mot de passe. Vous devez également savoir qu’OpenSSH fournit une méthode d’identification par clé publique qui est considérablement plus sûre que les mots de passe.

Avez-vous vérifié vos DNS SSHFP ?

Lorsqu’un client SSH établit une relation de confiance avec un serveur SSH, l’empreinte publique du serveur est vérifiée lors de l’établissement de la connexion. Afin de la comparer avec celle donnée par l’invite de commande du côté client, il faut calculer cette empreinte sur le serveur (avec l’option -r de ssh-keygen) et ensuite vérifier si elles sont identiques.

Il est possible que le client SSH ne dispose pas de l’empreinte digitale publique du serveur. La solution est de publier ces données dans le DNS avec un type d’enregistrement spécifique : SSHFP. Pour ce faire, vous devez générer cet enregistrement DNS sur le serveur (ssh-keygen -r hostname) puis l’ajouter à votre zone DNS.

Si les empreintes sont identiques, le fichier ~/.ssh/known_hosts du client est mis à jour avec l’identité de l’hôte de destination, ou il n’aura plus à se soucier de confirmer que le serveur est bien celui qu’il prétend être, sauf si la clé de ce dernier est réinitialisée pour une raison ou une autre. Si cette vérification n’est pas effectuée sérieusement, les attaques de type « man in the middle » peuvent réussir.

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 alternative qui est choisie ; dans cet exemple, le consommateur n’a aucun contrôle et risque de tomber dans l’un des travers précédents.

Heureusement, il existe une méthode pour faciliter la vérification des clés : le protocole DNS permet d’inclure les empreintes digitales publiques des serveurs distants dans leurs enregistrements SSHFP. L’option VerifyHostKeyDNS=yes du client SSH demandera au résolveur DNS local une empreinte digitale qui pourra être utilisée pour authentifier celle fournie par le serveur SSH.

Les étapes d’un marathon peuvent être déterminées comme suit :

# 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.

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 :

gene@autoheber:~$ ssh -o VerifyHostKeyDNS=yes gene@machine.example.com -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)?

SNMP dans un canal crypté – Précautions d’emploi

Le protocole SNMP (Simple Network Management Protocol) est un protocole réseau permettant de surveiller les périphériques connectés au réseau, tels que les routeurs, les commutateurs, les serveurs et les imprimantes. SNMP est utilisé pour surveiller les performances, la disponibilité et d’autres paramètres de ces périphériques.

Ici c’est la solution lourde qui permet d’utiliser des outils graphiques. Mais dans tout les cas il faut sécuriser l’accès SNMP par un canal de chiffrement authentifié… comme un canal SSH. Cela reste une solution lourde dédiée aux outils graphiques.