La configuration des paramètres de service SSH (Secure Shell) sur un serveur Linux est une étape cruciale pour assurer la sécurité et la gestion efficace des connexions distantes. SSH est un protocole de communication sécurisé qui permet l’accès à distance à un serveur tout en garantissant l’intégrité et la confidentialité des données échangées. Afin de répondre à votre demande de manière approfondie, nous explorerons les aspects essentiels de la configuration SSH, en mettant l’accent sur les différentes options disponibles et les bonnes pratiques de sécurité.
-
Installation d’OpenSSH :
Avant de configurer SSH, assurez-vous d’avoir installé le logiciel OpenSSH sur votre serveur Linux. OpenSSH est une implémentation open source du protocole SSH, largement utilisée dans l’écosystème Linux. Vous pouvez installer OpenSSH en utilisant le gestionnaire de paquets de votre distribution, tel queapt
pour Ubuntu ouyum
pour CentOS.bashsudo apt-get install openssh-server # Pour Ubuntu/Debian sudo yum install openssh-server # Pour CentOS
-
Fichiers de configuration SSH :
Les principaux fichiers de configuration SSH se trouvent généralement dans le répertoire/etc/ssh
. Les fichiers importants sontsshd_config
pour la configuration du serveur SSH etssh_config
pour la configuration du client SSH.bashsudo nano /etc/ssh/sshd_config # Ouvrir le fichier de configuration du serveur SSH
-
Port SSH :
Par défaut, le service SSH utilise le port 22. Il est recommandé de changer ce port par défaut pour améliorer la sécurité. Choisissez un port non réservé et non utilisé par d’autres services. Modifiez la ligne suivante dans le fichiersshd_config
:plaintextPort 2222 # Remplacez 2222 par le port de votre choix
-
Authentification par clé :
L’authentification par clé est plus sécurisée que l’authentification par mot de passe. Générez une paire de clés sur votre machine locale et transférez la clé publique vers le serveur. Modifiez la ligne suivante danssshd_config
pour autoriser l’authentification par clé :plaintextPubkeyAuthentication yes
Assurez-vous que le dossier
~/.ssh
sur le serveur a les bonnes permissions (700) et que le fichierauthorized_keys
a la permission 600. -
Désactivation de l’accès root :
Pour renforcer la sécurité, il est recommandé de désactiver l’accès direct en tant que root via SSH. Modifiez la ligne suivante danssshd_config
:plaintextPermitRootLogin no
Créez un utilisateur normal avec des privilèges sudo pour effectuer des tâches d’administration.
-
Gestion des utilisateurs :
Limitez l’accès SSH aux utilisateurs spécifiques en utilisant la directiveAllowUsers
dans le fichiersshd_config
. Par exemple, pour autoriser uniquement l’utilisateurjohn
:plaintextAllowUsers john
-
Limitation des connexions concurrentes :
Vous pouvez limiter le nombre de connexions simultanées par utilisateur en utilisant la directiveMaxSessions
danssshd_config
.plaintextMaxSessions 2
Cela peut aider à prévenir les attaques par force brute.
-
Surveillance des journaux :
Configurez la journalisation des événements SSH pour surveiller les tentatives de connexion et détecter les activités suspectes. Les journaux SSH se trouvent généralement dans/var/log/auth.log
. Vous pouvez utiliser des outils tels quefail2ban
pour automatiser la réponse aux tentatives d’authentification infructueuses. -
Rechargement du service SSH :
Après avoir apporté des modifications à la configuration SSH, rechargez le service pour appliquer les changements sans redémarrer complètement le serveur.bashsudo service ssh reload
-
Firewall :
Assurez-vous d’ajuster les règles de pare-feu pour permettre le trafic sur le nouveau port SSH que vous avez configuré. Utilisez des outils tels queufw
pour simplifier la gestion des règles de pare-feu.
bashsudo ufw allow 2222
En suivant ces étapes de configuration, vous renforcez la sécurité de votre service SSH tout en optimisant la gestion des connexions distantes sur votre serveur Linux. Il est essentiel de maintenir une approche proactive en matière de sécurité, en surveillant régulièrement les journaux et en restant informé des meilleures pratiques de sécurité en évolution dans le domaine de l’administration système.
Plus de connaissances
Bien sûr, explorons davantage les paramètres de configuration SSH ainsi que d’autres bonnes pratiques pour renforcer la sécurité et améliorer les performances du service sur un serveur Linux.
-
Cryptographie et algorithmes :
Assurez-vous d’utiliser des algorithmes de chiffrement robustes pour garantir la sécurité des communications. Dans le fichiersshd_config
, spécifiez des algorithmes modernes et sûrs. Par exemple :plaintextCiphers aes256-ctr,aes192-ctr,aes128-ctr MACs hmac-sha2-512,hmac-sha2-256 KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
Cela garantit que seules des méthodes de chiffrement et d’échange de clés sécurisées sont autorisées.
-
Expiration des sessions inactives :
Pour améliorer la sécurité, configurez l’expiration des sessions inactives. Cela déconnectera automatiquement les sessions SSH qui restent inactives pendant une période spécifiée. Ajoutez la ligne suivante danssshd_config
:plaintextClientAliveInterval 300 ClientAliveCountMax 2
Ces paramètres déconnecteront un client qui reste inactif pendant 5 minutes (300 secondes) après deux tentatives.
-
Utilisation d’un fichier de configuration utilisateur :
Pour des configurations spécifiques à un utilisateur, vous pouvez utiliser un fichier~/.ssh/config
. Cela permet de définir des paramètres spécifiques à certaines connexions ou hôtes.plaintextHost monserveur HostName 192.168.1.100 User john Port 2222 IdentityFile ~/.ssh/ma_cle_privee
Cela évite de spécifier ces informations à chaque connexion.
-
Utilisation de la double authentification (2FA) :
Pour une couche de sécurité supplémentaire, envisagez d’activer la double authentification. Cela nécessite généralement l’utilisation d’une application d’authentification sur le périphérique de l’utilisateur. Vous pouvez l’activer en installant et configurantlibpam-google-authenticator
(ou un équivalent) sur le serveur. -
Réglages de performances :
Si vous rencontrez des problèmes de performances liés à SSH, ajustez certains paramètres pour optimiser le débit. Modifiez ces valeurs danssshd_config
:plaintextUseDNS no GSSAPIAuthentication no
La désactivation de la résolution DNS et de l’authentification GSSAPI peut accélérer le processus d’authentification.
-
Gestion des clés SSH :
Assurez-vous de gérer correctement les clés SSH. Limitez l’accès aux clés privées et utilisez des passphrases pour les protéger. Révisez régulièrement les clés existantes et révoquez celles qui ne sont plus nécessaires. -
Mise à jour régulière :
Gardez votre logiciel SSH à jour en installant régulièrement les mises à jour de sécurité. Utilisez le gestionnaire de paquets de votre distribution pour cela.bashsudo apt-get update sudo apt-get upgrade openssh-server
-
Surveillance des activités anormales :
Mettez en place une surveillance continue des activités SSH en utilisant des outils tels queauditd
. Cela permet de détecter rapidement les comportements suspects et de renforcer la sécurité de votre serveur. -
Sauvegarde de la configuration :
Avant d’apporter des modifications importantes à la configuration SSH, assurez-vous de sauvegarder le fichiersshd_config
. Cela vous permettra de restaurer rapidement la configuration en cas d’erreur. -
Formation des utilisateurs :
Enfin, assurez-vous que les utilisateurs qui ont accès au serveur sont bien informés des bonnes pratiques en matière de sécurité. Sensibilisez-les à l’importance de maintenir des pratiques de mot de passe solides, de protéger leurs clés privées et d’adopter des comportements sécurisés lors de l’utilisation de SSH.
En mettant en œuvre ces différentes mesures, vous renforcez la sécurité de votre serveur SSH tout en garantissant des performances optimales. Il est crucial de maintenir une approche proactive en matière de sécurité, en surveillant régulièrement les journaux, en effectuant des audits de sécurité et en restant informé des dernières menaces et des meilleures pratiques de l’industrie.