Aller au contenu principal

Exercices récapitulatifs


Table des matières

  1. Quiz de validation
  2. Exercice 1 : Configuration réseau
  3. Exercice 2 : SSH sécurisé
  4. Mini-projet : Serveur SSH sécurisé
  5. 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

ScoreNiveau
10/10Excellent ! Prêt pour Linux 4
7-9/10Bien ! Révisez les points manqués
4-6/10Moyen. Relisez les chapitres
0-3/10Reprenez 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étenceMaî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

  1. Pratiquez régulièrement les commandes
  2. Configurez un vrai serveur (VPS, Raspberry Pi)
  3. Automatisez vos tâches répétitives
  4. Lisez les logs pour comprendre les problèmes
  5. Documentez vos configurations

Récapitulatif des commandes

Système de fichiers

CommandeUsage
df -hEspace par partition
du -shTaille dossier
lsblkLister les disques
mount/umountMonter/démonter

Réseau

CommandeUsage
ip aInterfaces
ip routeRoutes
ss -tulnpPorts en écoute
ping/tracerouteDiagnostic

SSH

CommandeUsage
ssh-keygenGénérer clé
ssh-copy-idCopier clé
scp/rsyncTransfert fichiers

Sécurité

CommandeUsage
ufw enableActiver pare-feu
ufw allow/denyRègles

Automatisation

CommandeUsage
crontab -eÉditer cron
tar -czvfCréer archive

Recherche

CommandeUsage
findRecherche fichiers
grepRecherche texte
awk/sedTraitement texte

🔝 Retour à la table des matières


← Chapitre précédent | Retour à la table des matières →