Exercices récapitulatifs
Table des matières
- Quiz de validation
- Exercice 1 : Configuration réseau
- Exercice 2 : SSH sécurisé
- Mini-projet : Serveur SSH sécurisé
- Prochaines étapes
1 - Quiz de validation
Questions
Q1. Quelle commande affiche l'utilisation des inodes ?
Voir la réponse
df -i
Q2. Quelle est la différence entre un lien symbolique et un lien physique ?
Voir la réponse
- Lien physique : même inode, mêmes données
- Lien symbolique : fichier spécial pointant vers un chemin
Q3. Comment monter automatiquement une partition au démarrage ?
Voir la réponse
Ajouter une entr ée dans /etc/fstab avec l'UUID de la partition.
Q4. Quelle commande affiche les ports en écoute ?
Voir la réponse
ss -tulnp ou netstat -tulnp
Q5. Comment copier une clé SSH sur un serveur ?
Voir la réponse
ssh-copy-id user@serveur
Q6. Quelle règle UFW autorise SSH depuis une IP spécifique ?
Voir la réponse
sudo ufw allow from 192.168.1.100 to any port 22
Q7. Que signifie l'expression cron 0 */4 * * * ?
Voir la réponse
Toutes les 4 heures, à la minute 0 (0h, 4h, 8h, 12h, 16h, 20h)
Q8. Comment créer une archive .tar.gz ?
Voir la réponse
tar -czvf archive.tar.gz dossier/
Q9. Comment trouver tous les fichiers de plus de 100 Mo modifiés dans les 7 derniers jours ?
Voir la réponse
find / -type f -size +100M -mtime -7
Q10. Comment remplacer "foo" par "bar" dans un fichier avec sed ?
Voir la réponse
sed -i 's/foo/bar/g' fichier.txt
Résultats
| Score | Niveau |
|---|---|
| 10/10 | Excellent ! Prêt pour Linux 4 |
| 7-9/10 | Bien ! Révisez les points manqués |
| 4-6/10 | Moyen. Relisez les chapitres |
| 0-3/10 | Reprenez le cours Linux 3 |
🔝 Retour à la table des matières
2 - Exercice 1 : Configuration réseau
Objectif
Diagnostiquer et documenter la configuration réseau d'un système.
Instructions
# 1. Affichez toutes les interfaces réseau
ip a
# 2. Notez :
# - Nom de l'interface principale
# - Adresse IP
# - Masque de sous-réseau
# 3. Affichez la passerelle par défaut
ip route | grep default
# 4. Affichez les serveurs DNS
cat /etc/resolv.conf
# ou
resolvectl status
# 5. Testez la connectivité
ping -c 3 8.8.8.8 # Test IP
ping -c 3 google.com # Test DNS
# 6. Tracez le chemin vers google.com
traceroute google.com
# 7. Vérifiez les ports en écoute
sudo ss -tulnp
Livrable
Créez un fichier avec vos résultats :
cat << EOF > ~/network_info.txt
=== Configuration Réseau ===
Date: $(date)
Interface: [VOTRE_INTERFACE]
IP: [VOTRE_IP]
Masque: [VOTRE_MASQUE]
Passerelle: [VOTRE_GATEWAY]
DNS: [VOS_DNS]
=== Tests ===
Ping IP: OK/FAIL
Ping DNS: OK/FAIL
EOF
🔝 Retour à la table des matières
3 - Exercice 2 : SSH sécurisé
Objectif
Configurer SSH avec authentification par clé.
Instructions
# 1. Générez une clé ED25519 (si pas déjà fait)
ssh-keygen -t ed25519 -C "exercice-linux3"
# 2. Vérifiez les fichiers créés
ls -la ~/.ssh/
# 3. Vérifiez les permissions
stat ~/.ssh/
stat ~/.ssh/id_ed25519
# 4. Créez un fichier de configuration SSH
cat << EOF > ~/.ssh/config
# Configuration SSH - Exercice Linux 3
# Paramètres par défaut
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
AddKeysToAgent yes
# Exemple d'alias (à personnaliser)
# Host mon-serveur
# HostName exemple.com
# User deploy
# Port 22
# IdentityFile ~/.ssh/id_ed25519
EOF
# 5. Sécurisez le fichier
chmod 600 ~/.ssh/config
# 6. Vérifiez
cat ~/.ssh/config
Si vous avez un serveur disponible
# Copiez la clé
ssh-copy-id user@serveur
# Testez la connexion sans mot de passe
ssh user@serveur "echo 'Connexion SSH par clé réussie !'"
🔝 Retour à la table des matières
4 - Mini-projet : Serveur SSH sécurisé
Contexte
Vous devez configurer un serveur sécurisé avec :
- Pare-feu configuré
- SSH avec clé uniquement
- Sauvegarde automatisée
- Monitoring basique
Partie 1 : Pare-feu
# Script de configuration pare-feu
cat << 'EOF' > ~/setup_firewall.sh
#!/bin/bash
# Reset UFW
sudo ufw reset
# Politique par défaut
sudo ufw default deny incoming
sudo ufw default allow outgoing
# SSH (limité pour anti-brute-force)
sudo ufw limit ssh
# HTTP/HTTPS (si serveur web)
sudo ufw allow http
sudo ufw allow https
# Activer
sudo ufw enable
# Afficher le statut
sudo ufw status verbose
EOF
chmod +x ~/setup_firewall.sh
echo "Script créé: ~/setup_firewall.sh"
Partie 2 : Script de sauvegarde
cat << 'EOF' > ~/backup_script.sh
#!/bin/bash
# Configuration
BACKUP_DIR="/var/backups/system"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7
# Créer le dossier
sudo mkdir -p $BACKUP_DIR
# Backup des configs importantes
sudo tar -czf "$BACKUP_DIR/etc_backup_$DATE.tar.gz" /etc/
# Rotation
sudo find "$BACKUP_DIR" -name "*.tar.gz" -mtime +$RETENTION_DAYS -delete
echo "Backup terminé: etc_backup_$DATE.tar.gz"
echo "Fichiers dans $BACKUP_DIR:"
ls -lh $BACKUP_DIR/
EOF
chmod +x ~/backup_script.sh
echo "Script créé: ~/backup_script.sh"
Partie 3 : Tâche cron
# Ajouter au crontab (simulation)
cat << 'EOF'
# Ajouter cette ligne avec: crontab -e
# Backup quotidien à 3h du matin
0 3 * * * /home/$USER/backup_script.sh >> /var/log/backup.log 2>&1
EOF
Partie 4 : Script de monitoring
cat << 'EOF' > ~/monitor.sh
#!/bin/bash
echo "=== Monitoring Système ==="
echo "Date: $(date)"
echo ""
echo "=== Espace disque ==="
df -h | grep -E "^/dev|Filesystem"
echo ""
echo "=== Mémoire ==="
free -h
echo ""
echo "=== Charge CPU ==="
uptime
echo ""
echo "=== Top 5 processus CPU ==="
ps aux --sort=-%cpu | head -6
echo ""
echo "=== Services critiques ==="
for service in ssh; do
if systemctl is-active --quiet $service; then
echo "$service: ACTIF"
else
echo "$service: INACTIF !"
fi
done
echo ""
echo "=== Dernières connexions ==="
last -n 5
EOF
chmod +x ~/monitor.sh
echo "Script créé: ~/monitor.sh"
Test du monitoring
./monitor.sh
🔝 Retour à la table des matières
5 - Prochaines étapes
Félicitations !
Vous avez terminé le cours Linux 3 - Système et Réseau !
Ce que vous avez appris
Compétences acquises
| Compétence | Maîtrise |
|---|---|
| Système de fichiers et stockage | ✅ |
| Configuration réseau | ✅ |
| Diagnostic réseau | ✅ |
| SSH sécurisé | ✅ |
| Pare-feu (UFW) | ✅ |
| Tâches planifiées | ✅ |
| Archivage et backup | ✅ |
| Recherche avancée | ✅ |
Prochaine étape : Linux 4
Dans le cours Linux 4 - Scripting Bash, vous apprendrez :
- Variables et types
- Conditions et boucles
- Fonctions
- Manipulation de texte avancée
- Gestion des erreurs
- Scripts DevOps professionnels
Conseils pour progresser
- Pratiquez régulièrement les commandes
- Configurez un vrai serveur (VPS, Raspberry Pi)
- Automatisez vos tâches répétitives
- Lisez les logs pour comprendre les problèmes
- Documentez vos configurations
Récapitulatif des commandes
Système de fichiers
| Commande | Usage |
|---|---|
df -h | Espace par partition |
du -sh | Taille dossier |
lsblk | Lister les disques |
mount/umount | Monter/démonter |
Réseau
| Commande | Usage |
|---|---|
ip a | Interfaces |
ip route | Routes |
ss -tulnp | Ports en écoute |
ping/traceroute | Diagnostic |
SSH
| Commande | Usage |
|---|---|
ssh-keygen | Générer clé |
ssh-copy-id | Copier clé |
scp/rsync | Transfert fichiers |
Sécurité
| Commande | Usage |
|---|---|
ufw enable | Activer pare-feu |
ufw allow/deny | Règles |
Automatisation
| Commande | Usage |
|---|---|
crontab -e | Éditer cron |
tar -czvf | Créer archive |
Recherche
| Commande | Usage |
|---|---|
find | Recherche fichiers |
grep | Recherche texte |
awk/sed | Traitement texte |