Sshd

Un article de Wiki de la communauté Mandriva.

Jump to: navigation, search
SSHd fournit des connexions réseau cryptées et authentifiées.

Sommaire

[modifier] Objectifs / Historique

Ce document a pour but d’aider les débutants sous Linux à faire leur premiers pas dans la création d'un serveur SSH. Le monde du libre prenant de plus en plus d’ampleur, il devient presque impossible de ne pas avoir de contact avec.

SSH (pour Secure Shell) a été mis au point en 1995 par le finlandais Tatu Ylönen. Le protocole existe en version 1.0 et 2.0 et utilise le port 22 par défaut.

[modifier] Pré-requis

Afin de mener ce document à terme, vous devez avoir un environnement Linux fonctionnel. Tout au long de ces pages, la version utilisée est une Linux Mandriva 2008.1 Free avec un kernel 2.6.24.4 ce qui est la configuration actuelle par défaut.

[modifier] Définitions

Avec l’essor d’Internet les besoins d’administration à distance et de sécurité grandissent. SSH permet à un client de se connecter à une machine distance de manière sécurisée ceci afin de pouvoir exécuter des commandes diverses. Concrètement, il devient possible d’obtenir une console d’administration à distance. Le démon est à Linux ce que le Service est à Windows. Il s’agit donc d’un programme exécuté au démarrage du système d’exploitation sans nécessité d’avoir un utilisateur connecté sur ce même poste.

Le rôle du démon SSH est donc de pouvoir administrer une machine distante, généralement un serveur, n’importe où en ligne de commande.

[modifier] Installation

L’installation est assez rapide et je ne présenterai ici que la version en ligne de commande. passage en superutilisateur:

Image:Konsole.png
[utilisateur@ordi ~]$ su
Password: ***********

Mise à jour de vos paquets d'instalation:

Image:Konsole.png
[root@ordi ~]# urpmi.update –a

Installation du démon sshd:

Image:Konsole.png
[root@ordi ~]# urpmi sshd

[modifier] Configuration

[modifier] configuration de base

Le fichier de configuration est accessible à partir de la commande :

Image:Konsole.png
[root@ordi ~]# vi /etc/ssh/sshd_config


Les options sont peu nombreuses, vous pouvez vous reporter à la documentation en utilisant la commande man sshd.

La variable plus importante mais aussi une des dangereuse est PermitRootLogin. Elle permet une fois affectée à ‘yes’ d’utiliser les droits administrateur à distance. Cette solution permettant des attaques sur le compte administrateur en Brute ForceImage:Wikipedia-icon.png, il est conseillé de se connecter par un compte utilisateur et ensuite d’utiliser la commande su.

Astuce !
Si vous voulez modifier le fichier avec vi, utilisez les flèches puis appuyez sur ‘i’ afin de passer en mode Insertion. Remplacez le ‘no’ par ‘yes’.et appuyez sur la touche Escape pour sortir du mode d’insertion. Enregistrez en tapant : ‘:w’ Quittez en tapant : ‘:quit !’ Ou bien pour les fainéants ‘Enregistrer et Quittez’ en tapant : ‘:wq’

Relancez le démon afin de prendre en compte les modifications:

Image:Konsole.png
[root@ordi ~]# /etc/init.d/sshd restart

Une autre alternative permet de relancer le démon sans perdre la connexion ce qui est très utile lorsque l’on est à distance.

Image:Konsole.png
[root@ordi ~]# /etc/init.d/sshd reload

[modifier] Configuration avancée

Le port d’écoute par défaut est le 22 mais il peut être intéressant de le modifier afin de gagner un peu de discrétion.

Image:Konsole.png
[root@ordi ~]# vi /etc/services

Il suffit de chercher et modifier la ligne ssh 22/udp et ssh 22/tcp.

Une autre alternative consiste à passer par le fichier /etc/ssh/sshd_config
Ce dernier, via la ligne Port, permet de spécifier le port d’écoute. Il est possible de dupliquer cette ligne afin de spécifier plusieurs ports d’écoute afin de contourner certains paramètres de firewall. Attention certains ports sont normalisés et donc réservés, choisissez les donc avec précaution (cf. port_logicielImage:Wikipedia-icon.png ).

[modifier] Paramétrage du pare-feux (Shorewall)

[modifier] Mode graphique

Selon votre installation de Mandriva, il se peut que le pare-feu soit configuré de manière incorrecte. Sa configuration s’effectue par le Menu principal via l’arborescence :
MENU -> OUTILS -> OUTILS SYSTEME -> CONFIGURER VOTRE ORDINATEUR
Les copies d’écran ci-dessous vous indiquent la procédure à suivre pour effectuer le paramétrage correctement. Vous devez être administrateur pour accéder à cette partie.


Selon vos besoins les paramétrages suivants peuvent être différents. Dans notre cas, nous avons réduit au strict nécessaire de ce tutorial et aux besoins de tests. En effet, l’acceptation du ping est là uniquement pour vérifier que la machine fonctionne bien et ne doit en aucun cas être accessible en dehors de réseau local (LAN) pour des raisons de sécurité.


Le choix suivant est encore plus personnel et dépend de votre envie de voir des popups s’afficher ou non.


Dernière étape de configuration, le choix de l’interface réseau pour laquelle les règles de pare-feu seront appliquées Dans notre cas, la machine virtuelle ne possède qu’une seule interface Ethernet.


[modifier] Mode texte

Le firewall de Mandriva étant Shorewall, on accède à ses fichiers de configuration à partir de cet emplacement :

Image:Konsole.png
[root@ordi ~]# cd /etc/shorewall

Le fichier contenant les règles de filtrage est rules.drakx. A partir des éléments précisés plus haut, on doit donc avoir 2 lignes

ACCEPT net fw tcp 22 - 
ACCEPT net fw icmp 8 - 

Ce qui correspond respectivement au port SSH et ICMP (Ping). D’autres fichiers sont modifiés afin de refléter les paramètres annexes (interface réseau…) parmi lesquels on peut citer :

  • interfaces
  • masq
  • policy
  • shorewall.conf
  • zones

Allez consulter la documentation sur le wiki de Shorewall pour de plus amples informations.

[modifier] Sécurité

Il faut garder à l’esprit qu’un accès distant est la porte ouverte à tout. L’intégrité de votre machine et peut-être de votre réseau dépend donc des choix que vous ferez. Le choix de votre mot de passe administrateur est important si vous autorisez la connexion directement. En partant du principe qu’un ordinateur peut tester 100 000 combinaisons par secondes, si l’on considère l’alphabet [a-z] + [A-Z] + [0-9] sur 6 emplacements, il faudra :

T = (26+26+10)6 / 100 000 = 568 002s soit un peu moins de 160h.

Long mais pas infaisable surtout si l’on considère que 95% des gens prennent un mot du dictionnaire, que dans 99% des cas, le mot de passe ne commence jamais par une voyelle et que généralement, il s’agit toujours de syllabes prononçables. Le fichier /etc/ssh/sshd_config à travers la variable Protocol, permet de spécifier la version de SSH qui sera utilisée. Pour SSH 1 & 2, il faut spécifier :

Protocol 2,1

SSH1 contenant des bugs il est conseillé de n’utiliser que SSH2 :

Protocol 2

[modifier] Tests

Afin de connaitre l’adresse IP sur votre réseau local de votre machine Linux, tapez la commande.

Image:Konsole.png
[root@ordi ~]# ifconfig

Maintenant que vos système est prêt, vous allez pouvoir le tester à partir d’un environnement Windows avec le logiciel Putty. Généralement l’IP voulue est sur la ligne suivant celle identifiée par eth0. Ensuite il suffit de taper cette adresse sous Putty comme dans l’exemple suivant dans le champ Host Name et valider le bouton Open :

Il devrait vous ouvrir une console avec le login puis le mot de passe afin de vous identifier sur la machine Linux. Putty doit vous afficher une boîte de dialogue d’avertissement à laquelle vous devez prêter la plus grande attention.

En effet, une attaque de type Man-In-The-Middle peut permettre à un attaquant de se faire passer pour la machine distante et donc récupérer le flux de communication entre vos deux ordinateurs. Il faut donc prendre soin de vérifier la clé RSA2 fournit. Si vous réinstallez votre Linux avec SSH, ce dernier va générer une nouvelle paire de clés et Putty vous affichera donc le message d’avertissement sur ce changement.

Une fois la connexion établie, vous devez donc entre un paire d’identifiants (utilisateur / mot de passe). Un compte utilisant un mot de passe vide sera refusé par sécurité.

Si l’authentification échoue il affiche le message d’erreur ‘Access Denied’. Sinon vous devriez obtenir un résultat similaire (pour peu que l’IP de votre machine soit 192.168.1.77 et que le compte utilisateur soit ‘nolme’.

Lorsque vous avez fini de travailler à distance, tapez la commande exit pour vous déconnecter proprement.

[modifier] Annexes

[modifier] SSH

[modifier] Shorewall

[modifier] Divers

http://www.linux-france.org/prj/inetdoc/securite/tutoriel/tutoriel.securite.attaquesreseau.mitm.html

[modifier] Remerciements

Ce document est écrit Vincent DUVERNET grâce à l’aide des membres du forum de Mandriva (http://forum.mandriva.com) et plus spécialement Christophe_deR qui a suivit l’évolution de ce document ainsi qu’à Nicolas Ruff pour ses conseils avisés en sécurité. Ce document est wikisé par FuReX 6 mai 2008 à 15:22 (CEST)

Source: http://www.nolme.com/datas/tutorial/linux/Installation_&_configuration_demon_SSH.pdf

Récupérée de « http://wiki.mandriva.com/fr/Sshd »