Aperçu
Le serveur SSH reçoit et authentifie les demandes de connexion SSH des clients, puis établit une session de communication sécurisée. Cela permet d'exécuter des commandes ou de transférer des fichiers en toute sécurité à distance. Le composant principal du serveur est le démon `sshd`, qui est généralement configuré pour démarrer automatiquement au démarrage du système.
Fonctionnalités principales
Fonctionnalités clés offertes par le serveur SSH.
- Accès au shell distant : Connexion à un serveur distant via un terminal crypté pour exécuter des commandes
- Transfert de fichiers sécurisé : Téléchargement/téléversement de fichiers en utilisant SCP (Secure Copy) et SFTP (SSH File Transfer Protocol)
- Transfert de ports : Tunnelisation de ports locaux/distants pour fournir un accès sécurisé aux services non sécurisés
- Authentification par clé : Authentification de sécurité plus forte en utilisant des clés SSH au lieu de mots de passe
Options principales (commande sshd)
Options principales utilisées lors de l'exécution directe du démon `sshd`. Généralement, il est exécuté via un gestionnaire de services comme `systemd`, donc ces options sont principalement utiles pour le débogage ou les tests de configuration spécifiques.
Exécution et débogage
Commande générée :
Essayez de combiner les commandes.
Description:
`ssh-server` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Installation
Sur la plupart des distributions Linux, le serveur SSH est fourni via le paquet `openssh-server`. S'il n'est pas installé par défaut, vous pouvez l'installer en utilisant les commandes suivantes.
Systèmes basés sur Debian/Ubuntu
sudo apt update
sudo apt install openssh-server
Installe `openssh-server` en utilisant le gestionnaire de paquets APT.
Systèmes basés sur CentOS/RHEL
sudo yum install openssh-server
# Ou pour Fedora/RHEL récent :
sudo dnf install openssh-server
Installe `openssh-server` en utilisant le gestionnaire de paquets YUM ou DNF.
Exemples d'utilisation
Méthodes courantes pour gérer et configurer le serveur SSH.
Démarrer le service SSH
sudo systemctl start ssh
Démarre le service du démon SSH (`sshd`).
Redémarrer le service SSH
sudo systemctl restart ssh
Redémarre le service du démon SSH. Généralement utilisé après avoir modifié le fichier de configuration pour appliquer les changements.
Vérifier l'état du service SSH
sudo systemctl status ssh
Vérifie l'état actuel du service du démon SSH.
Activer le démarrage automatique du service SSH
sudo systemctl enable ssh
Configure le service SSH pour qu'il démarre automatiquement au démarrage du système.
Ouvrir le port SSH dans le pare-feu (UFW)
sudo ufw allow ssh
# Ou si vous utilisez un port spécifique :
sudo ufw allow 2222/tcp
Si vous utilisez UFW (Uncomplicated Firewall), autorise le port SSH par défaut (22).
Modifier le fichier de configuration SSH
sudo nano /etc/ssh/sshd_config
Modifie le fichier de configuration principal du serveur SSH, `sshd_config`. Après modification, il est impératif de redémarrer le service SSH.
Conseils et précautions
Conseils et précautions importants pour exploiter le serveur SSH de manière sécurisée et efficace.
Conseils de renforcement de la sécurité
Recommandations pour renforcer la sécurité du serveur SSH.
- **Changer le port par défaut** : Modifiez le port SSH par défaut (22) à un port moins connu (par exemple, 2222) pour réduire les tentatives d'attaques par balayage. (Modifier la directive `Port` dans le fichier `/etc/ssh/sshd_config`)
- **Utiliser l'authentification par clé au lieu du mot de passe** : Générez une paire de clés SSH pour offrir une sécurité beaucoup plus forte que l'authentification par mot de passe. (Définir `PasswordAuthentication no`)
- **Désactiver la connexion root** : Interdisez la connexion SSH directe en tant que compte `root` et utilisez plutôt un compte utilisateur normal suivi de `sudo`. (Définir `PermitRootLogin no`)
- **Utiliser Fail2Ban** : Installez des outils comme `Fail2Ban` qui bloquent automatiquement les adresses IP après des échecs de connexion répétés pour se défendre contre les attaques par force brute.
- **Restreindre les utilisateurs/groupes autorisés** : Spécifiez explicitement les utilisateurs ou groupes autorisés à se connecter via SSH en utilisant les directives `AllowUsers` ou `AllowGroups`.
file Chemin du fichier de configuration SSH
/etc/ssh/sshd_config
Le fichier de configuration principal du serveur SSH se trouve à l'emplacement suivant.