Configurer SSH, diagnostiquer le réseau avec ping
, netstat
, dig
1. Configuration d'un serveur SSH
Bienvenue dans une plongée pratique dans les possibilités réseau sous Linux. Aujourd'hui, c'est l'heure de tester nos compétences sérieusement ! Tu vas apprendre à configurer un serveur SSH, à t'y connecter avec un client, diagnostiquer un réseau à l'aide des commandes les plus populaires et vérifier la disponibilité des ports. Allez, on va se sentir comme des vrais ingénieurs réseau !
SSH (Secure Shell) est un outil pour un accès distant sécurisé à un serveur. Il te permet de te connecter au serveur, de le gérer comme si tu étais devant, et de transférer des fichiers.
Étape 1: Installer un serveur SSH
Pour commencer, on installe le serveur SSH. Si tu utilises Ubuntu ou Debian, tape la commande suivante :
sudo apt update
sudo apt install openssh-server -y
Si tu es sur Fedora ou CentOS :
sudo yum install -y openssh-server
Après l'installation, assure-toi que le service SSH est démarré :
sudo systemctl start ssh
sudo systemctl enable ssh # Pour que SSH démarre automatiquement au lancement du système
sudo systemctl status ssh # Vérifie le statut du service
Si tout s'est bien passé, tu verras que le service est actif.
Étape 2: Configurer le serveur SSH
Le fichier de configuration du serveur SSH se trouve ici :
sudo nano /etc/ssh/sshd_config
Quelques paramètres utiles à modifier :
PermitRootLogin no
— désactiver la connexion en tant qu'utilisateurroot
.PasswordAuthentication yes
— activer l'authentification par mot de passe.PubkeyAuthentication yes
— activer l'authentification par clés.
Après avoir fait des modifications, redémarre SSH :
sudo systemctl restart ssh
Le serveur est maintenant prêt à recevoir des connexions.
Étape 3: Se connecter au serveur via SSH
Depuis une autre machine (ou localement via localhost), essaye de te connecter :
ssh your_username@your_server_ip
Si tu travailles en local, remplace your_server_ip
par 127.0.0.1
. Entre le mot de passe de ton utilisateur, et voilà, tu es à l'intérieur du système via le terminal.
2. Configuration de l'authentification avec des clés
L'authentification par mot de passe est pratique, mais en termes de sécurité, l'option la plus sûre est d'utiliser des clés SSH.
Étape 1 : Génération des clés SSH
Sur la machine client, exécute la commande :
ssh-keygen
Tu seras invité à choisir où sauvegarder les clés. Par défaut, elles seront sauvegardées dans le répertoire ~/.ssh/
. Appuie simplement sur Enter.
Étape 2 : Copier la clé sur le serveur
Copie la clé publique sur le serveur :
ssh-copy-id your_username@your_server_ip
Maintenant, tu pourras te connecter sans saisir de mot de passe :
ssh your_username@your_server_ip
Si tout est correctement configuré, félicitations ! Maintenant, ton serveur SSH est protégé par une authentification basée sur les clés.
3. Diagnostic réseau avec ping
On connaît déjà cette commande. Vérifions rapidement l'accessibilité de notre serveur SSH.
ping -c 4 your_server_ip
Tu devrais voir une réponse du serveur. Si tu ne vois rien, vérifie si le serveur est lancé et bien configuré.
4. Vérification du DNS avec nslookup
et dig
Si ton serveur a un nom de domaine, tu peux vérifier si tout fonctionne bien via le DNS. Par exemple :
Commande nslookup
:
nslookup your-domain.com
Tu devrais voir l’adresse IP correspondant à ton domaine.
Commande dig
:
Maintenant, essayons d’obtenir un ensemble complet d’infos :
dig your-domain.com
Tu verras plein de données, mais ce qui nous intéresse c’est la ligne avec ANSWER SECTION
, où l’adresse IP est indiquée.
5. Analyse des connexions réseau avec netstat
et ss
Le serveur SSH écoute le port 22 par défaut. Vérifions cela avec netstat
:
sudo netstat -tln | grep 22
Ou avec ss
, un outil plus moderne :
sudo ss -tln | grep 22
Si tu vois que le port 22 est en mode "LISTEN" (attend une connexion), cela signifie que le serveur est prêt à accepter des clients.
6. Vérification de la disponibilité du port avec nc
La commande netcat
(ou nc
) permet de tester la disponibilité des ports. Essayons de nous connecter à notre serveur SSH :
nc -zv your_server_ip 22
Vous devriez voir un message comme "Connection to your_server_ip 22 port [tcp/ssh] succeeded!"
.
Si la connexion a échoué, cela peut signifier que le port est bloqué par un pare-feu ou que le serveur n'écoute pas sur le port spécifié.
7. Exercice pratique
Passons maintenant à un scénario pratique où tout s'assemble. Vous devrez :
- Activer SSH sur votre machine ou environnement virtuel, comme par exemple WSL2.
- Générer des clés et configurer l'autorisation par clés (en désactivant les mots de passe).
- Se connecter au serveur via SSH.
- Utiliser
ping
pour vérifier la disponibilité du serveur. - Utiliser
nslookup
etdig
pour vérifier la résolution de l'adresse IP (si vous avez un nom de domaine). - Vérifier le port 22 sur le serveur en utilisant
netstat
,ss
etnc
.
Vous êtes maintenant prêt non seulement à configurer l'accès distant, mais aussi à résoudre les problèmes réseau, diagnostiquer le serveur et le sécuriser comme un pro ! Vous vous rapprochez déjà du niveau pour vous appeler un guru Linux.
GO TO FULL VERSION