Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| elearning:workbooks:debian:11:sec:l105 [2025/12/03 16:47] – admin | elearning:workbooks:debian:11:sec:l105 [2025/12/04 09:51] (Version actuelle) – admin | ||
|---|---|---|---|
| Ligne 28: | Ligne 28: | ||
| * 1.2 - Installation | * 1.2 - Installation | ||
| * 1.3 - Utilisation | * 1.3 - Utilisation | ||
| - | * LAB #2 - Mise en place d' | + | * LAB #2 - Mise en Place d'un Chroot pour isoler un utilisateur/ |
| - | * 2.1 - Présentation | + | * LAB #3 - Mise en place d' |
| - | * 2.2 - Définitions | + | * 3.1 - Présentation |
| + | * 3.2 - Définitions | ||
| * Les Profils d' | * Les Profils d' | ||
| * Les Etats ou Modes d' | * Les Etats ou Modes d' | ||
| - | * 2.3 - Installation | + | * 3.3 - Installation |
| * Installation des Paquets | * Installation des Paquets | ||
| * Modification de GRUB | * Modification de GRUB | ||
| * Vérification de l' | * Vérification de l' | ||
| - | * LAB #3 - Travailler avec AppArmor | + | |
| - | * 3.1 - Consulter la Liste des Profils Chargés | + | * 4.1 - Consulter la Liste des Profils Chargés |
| * La Commande aa-status | * La Commande aa-status | ||
| - | * 3.2 - Passer le Mode d'un Profil de Complain à Enforce | + | * 4.2 - Passer le Mode d'un Profil de Complain à Enforce |
| * La Commande aa-complain | * La Commande aa-complain | ||
| - | * 3.3 - Passer le Mode d'un Profil d' | + | * 4.3 - Passer le Mode d'un Profil d' |
| * La Commande aa-enforce | * La Commande aa-enforce | ||
| - | * 3.4 - Désactiver et Réactiver tous les Profils | + | * 4.4 - Désactiver et Réactiver tous les Profils |
| - | * 3.5 - Créer un Profil | + | * 4.5 - Créer un Profil |
| * La Commande aa-genprof | * La Commande aa-genprof | ||
| * La Commande aa-logprof | * La Commande aa-logprof | ||
| - | * 3.6 - Supprimer un Profil | + | * 4.6 - Supprimer un Profil |
| * La Commande apparmor_parser | * La Commande apparmor_parser | ||
| * La Commande aa-remove-unknown | * La Commande aa-remove-unknown | ||
| - | * LAB #4 - Mise en place de SELinux pour sécuriser le serveur | + | * LAB #5 - Mise en place de SELinux pour sécuriser le serveur |
| - | * 4.1 - Présentation | + | * 5.1 - Présentation |
| - | * 4.2 - Définitions | + | * 5.2 - Définitions |
| * Security Context | * Security Context | ||
| * Domains et Types | * Domains et Types | ||
| Ligne 65: | Ligne 66: | ||
| * Décisions d' | * Décisions d' | ||
| * Décisions de Transition | * Décisions de Transition | ||
| - | * 4.3 - Commandes SELinux | + | * 5.3 - Commandes SELinux |
| - | * 4.4 - Les Etats de SELinux | + | * 5.4 - Les Etats de SELinux |
| - | * 4.5 - Booléens | + | * 5.5 - Booléens |
| - | * LAB #5 - Travailler avec SELinux | + | * LAB #6 - Travailler avec SELinux |
| - | * 5.1 - Copier et Déplacer des Fichiers | + | * 6.1 - Copier et Déplacer des Fichiers |
| - | * 5.2 - Vérifier les SC des Processus | + | * 6.2 - Vérifier les SC des Processus |
| - | * 5.3 - Visualiser la SC d'un Utilisateur | + | * 6.3 - Visualiser la SC d'un Utilisateur |
| - | * 5.4 - Vérifier la SC d'un fichier | + | * 6.4 - Vérifier la SC d'un fichier |
| - | * 5.5 - Troubleshooting SELinux | + | * 6.5 - Troubleshooting SELinux |
| * La commande chcon | * La commande chcon | ||
| * La commande restorecon | * La commande restorecon | ||
| - | * 5.6 - Le fichier / | + | * 6.6 - Le fichier / |
| - | * 5.7 - La commande semanage | + | * 6.7 - La commande semanage |
| - | * 5.8 - La commande audit2allow | + | * 6.8 - La commande audit2allow |
| =====System Hardening Manuel===== | =====System Hardening Manuel===== | ||
| Ligne 831: | Ligne 831: | ||
| A l' | A l' | ||
| - | |||
| <WRAP center round todo 50%> | <WRAP center round todo 50%> | ||
| Ligne 837: | Ligne 836: | ||
| </ | </ | ||
| - | =====LAB #2 - Mise en place d' | + | =====LAB #2 - Mise en Place d'un Chroot pour isoler un utilisateur/ |
| + | |||
| + | Le chrootage permet de séparer un utilisateur ou un utilisateur système ( et donc un serveur ) du système. | ||
| + | |||
| + | Sous Debian 12 le binaire chroot est installé par défaut : | ||
| + | |||
| + | < | ||
| + | root@debian12: | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | Commencez par créer un répertoire pour l' | ||
| + | |||
| + | < | ||
| + | root@debian12: | ||
| + | </ | ||
| + | |||
| + | Le binaire **/ | ||
| + | |||
| + | < | ||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | -rwxr-xr-x. 1 root root 48112 Sep 20 2022 / | ||
| + | |||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | -rwsr-sr-x. 1 root root 48112 Sep 20 2022 / | ||
| + | </ | ||
| + | |||
| + | Créez maintenant un script de connexion générique pour que l' | ||
| + | |||
| + | < | ||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | # | ||
| + | exec -c / | ||
| + | </ | ||
| + | |||
| + | Rendez ce script exécutable : | ||
| + | |||
| + | < | ||
| + | root@debian12: | ||
| + | </ | ||
| + | |||
| + | Il est maintenant nécessaire de copier toutes les commandes dont l' | ||
| + | |||
| + | < | ||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | linux-vdso.so.1 (0x00007ffd39fcf000) | ||
| + | libtinfo.so.6 => / | ||
| + | libc.so.6 => / | ||
| + | / | ||
| + | |||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | linux-vdso.so.1 (0x00007fff3db26000) | ||
| + | libselinux.so.1 => / | ||
| + | libc.so.6 => / | ||
| + | libpcre2-8.so.0 => / | ||
| + | / | ||
| + | |||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | </ | ||
| + | |||
| + | Créez maintenant le groupe chroot : | ||
| + | |||
| + | < | ||
| + | root@debian12: | ||
| + | |||
| + | root@debian12: | ||
| + | chroot: | ||
| + | </ | ||
| + | |||
| + | Créez maintenant l' | ||
| + | |||
| + | < | ||
| + | root@debian12: | ||
| + | </ | ||
| + | |||
| + | Dernièrement, | ||
| + | |||
| + | < | ||
| + | root@debian12: | ||
| + | </ | ||
| + | |||
| + | Essayez maintenant de vous connecter en tant que l' | ||
| + | |||
| + | < | ||
| + | root@debian12: | ||
| + | |||
| + | bash-5.2$ pwd | ||
| + | / | ||
| + | |||
| + | bash-5.2$ ls | ||
| + | bin lib lib64 | ||
| + | |||
| + | bash-5.2$ ls -la | ||
| + | total 20 | ||
| + | drwxr-xr-x. 5 1001 1001 4096 Dec 1 13:59 . | ||
| + | drwxr-xr-x. 5 1001 1001 4096 Dec 1 13:59 .. | ||
| + | drwxr-xr-x. 2 1001 1001 4096 Dec 1 13:56 bin | ||
| + | drwxr-xr-x. 3 1001 1001 4096 Dec 1 13:59 lib | ||
| + | drwxr-xr-x. 2 1001 1001 4096 Dec 1 13:56 lib64 | ||
| + | |||
| + | bash-5.2$ exit | ||
| + | exit | ||
| + | |||
| + | root@debian12: | ||
| + | </ | ||
| + | |||
| + | Notez que l' | ||
| + | |||
| + | =====LAB #3 - Mise en place d' | ||
| - | ====2.1 - Présentation==== | + | ====3.1 - Présentation==== |
| **AppArmor**, | **AppArmor**, | ||
| Ligne 858: | Ligne 989: | ||
| * **Conformité en matière de sécurité** : De nombreuses distributions Linux, notamment Debian et Ubuntu, utilisent AppArmor par défaut pour appliquer des politiques de sécurité. | * **Conformité en matière de sécurité** : De nombreuses distributions Linux, notamment Debian et Ubuntu, utilisent AppArmor par défaut pour appliquer des politiques de sécurité. | ||
| - | ====2.2 - Définitions==== | + | ====3.2 - Définitions==== |
| ===Les Profils d' | ===Les Profils d' | ||
| Ligne 1007: | Ligne 1138: | ||
| | **enforce** | C'est le mode par défaut. AppArmor bloque toute tentative de l' | | **enforce** | C'est le mode par défaut. AppArmor bloque toute tentative de l' | ||
| - | ====2.3 - Installation==== | + | ====3.3 - Installation==== |
| ===Installation des Paquets=== | ===Installation des Paquets=== | ||
| Ligne 1200: | Ligne 1331: | ||
| </ | </ | ||
| - | =====LAB #3 - Travailler avec AppArmor===== | + | =====LAB #4 - Travailler avec AppArmor===== |
| - | ====3.1 - Consulter la Liste des Profils Chargés==== | + | ====4.1 - Consulter la Liste des Profils Chargés==== |
| Pour consulter la liste de tous les profils Apparmor chargés pour les applications et les processus et détaille leur statut (loaded., complain mode, enforce mode), utilisez la commande **aa-status** : | Pour consulter la liste de tous les profils Apparmor chargés pour les applications et les processus et détaille leur statut (loaded., complain mode, enforce mode), utilisez la commande **aa-status** : | ||
| Ligne 1255: | Ligne 1386: | ||
| </ | </ | ||
| - | ====3.2 - Passer le Mode d'un Profil de Complain à Enforce==== | + | ====4.2 - Passer le Mode d'un Profil de Complain à Enforce==== |
| Le profil **traceroute** est actuellement en mode **complain**. Pour passer ce profil en mode **enforce**, | Le profil **traceroute** est actuellement en mode **complain**. Pour passer ce profil en mode **enforce**, | ||
| Ligne 1309: | Ligne 1440: | ||
| </ | </ | ||
| - | ====3.3 - Passer le Mode d'un Profil d' | + | ====4.3 - Passer le Mode d'un Profil d' |
| Pour repasser le profil en mode **enforce**, | Pour repasser le profil en mode **enforce**, | ||
| Ligne 1363: | Ligne 1494: | ||
| </ | </ | ||
| - | ====3.4 - Désactiver et Réactiver tous les Profils==== | + | ====4.4 - Désactiver et Réactiver tous les Profils==== |
| Pour déactiver tous les profils, utilisez la commande **aa-teardown** : | Pour déactiver tous les profils, utilisez la commande **aa-teardown** : | ||
| Ligne 1399: | Ligne 1530: | ||
| Notification emitter started in the background | Notification emitter started in the background | ||
| - | ====3.5 - Créer un Profil==== | + | ====4.5 - Créer un Profil==== |
| Créez le script **newusercheck.sh** qui a pour but d' | Créez le script **newusercheck.sh** qui a pour but d' | ||
| Ligne 1962: | Ligne 2093: | ||
| </ | </ | ||
| - | ====3.6 - Supprimer un Profil==== | + | ====4.6 - Supprimer un Profil==== |
| Afin de supprimer le profil **root.scripts.newusercheck.sh**, | Afin de supprimer le profil **root.scripts.newusercheck.sh**, | ||
| Ligne 2064: | Ligne 2195: | ||
| </ | </ | ||
| - | =====LAB #4 - Mise en place de SELinux pour sécuriser le serveur===== | + | =====LAB #5 - Mise en place de SELinux pour sécuriser le serveur===== |
| - | ====4.1 - Présentationn==== | + | ====5.1 - Présentationn==== |
| Désactivez AppArmor : | Désactivez AppArmor : | ||
| Ligne 2216: | Ligne 2347: | ||
| </ | </ | ||
| - | ====4.2 - Introducton==== | + | ====5.2 - Introducton==== |
| L' | L' | ||
| Ligne 2239: | Ligne 2370: | ||
| Chaque **//classe d' | Chaque **//classe d' | ||
| - | ====4.3 - Définitions==== | + | ====5.3 - Définitions==== |
| ===Security Context=== | ===Security Context=== | ||
| Ligne 2428: | Ligne 2559: | ||
| * de créer des **// | * de créer des **// | ||
| - | ====4.4 - Commandes SELinux==== | + | ====5.4 - Commandes SELinux==== |
| ^ Commande ^ Description ^ | ^ Commande ^ Description ^ | ||
| Ligne 2449: | Ligne 2580: | ||
| | togglesebool | Bascule la valeur d'un booléen | | | togglesebool | Bascule la valeur d'un booléen | | ||
| - | ====4.5 - Les Etats de SELinux==== | + | ====5.5 - Les Etats de SELinux==== |
| %%SELinux%% connait trois états : | %%SELinux%% connait trois états : | ||
| Ligne 2551: | Ligne 2682: | ||
| </ | </ | ||
| - | ====4.6 - Booléens==== | + | ====5.6 - Booléens==== |
| Les booléens permettent à des ensembles de règles d' | Les booléens permettent à des ensembles de règles d' | ||
| Ligne 2693: | Ligne 2824: | ||
| </ | </ | ||
| - | =====LAB #5 - Travailler avec SELinux===== | + | =====LAB #6 - Travailler avec SELinux===== |
| Afin reconstruire la politique actuelle **sans** les règles **dontaudit**, | Afin reconstruire la politique actuelle **sans** les règles **dontaudit**, | ||
| Ligne 2732: | Ligne 2863: | ||
| </ | </ | ||
| - | ====5.1 - Copier et Déplacer des Fichiers==== | + | ====6.1 - Copier et Déplacer des Fichiers==== |
| Créez deux fichiers **file1** et **file2** en tant que l' | Créez deux fichiers **file1** et **file2** en tant que l' | ||
| Ligne 2771: | Ligne 2902: | ||
| Notez que la commande **mv** maintient le **type** d' | Notez que la commande **mv** maintient le **type** d' | ||
| - | ====5.2 - Vérifier les SC des Processus==== | + | ====6.2 - Vérifier les SC des Processus==== |
| Il convient d' | Il convient d' | ||
| Ligne 2835: | Ligne 2966: | ||
| </ | </ | ||
| - | ====5.3 - Visualiser la SC d'un Utilisateur==== | + | ====6.3 - Visualiser la SC d'un Utilisateur==== |
| Utilisez l' | Utilisez l' | ||
| Ligne 2854: | Ligne 2985: | ||
| </ | </ | ||
| - | ====5.4 - Vérifier la SC d'un fichier==== | + | ====6.4 - Vérifier la SC d'un fichier==== |
| Il convient d' | Il convient d' | ||
| Ligne 2885: | Ligne 3016: | ||
| </ | </ | ||
| - | ====5.5 - Troubleshooting SELinux==== | + | ====6.5 - Troubleshooting SELinux==== |
| L' | L' | ||
| Ligne 3186: | Ligne 3317: | ||
| </ | </ | ||
| - | ====5.7 - La commande semanage==== | + | ====6.7 - La commande semanage==== |
| Pour illustrer l' | Pour illustrer l' | ||
| Ligne 3256: | Ligne 3387: | ||
| </ | </ | ||
| - | ====5.8 - La commande audit2allow==== | + | ====6.8 - La commande audit2allow==== |
| La création d'un module de politique personnalisé se fait en utilisant la commande **audit2allow**. L' | La création d'un module de politique personnalisé se fait en utilisant la commande **audit2allow**. L' | ||