0 Votes

Code source wiki de Durcissement

Modifié par john le 2025/05/25 11:16

Masquer les derniers auteurs
john 1.4 1 = Durcissement de Linux =
2
3 {{toc/}}
4
5 == Présentation ==
john 1.6 6
john 1.4 7 Le **durcissement** (ou *hardening*) d’une machine Linux consiste à **renforcer sa sécurité** pour limiter les risques d’exploitation, d’intrusion ou d’erreurs critiques.
8
9 C’est une démarche proactive, indispensable pour les systèmes exposés en réseau ou manipulés par plusieurs utilisateurs.
10
john 1.8 11 ----
john 1.4 12
13 == Objectifs du durcissement ==
john 1.6 14
john 1.4 15 * Réduire la **surface d’attaque**
16 * Protéger les **données et services critiques**
17 * Prévenir les **exécutions non autorisées**
18 * **Isoler** les composants sensibles
19
john 1.8 20 ----
john 1.4 21
22 == 1. Nettoyer le système ==
john 1.6 23
john 1.4 24 * Supprimer les services inutiles :
john 1.6 25 {{code language="bash"}} systemctl list-units --type=service
john 1.4 26 sudo systemctl disable nom_du_service
27 {{/code}}
28
29 * Supprimer les paquets superflus :
john 1.6 30 {{code language="bash"}} sudo apt autoremove
john 1.4 31 # ou
32 sudo dnf remove paquet
33 {{/code}}
34
john 1.8 35 ----
john 1.4 36
37 == 2. Mettre à jour régulièrement ==
john 1.6 38
john 1.4 39 Les mises à jour corrigent des failles de sécurité :
40
41 {{code language="bash"}}
42 sudo apt update && sudo apt upgrade
43 # ou
44 sudo dnf update
45 {{/code}}
46
47 Automatiser avec `unattended-upgrades` (Debian/Ubuntu).
48
john 1.8 49 ----
john 1.4 50
51 == 3. Sécuriser les comptes ==
john 1.6 52
john 1.4 53 * Désactiver l’accès root en SSH
54 * Utiliser `sudo` au lieu de se connecter en root
55 * Supprimer les utilisateurs inutilisés
56 * Utiliser des mots de passe robustes
57
john 1.8 58 ----
john 1.4 59
60 == 4. Configurer un pare-feu ==
john 1.6 61
john 1.4 62 Utiliser `ufw` ou `nftables` :
63
64 {{code language="bash"}}
65 sudo ufw default deny incoming
66 sudo ufw default allow outgoing
67 sudo ufw allow ssh
68 sudo ufw enable
69 {{/code}}
70
71 Ou pour un contrôle plus fin :
john 1.6 72 {{code language="bash"}}sudo nft add table inet filter
john 1.4 73 sudo nft add chain inet filter input { type filter hook input priority 0 \; }
74 sudo nft add rule inet filter input ct state established,related accept
75 sudo nft add rule inet filter input iifname lo accept
76 sudo nft add rule inet filter input tcp dport ssh accept
john 1.6 77 sudo nft add rule inet filter input drop{{/code}}
john 1.4 78
john 1.8 79 ----
john 1.4 80
81 == 5. Configurations sensibles ==
john 1.6 82
john 1.4 83 * `/etc/sysctl.conf` pour le kernel :
john 1.6 84 {{code language="bash"}} net.ipv4.ip_forward = 0
john 1.4 85 net.ipv4.conf.all.accept_source_route = 0
86 {{/code}}
87
88 * `/etc/login.defs` pour la politique des mots de passe
89
90 * `/etc/ssh/sshd_config` :
91 - Désactiver root : `PermitRootLogin no`
92 - Forcer les clés : `PasswordAuthentication no`
93
john 1.8 94 ----
john 1.4 95
96 == 6. Sécuriser les permissions et services ==
john 1.6 97
john 1.4 98 * Vérifier les **fichiers SUID** :
john 1.6 99 {{code language="bash"}} find / -perm -4000 -type f 2>/dev/null
john 1.4 100 {{/code}}
101
102 * Utiliser `chmod`, `chown`, `ls -l` pour ajuster les permissions
103 * Mettre en place `AppArmor` ou `SELinux` pour renforcer l’isolation
104
john 1.8 105 ----
john 1.4 106
107 == 7. Surveillance et audit ==
john 1.6 108
john 1.4 109 * Installer un IDS comme `AIDE`, `OSSEC`, ou `Fail2Ban`
110 * Auditer les connexions SSH, sudo, root :
john 1.6 111 {{code language="bash"}} journalctl -u ssh
john 1.4 112 sudo lastlog
113 {{/code}}
114
john 1.8 115 ----
john 1.4 116
117 == 8. Autres bonnes pratiques ==
john 1.6 118
john 1.4 119 * Désactiver les modules inutiles (`/etc/modprobe.d/blacklist.conf`)
120 * Monter `/tmp` et `/var/tmp` avec les options `noexec,nosuid,nodev`
121 * Utiliser des partitions séparées : `/home`, `/var`, `/srv`, etc.
122 * Activer la journalisation (`rsyslog`, `logrotate`)
123
john 1.8 124 ----
john 1.4 125
126 == Liens utiles ==
john 1.6 127
john 1.4 128 * [CIS Linux Benchmark](https://cisecurity.org)
129 * [Debian Securing Manual](https://debian-handbook.info)
130 * [ArchWiki: Hardening](https://wiki.archlinux.org/title/Security)
131
john 1.8 132 ----
john 1.4 133
134 == Liens internes ==
135
john 1.16 136 * [[Retour à la section Tutos Linux>>Main.TutosLinux.WebHome]]