PPE 4 INSTALLATION & SECURISATION D UN SERVEUR SSH SOUS DEBIAN 7 (WHEEZY) Antoine CAMBIEN BTS SIO Option SISR Session 2015
BTS SIO Services Informatiques aux Organisations Session 2014 2015 Nom du candidat : Antoine CAMBIEN Projet Personnalisé Encadré N 4 Activité : Installation & sécurisation d un serveur SSH sous Debian 7 (Wheezy) Contexte : Nous avons besoin de prendre la main à distance sur un serveur Debian. Nous allons donc voir la mise en place d un serveur SSH. Objectifs : Nous avons besoin d un serveur Debian sans serveur SSH installé, une configuration réseau fonctionnelle, et un accès administrateur à la machine. Nous aurons donc besoin d un accès physique au serveur ou bien un switch KVM (commutateur qui permet de partager clavier, écran et souris entre plusieurs ordinateurs). Solutions envisageables : 1) Installation du logiciel OpenSSH-Server grâce à l installateur de paquet. 2) Prise en main à distance via un vkvm (Virtual KVM) Description de la solution retenue : Installation du logiciel OpenSSH-Server grâce à l installateur de paquet. Conditions initiales : Serveur Debian avec aucun accès de prise à distance. Conditions finales : Serveur Debian accessible à distance via le protocole SSH. Outils utilisés : Putty/Terminal et un serveur fonctionnant sous Debian. Conditions de réalisations : Logiciels : Posséder Putty ou un terminal avec un client SSH. Durée de réalisation : 15 minutes environ : Installation de OpenSSH-Server 43
COMPETENCES MISE EN OEUVRE POUR CETTE ACTIVITE PROFESSIONNELLE Productions relatives à la mise en place d un dispositif de veille technologique et à l étude d une technologie, d un composant, d un outil ou d une méthode - Participation à un projet d évolution d un SI (solution applicative et d infrastructure portant prioritairement sur le domaine de spécialité du candidat) - Elaboration de documents relatifs à la production et à la fourniture de services - A1.2.1, Élaboration et présentation d'un dossier de choix de solution technique - A1.2.4, Détermination des tests nécessaires à la validation d'un service - A3.3.1, Administration sur site ou à distance des éléments d'un réseau, de serveurs, - A4.1.9, Rédaction d'une documentation technique 44
Architecture de l adressage des ports SSH Nous allons posséder plusieurs serveurs avec chacun leur serveur SSH. Par sécurité nous allons leur adresser à chacun un port différent et en relation avec leur réseau. Pour cela notre port SSH (22 par défaut) va se composer ainsi : 1xy22. Par exemple une machine sur le réseau LAN (10.0.0.0/24) avec pour adresse IP 10.0.0.5 : X vaudra son 2 e octet de son adresse réseau, soit ici 0. Y vaudra son dernier octet de son adresse réseau, soit ici 5. Ce qui donne pour cette machine, un port SSH 10522. Déroulement de l activité Nous prenons la main sur notre serveur grâce au prompt (invite de commande). Nous allons commencer par mettre la liste des paquets à jour. Nous devons être connectés en tant que root. (Root = SuperUtilisateur de Debian, qui à tous les droits) Nous écrivons la requête suivante «apt-get install openssh-server» Une fois cette commande validé, voici ce qui s affiche à l écran. Certaines choses peuvent plus ou moins changer en fonction de votre système. Nous validons l installation en tapant sur «Entrée». Les différents paquets nécessaires sont en train de s installer. L installation se finit par une validation du serveur SSH. 45
Notre serveur SSH est maintenant installé mais non configuré. Pour cela nous allons modifier son fichier de configuration afin de mieux sécuriser notre serveur. En effet, mettre son serveur à disposition du réseau peut-être dangereux. Une personne malveillante pourrait en prendre le contrôle et compromettre ses données. Par défaut, les fichiers de configurations dans linux se trouvent dans le dossier /etc/, c est donc ici que nous allons trouver les fichiers de configurations pour notre serveur SSH. Nous allons donc modifier le fichier /etc/ssh/sshd_config grâce à l éditeur de texte «nano». Au début du fichier, nous voyons : C est le port d écoute par défaut de OpenSSH, ce port doit être modifié pour éviter que des personnes malveillantes sachent qu un serveur SSH est installé. De plus étant donné que le port 22 est officiellement réservé par le protocole SSH, des personnes scannent des plages d IPS pour les détecter. Nous allons donc mettre : Port 9922 Un peu plus bas dans le fichier, nous pouvons voir ces lignes : Ici l avant dernière lignes nous intéresse. «PermitRootLogin yes» est une très mauvaise idée. Si une personne connait le mot de passe root, alors il pourra se connecter à distance avec cet identifiant. Par défaut, nous préférerons désactiver cette option. Il est préférable de se connecter d abord en simple utilisateur, puis si nécessaire d élever nos autorisations ponctuellement. Nous modifierons donc cela par «PermitRootLogin No» 46
Nous renforcerons encore la sécurité en ne permettant la connexion qu à des utilisateurs prédéfinis. «AllowUsers nosti» Nous pouvons pousser la sécurisation en installant «fail2ban», Fail2Ban est un logiciel libre permettant d'analyser des fichiers de logs et de déclencher des actions si certaines choses suspectes sont détectées. Pour cela nous allons taper dans le prompt : «apt-get install fail2ban». Une fois fail2ban installé, nous allons dans son fichier de configuration : «nano /etc/fail2ban/jail.conf». Allons dans la partie SSH Nous avons de base écrit, les 5 premières lignes. Nous allons rajouter ces 2 dernières lignes que nous voyons. Enabled = true Signifie que la protection SSH sera activé. Port = 11822 Signifie le port d écoute de notre serveur SSH Filter = sshd Signifie les mots clés d analyse dans notre fichier de log /var/log/auth.log (fichier de logs pour les authentification diverses sur notre serveur Debian) logpath = /var/log/auth.log Renseigne notre fichier de logs à analyser maxretry = 3 Indique le nombre de tentative avant l action à exécuter action = iptables[name=ssh, port=11822, protocol=tcp] Nous renseignons le port et le protocole de la règle de pare-feu à établir. bantime = 600 Le temps que l IP sera bannie, dans notre cas 10 minutes. Redémarrons notre service grâce à la commande «service sshd restart». 47
Effectuons un test, en essayant de nous connecter à notre serveur une première fois, puis de retenter la connexion en indiquant 4 mauvais mots de passe. Pour cela, nous allons utiliser Putty, un terminal simple et léger! Cliquons sur «Open» afin d initialiser la connexion. Nous nous sommes bien connecté à notre serveur SSH! Maintenant testons de nous connecter en tapant 4 mauvais mot de passe. Attendons 10 minutes et regardons les logs à l emplacement suivant (cat permet de lire un fichier) : «cat /var/log/fail2ban.log» Conclusion Nous avons pu voir comment installer et paramétrer un serveur SSH sous Debian, et comment le sécuriser très rapidement contre les attaques de robots. Nous pouvons dorénavant administrer notre serveur depuis n importe quel endroit grâce à une connexion internet! 48