Avant de voir comment contrôler la Raspberry Pi avec SSH, voyons exactement ce qu’est SSH.
SSH (pour Secure SHell) désigne à la fois un logiciel et un protocole de communication informatiques.
Ce protocole possède par ailleurs la particularité d’être entièrement chiffré.
Cela signifie donc que toutes les commandes que vous exécuterez via SSH seront totalement secrètes !
Aujourd’hui, SSH est principalement utilisé à travers l’implémentation libre OpenSSH qui est présente dans la plupart des distributions Linux.
De façon générale, SSH permet de se connecter à distance sur une machine en utilisant un compte utilisateur de la dite machine.
Pour cela, l’ordinateur qui doit se connecter à la machine distante va fournir à celle-ci le nom de l’utilisateur à utiliser et son mot de passe.
Il est possible dans certains cas d’utiliser un jeu de certificats sur l’ordinateur et la machine distante, permettant ainsi d’obtenir une connexion sécurisée sans avoir à taper un mot de passe.
Il s’agit là d’un cas d’utilisation plus poussé que nous n’aborderons pas ici.
Par défaut, SSH est installé sur la Raspberry Pi, mais est désactivé pour des raisons de sécurité.
La première chose à faire sera donc d’activer SSH sur votre Raspberry Pi.
Vous allez devoir installer le logiciel Putty qui est un client SSH et TelNet. Vous pourrez trouver cet excellent outil sur le site dédié.
Pour Windows, comme souvent, il va falloir passer par l’interface graphique.
Vous allez donc devoir lancer Putty et remplir les informations comme sur l’image ci-dessous.
Sachez qu’il est possible d’enregistrer des configurations SSH avec Putty.
Si vous souhaitez employer cette fonction, nous ne pouvons que vous conseiller de ne pas enregistrer le mot de passe, ceci étant véritablement une mauvaise pratique en terme de sécurité !
Voilà, vous savez maintenant comment contrôler votre Raspberry Pi à distance avec SSH !
Votre serveur SSH (Secure Shell) créé, votre Raspberry Pi peut être facilement accessible depuis n’importe où sur Internet.
Une fois que les pirates auront découvert votre adresse IP ils s’attaqueront directement au port 22 (port par défaut du serveur SSH).
Il est aussi important de modifier son mot de passe Pi, si toutefois une personne tierce arrive à se connecter en SSH à votre Raspberry, il sera facile pour elle de se connecter en utilisant les identifiants par défaut soit : Login : pi et mot de passe : raspberry.
Dans le terminal, tapez la commande suivante :
sudo nano /etc/ssh/sshd_config
Cette commande vous permettra d’accéder et de modifier le fichier sshd_config, avec les droits root.
Une fois dans ce fichier vous devriez voir cela :
Modifier le numéro de port en conséquence, en tenant compte, que le port du serveur SSH doit être 22, ou bien être compris entre 1024 et 65537.
Le numéro de port est maintenant modifié. (reste a ouvrir le port sur le modem)
Fail2ban est un framework de prévention contre les intrusions, écrit en Python.
Pour les bots qui tenteraient toujours de se connecter plusieurs fois il est possible de les bannir ou plutôt de les placer dans votre "prison", grâce à Fail2Ban. Simple d'utilisation et sur, il a déjà chez moi fait plusieurs bannit.
sudo apt-get install fail2ban
modifier la section [ssh] du fichier jail qui se trouve dans /etc/fail2ban/jail.conf
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
iptables[name=SSH, port=ssh, protocol=tcp]
maxretry = 5
bantime = 1800
port = ssh,sftp,2276
Modifier la ligne port en remplacent 2276 pour votre port ssh
Voilà, on sauvegarde et il ne nous reste plus qu’à redémarrer le service
sudo service fail2ban restart
On vérifie que le service tourne bien
sudo service fail2ban status
Pour savoir si une de vos jails de votre fail2ban a bannis une ou plusieurs IP, taper cette commande
fail2ban-client status [Nom du jail]
Exemple :
fail2ban-client status SSH
Dé-bannir une adresse IP avec Fail2ban
fail2ban-client set ssh unbanip 1.2.3.4