0 Votes

Code source wiki de Durcissement

Modifié par john le 2026/04/16 13:58

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