Étape 1 :

Par défaut, les droits d’utiliser les commandes en mode « sudo » (superutilisateur) ne sont pas installés sur Debian.

Vous allez commencer par les installer.

Connectez-vous en « root » et saisissez :

apt install sudo

Étape 2 :

Configurez les droits « sudo » pour votre utilisateur en modifiant le fichier « sudoers » :

nano /etc/sudoers

Pour aller + vite on peut également utiliser la commande visudo

visudo

Il suffit d’ajouter un utilisateur avec les droits que vous souhaitez, cherchez simplement la ligne # User privilege specification

Ne pas oublier de sortir du mode root pour reprendre le travail avec l’utilisateur sudo 😉

Étape 3 :

Mettez à jour votre système :

sudo apt update

Étape 4 :

Installez le serveur SSH :

sudo apt-get install openssh-server

Étape 5 :

Démarrez le service SSH :

sudo systemctl start ssh

Étape 6 :

Démarrez le « daemon SSHD » afin que le service soit activé automatiquement au démarrage du système :

sudo systemctl enable ssh

Étape 7 :

Vérifiez le statut du service SSH :

sudo systemctl status ssh

Étape 8 :

À moins d’avoir attribué une IP fixe à votre Debian, vérifiez l’adresse IP de votre serveur pour vous connecter à distance :

ip a

Le serveur OpenSSH est maintenant installé et activé. Vous allez pouvoir vous connecter à distance.

Configurer SSH

Bonnes pratiques pour sécuriser SSH :

  1. Désactiver l’accès SSH avec le compte root
    • Évitez de laisser un accès total au serveur en cas d’attaque.
  2. Utiliser uniquement la version 2 de SSH
    • Configurez la connexion exclusive des clients avec la version 2 de SSH.
  3. Modifier le port d’écoute par défaut (port 22)
    • Évitez les ports réservés par des protocoles et applications connues.
  4. Limiter les utilisateurs pouvant se connecter en SSH
    • Définissez une politique de refus par défaut et spécifiez les utilisateurs autorisés.
  5. Utiliser des mots de passe forts
    • Désactivez la connexion avec des comptes sans mot de passe.
  6. Diminuer la durée maximale d’authentification
    • Par défaut, elle est fixée à 2 minutes, réduisez-la si nécessaire.
  7. Vérifier les logs SSH régulièrement
    • Analysez les logs SSH pour détecter d’éventuelles anomalies.

Configurations de sécurité de base ou « minimum syndical » !

Voici quelques lignes à ajouter à la fin du fichier /etc/ssh/sshd_config :

Désactiver l’accès SSH pour le compte root

PermitRootLogin no

Utiliser uniquement la version 2 de SSH

Protocol 2

Modifier le port d’écoute par défaut

  • Remplacez 22 par un autre numéro de port de votre choix (évitez les ports réservés).
Port <numéro_de_port>

Limiter les utilisateurs pouvant se connecter en SSH

  • Remplacez <utilisateur> par le nom d’utilisateur autorisé.
AllowUsers <utilisateur>

Utiliser des mots de passe forts

  • Assurez-vous que la ligne suivante est commentée ou absente pour désactiver la connexion avec des comptes sans mot de passe.
#PermitEmptyPasswords no

Diminuer la durée maximale d’authentification

  • Remplacez 30 par le nombre de secondes souhaité.
LoginGraceTime 30

Configuration de sécurité avancée

Désactiver l’authentification par mot de passe

  • Si vous utilisez des clés SSH pour l’authentification, vous pouvez désactiver l’authentification par mot de passe pour renforcer la sécurité.
PasswordAuthentication no

Désactiver l’authentification par clé héritée

PubkeyAuthentication yes

Désactiver l’authentification basée sur l’hôte

HostbasedAuthentication no

Désactiver l’authentification rhosts

IgnoreRhosts yes

Désactiver l’authentification rhosts RSA

RhostsRSAAuthentication no

Désactiver l’authentification basée sur l’hôte

HostbasedAuthentication no

Désactiver l’authentification GSSAPI

GSSAPIAuthentication no

Désactiver l’authentification Kerberos

KerberosAuthentication no

Après avoir effectué ces modifications, n’oubliez pas de redémarrer le service SSH pour que les changements prennent effet :

sudo systemctl restart sshd