0 Votes

Code source wiki de Durcissement

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

Afficher les derniers auteurs
1 = Durcissement de Linux =
2
3 {{toc/}}
4
5 == Présentation ==
6
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
11 ----
12
13 == Objectifs du durcissement ==
14
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
20 ----
21
22 == 1. Nettoyer le système ==
23
24 * Supprimer les services inutiles :
25 {{code language="bash"}} systemctl list-units --type=service
26 sudo systemctl disable nom_du_service
27 {{/code}}
28
29 * Supprimer les paquets superflus :
30 {{code language="bash"}} sudo apt autoremove
31 # ou
32 sudo dnf remove paquet
33 {{/code}}
34
35 ----
36
37 == 2. Mettre à jour régulièrement ==
38
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
49 ----
50
51 == 3. Sécuriser les comptes ==
52
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
58 ----
59
60 == 4. Configurer un pare-feu ==
61
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 :
72 {{code language="bash"}}sudo nft add table inet filter
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
77 sudo nft add rule inet filter input drop{{/code}}
78
79 ----
80
81 == 5. Configurations sensibles ==
82
83 * `/etc/sysctl.conf` pour le kernel :
84 {{code language="bash"}} net.ipv4.ip_forward = 0
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
94 ----
95
96 == 6. Sécuriser les permissions et services ==
97
98 * Vérifier les **fichiers SUID** :
99 {{code language="bash"}} find / -perm -4000 -type f 2>/dev/null
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
105 ----
106
107 == 7. Surveillance et audit ==
108
109 * Installer un IDS comme `AIDE`, `OSSEC`, ou `Fail2Ban`
110 * Auditer les connexions SSH, sudo, root :
111 {{code language="bash"}} journalctl -u ssh
112 sudo lastlog
113 {{/code}}
114
115 ----
116
117 == 8. Autres bonnes pratiques ==
118
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
124 ----
125
126 == Liens utiles ==
127
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
132 ----
133
134 == Liens internes ==
135
136 * [[Retour à la section Tutos Linux>>Main.TutosLinux.WebHome]]