0 Votes

Code source wiki de Durcissement

Version 2.1 par john le 2026/09/20 19:20

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