From a6dd1bf03c71fe7995515f8da37f75c2f921e365 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 25 Oct 2024 12:29:22 +0200 Subject: [PATCH 1/6] Ajout --- TPShell | 1 + 1 file changed, 1 insertion(+) create mode 160000 TPShell diff --git a/TPShell b/TPShell new file mode 160000 index 0000000..1cd7858 --- /dev/null +++ b/TPShell @@ -0,0 +1 @@ +Subproject commit 1cd78580666ba1d26a4bb66effeafefe5c1914b6 From c113c75311b4569ba5676e26ddcfec6c5a08dabd Mon Sep 17 00:00:00 2001 From: Anthony <123972561+xAMA0x@users.noreply.github.com> Date: Sun, 2 Nov 2025 20:06:10 +0100 Subject: [PATCH 2/6] Create portfolio entry for TP Linux project Added a detailed portfolio entry for the 'TP Linux - Personnalisation Bash' project, including project description, tech stack, architecture, objectives, skills demonstrated, and resources. --- .portfolio/portfolio.md | 429 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 429 insertions(+) create mode 100644 .portfolio/portfolio.md diff --git a/.portfolio/portfolio.md b/.portfolio/portfolio.md new file mode 100644 index 0000000..45dcc45 --- /dev/null +++ b/.portfolio/portfolio.md @@ -0,0 +1,429 @@ +--- +title: "TP Linux - Personnalisation Bash" +description: "Bash: Automatisation, durcissement SSH/Firewall (UFW) et personnalisation Linux." +date: "2024-10-25" +tags: ["bash","linux","security","cli","automation"] +lang: "fr" + +# Configuration techStack +techStack: + - name: "Bash" + category: "language" + icon: "🖥️" + - name: "Linux / Debian" + category: "infra" + icon: "🐧" + - name: "OpenSSH" + category: "security" + icon: "🔐" + - name: "UFW" + category: "network" + icon: "🔥" + - name: "AIDE / Tripwire" + category: "tool" + icon: "🛡️" + - name: "Vim / Nano" + category: "tool" + icon: "📝" + +# Architecture du projet +architecture: + overview: "Ce projet utilise une architecture modulaire basée sur Bash pour l'automatisation du système. Un script principal orchestre l'ensemble des configurations en sourçant des fonctions dédiées au durcissement de SSH, à la configuration du pare-feu (UFW), et à l'optimisation de l'environnement utilisateur. Cette modularité garantit un déploiement fiable et une séparation claire des responsabilités, le tout visant à transformer une installation Debian brute en un système sécurisé et productif." + components: + - "Script Principal (setup.sh) : Le point de lancement. Il gère l'exécution séquentielle des fonctions, la vérification des droits (root), et la gestion des logs/erreurs." + - "Fonctions de Durcissement SSH : Bloc de code qui automatise la modification de /etc/ssh/sshd_config pour désactiver l'authentification par mot de passe, limiter le root login, et mettre en place une liste blanche IP." + - "Configuration du Pare-feu (UFW) : Bloc de code qui installe, active, et configure UFW (ou iptables) avec une politique par défaut de DENY et une ouverture sélective des ports (SSH, HTTP, HTTPS)." + - "Gestion des Dotfiles (.bashrc, .vimrc) : Bloc de code qui copie les fichiers de personnalisation (alias, fonctions, prompt PS1 avancé) dans le répertoire ~/ de l'utilisateur." + - "Scripts d'Automatisation (Scripts Modulaires) : Fichiers Bash externes au script principal contenant des fonctions spécifiques (ex: mise à jour automatique des paquets de sécurité, synchronisation rsync)." + +# Diagrammes d'architecture (optionnel) +diagrams: + - path: "https://raw.githubusercontent.com/xAMA0x/tp-linux-personalisation-bash/main/.portfolio/diagrams/linux-hardening-architecture.svg" + title: "Architecture Bash (Flux de Hardening)" + description: "Flux séquentiel du script d'automatisation pour le durcissement du système." + +# URLs et liens +demo_url: "" +demo_label: "" +github_url: "https://github.com/xAMA0x/tp-linux-personalisation-bash" +--- + +## 🎯 Vue d'ensemble + +
+

+ Ce TP est une boîte à outils Bash complète pour le durcissement sécuritaire et l'optimisation de Debian. Il automatise les configurations critiques (SSH, UFW, gestion des clés) tout en permettant une personnalisation profonde de l'environnement de travail. Le projet démontre une approche DevOps essentielle pour tout administrateur système, transformant l'installation de base en un hôte fiable et productif. +

+ +
+
+
5+
+
Axes de durcissement
+
+
+
1
+
Script d'automatisation principal
+
+
+
8+
+
Fonctions et Alias personnalisés
+
+
+
100%
+
Outils natifs (Bash, UFW, OpenSSH)
+
+
+
+ +### Objectifs du projet + +
+
+
+ 🎓 +
+

+ Validation des Compétences Linux +

+

+ Réaliser le TP de 3ème année (ESGI) pour valider la maîtrise de l'environnement Linux, de la configuration système, et des outils de sécurité essentiels. +

+
+
+
+ 🛡️ +
+

+ Durcissement du Périphérique (Hardening) +

+

+ Sécuriser la machine de manière proactive en appliquant des bonnes pratiques critiques (SSH sans mot de passe, désactivation du root login, configuration d'un pare-feu). +

+
+
+
+ ⚙️ +
+

+ Automatisation Modulaire (Bash) +

+

+ Développer un script Bash principal capable de centraliser et d'exécuter l'ensemble des configurations de manière fiable, en utilisant la modularité des fonctions. +

+
+
+
+ 🔥 +
+

+ Contrôle du Flux Réseau (UFW) +

+

+ Installer et configurer le pare-feu UFW pour appliquer une politique de whitelisting stricte, bloquant tout le trafic entrant par défaut. +

+
+
+
+ 🖥️ +
+

+ Ergonomie et Productivité CLI +

+

+ Personnaliser l'environnement de travail de l'utilisateur (dotfiles, alias, prompt PS1 avancé) pour améliorer l'efficacité et le confort en ligne de commande. +

+
+
+
+ 🔑 +
+

+ Sécurité Post-Configuration +

+

+ Intégrer des outils de sécurité avancés (AIDE/Tripwire ou l'automatisation des mises à jour) pour maintenir un haut niveau de sécurité dans le temps. +

+
+
+ +## 🔐 Durcissement SSH & Authentification + +
+

+ Cette section gère les configurations critiques du service OpenSSH. Le script automatise la modification du fichier /etc/ssh/sshd_config pour imposer des politiques de connexion robustes, et gère les clés d'accès. +

+ +
+ +## 🔥 Sécurité Réseau et Firewall (UFW) + +
+

+ Le script automatise l'installation et la configuration du pare-feu UFW (Uncomplicated Firewall) pour établir un périmètre de sécurité strict autour de la machine. L'objectif est d'appliquer le principe du moindre privilège réseau et d'éviter l'exposition inutile des services. +

+ +
+ +## 🖥️ Modularité Bash & Personnalisation CLI + +
+

+ Ce volet du TP se concentre sur l'amélioration de l'expérience utilisateur et la modularité du code. Le script est conçu pour être facilement maintenable et le shell de l'utilisateur est optimisé pour les tâches d'administration et de développement. +

+ +
+ +## 🛡️ Sécurité Post-Configuration + +
+

+ Cette section va au-delà de la configuration initiale et se concentre sur la **maintenance sécuritaire** et la détection d'anomalies, couvrant ainsi les aspects les plus avancés du TP. +

+ +
+ +## 🎓 Compétences démontrées + +
+ +
+
+ 🐧 +

Administration Système (Linux)

+
+
+
+ +
+
Gestion du système de fichiers
+
Application des bonnes permissions (ex: `chmod 600`) pour les fichiers sensibles.
+
+
+
+ +
+
Configuration de services système
+
Modification du fichier `sshd_config` pour le durcissement d'OpenSSH.
+
+
+
+ +
+
Gestion des mises à jour
+
Mise en place de l'automatisation des mises à jour de sécurité.
+
+
+
+ +
+
Audit et intégrité du système
+
Utilisation d'outils comme AIDE ou Tripwire pour la détection d'altération de fichiers.
+
+
+
+
+ +
+
+ 🛡️ +

Sécurité & Hardening

+
+
+
+ +
+
Authentification forte
+
Désactivation de l'authentification par mot de passe (clés SSH).
+
+
+
+ +
+
Principe du moindre privilège
+
Restriction de l'accès SSH au compte `root` (`PermitRootLogin no`).
+
+
+
+ +
+
Gestion des accès
+
Configuration des listes blanches IP pour l'accès SSH.
+
+
+
+ +
+
Durcissement avancé
+
Identification et désactivation des services réseau superflus.
+
+
+
+
+ +
+
+ ⚙️ +

Automatisation & Scripting (Bash)

+
+
+
+ +
+
Modularité et orchestration
+
Utilisation de `source` et des fonctions Bash pour modulariser le script.
+
+
+
+ +
+
Création d'outils CLI
+
Développement d'alias et de fonctions personnalisées dans les `dotfiles`.
+
+
+
+ +
+
Gestion d'environnement
+
Modification de la variable `PS1` pour un prompt avancé (info Git).
+
+
+
+ +
+
Déploiement et fiabilité
+
Gestion de la vérification des droits (`if [ "$UID" -ne 0 ]`) et gestion des erreurs.
+
+
+
+
+ +
+
+ 🌐 +

Réseau & Firewall

+
+
+
+ +
+
Configuration de pare-feu
+
Installation et activation du pare-feu UFW.
+
+
+
+ +
+
Politique de sécurité réseau
+
Application des règles par défaut `DENY incoming` / `ALLOW outgoing`.
+
+
+
+ +
+
Gestion des ports
+
Ouverture sélective des ports pour les services nécessaires (SSH, HTTP, HTTPS).
+
+
+
+ +
+
Outil de synchronisation
+
Utilisation de `rsync` pour la synchronisation sécurisée et automatisée des répertoires.
+
+
+
+
+ +
+ +## 📚 Ressources & Documentation + +
+ +
+
+ 📖 +

Documentation complète

+
+
    +
  • + + Détail du script de durcissement SSH +
  • +
  • + + Règles et configuration avancée d'UFW +
  • +
  • + + Exemples de Prompt PS1 et Alias Bash +
  • +
  • + + Mise en place de AIDE pour la vérification d'intégrité +
  • +
+
+ → Voir les détails techniques +
+
+ +
+
+ 🗺️ +

Diagramme interactif

+
+

Visualisation complète de l'architecture avec tooltips détaillés pour chaque composant.

+
+ Script Bash + Hardening + Dotfiles + UFW +
+
+ → Voir l'architecture +
+
+ +
+ + + +--- + +**Archivé** | **Outil CLI** | **Projet Académique (ESGI)** From ed1248215551f1d0514e9f6cef3dc8906cd21533 Mon Sep 17 00:00:00 2001 From: Anthony <123972561+xAMA0x@users.noreply.github.com> Date: Sun, 2 Nov 2025 20:09:45 +0100 Subject: [PATCH 3/6] Add diagram.txt with initial content --- .portfolio/diagrams/diagram.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 .portfolio/diagrams/diagram.txt diff --git a/.portfolio/diagrams/diagram.txt b/.portfolio/diagrams/diagram.txt new file mode 100644 index 0000000..9daeafb --- /dev/null +++ b/.portfolio/diagrams/diagram.txt @@ -0,0 +1 @@ +test From b6743e70b866901c5592d9c36b289c73fd1620f6 Mon Sep 17 00:00:00 2001 From: Anthony <123972561+xAMA0x@users.noreply.github.com> Date: Sun, 2 Nov 2025 20:10:20 +0100 Subject: [PATCH 4/6] Add files via upload --- ...ate complex, visual diagrams with text.-2025-11-02-190905.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 .portfolio/diagrams/Mermaid Chart - Create complex, visual diagrams with text.-2025-11-02-190905.svg diff --git a/.portfolio/diagrams/Mermaid Chart - Create complex, visual diagrams with text.-2025-11-02-190905.svg b/.portfolio/diagrams/Mermaid Chart - Create complex, visual diagrams with text.-2025-11-02-190905.svg new file mode 100644 index 0000000..a5e0015 --- /dev/null +++ b/.portfolio/diagrams/Mermaid Chart - Create complex, visual diagrams with text.-2025-11-02-190905.svg @@ -0,0 +1 @@ +

Phase d'Optimisation Utilisateur

Phase de Sécurité Réseau & Intégrité

Phase de Sécurité Critique

Phase d'Initialisation

OK

KO

modifie sshd_config

Début / Exécution script

Vérif. Droits Root ?

Chargement des fonctions (source)

Arrêt - Droits insuffisants

🔐 Durcissement SSH

Redémarrer SSH

🔑 Copie Clé SSH

🔥 Installation/Config UFW

Règles (DENY + ALLOW SSH/HTTP)

🛡️ Config AIDE/Tripwire

Désactivation services inutiles

🖥️ Copie Dotfiles

Prompt PS1 avancé

Alias & Scripts personnalisés

Fin du Déploiement

\ No newline at end of file From 265b3b896115301742178b7cbf22bec5b448415e Mon Sep 17 00:00:00 2001 From: Anthony <123972561+xAMA0x@users.noreply.github.com> Date: Sun, 2 Nov 2025 20:11:11 +0100 Subject: [PATCH 5/6] Delete .portfolio/diagrams/diagram.txt --- .portfolio/diagrams/diagram.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .portfolio/diagrams/diagram.txt diff --git a/.portfolio/diagrams/diagram.txt b/.portfolio/diagrams/diagram.txt deleted file mode 100644 index 9daeafb..0000000 --- a/.portfolio/diagrams/diagram.txt +++ /dev/null @@ -1 +0,0 @@ -test From 34a00323e68e3027a3a4f3374640fd53c17aca0c Mon Sep 17 00:00:00 2001 From: Anthony <123972561+xAMA0x@users.noreply.github.com> Date: Sun, 2 Nov 2025 20:11:46 +0100 Subject: [PATCH 6/6] Change diagram path for architecture section Updated the diagram path in the portfolio markdown file. --- .portfolio/portfolio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.portfolio/portfolio.md b/.portfolio/portfolio.md index 45dcc45..c2248a1 100644 --- a/.portfolio/portfolio.md +++ b/.portfolio/portfolio.md @@ -38,7 +38,7 @@ architecture: # Diagrammes d'architecture (optionnel) diagrams: - - path: "https://raw.githubusercontent.com/xAMA0x/tp-linux-personalisation-bash/main/.portfolio/diagrams/linux-hardening-architecture.svg" + - path: "https://raw.githubusercontent.com/xAMA0x/tp-linux-personalisation-bash/main/.portfolio/diagrams/Mermaid Chart - Create complex, visual diagrams with text.-2025-11-02-190905.svg" title: "Architecture Bash (Flux de Hardening)" description: "Flux séquentiel du script d'automatisation pour le durcissement du système."