Code source wiki de Réseau et Sécurité
Modifié par john le 2026/09/20 19:49
Masquer les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
![]() |
1.1 | 1 | {{toc/}} |
| 2 | |||
| 3 | Cette section regroupe mes notes et scripts autour de la configuration réseau et du durcissement de la sécurité sous Linux. On y trouve des astuces pratiques, des configurations types, et des outils que j’utilise pour protéger mes machines, superviser les accès, et limiter les failles. | ||
| 4 | |||
| 5 | == nftables : pare-feu moderne == | ||
| 6 | |||
![]() |
2.1 | 7 | Remplaçant d’iptables, ##nftables## permet de gérer un pare-feu de manière claire et structurée. |
![]() |
1.1 | 8 | |
| 9 | === Exemple de configuration minimale === | ||
| 10 | |||
| 11 | {{code language="bash"}} | ||
| 12 | sudo nft add table inet filter | ||
| 13 | sudo nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; } | ||
| 14 | sudo nft add rule inet filter input ct state established,related accept | ||
| 15 | sudo nft add rule inet filter input iifname lo accept | ||
| 16 | sudo nft add rule inet filter input tcp dport ssh accept | ||
| 17 | {{/code}} | ||
| 18 | |||
| 19 | Cela permet de : | ||
| 20 | |||
![]() |
2.1 | 21 | * Bloquer tout par défaut |
| 22 | * Autoriser les connexions déjà établies | ||
| 23 | * Permettre l'accès SSH | ||
| 24 | |||
![]() |
1.1 | 25 | Pour lister les règles : |
| 26 | |||
![]() |
2.1 | 27 | {{code language="bash"}} |
| 28 | sudo nft list ruleset | ||
| 29 | {{/code}} | ||
| 30 | |||
| 31 | {{warning}} | ||
| 32 | Ces règles ne survivent pas au redémarrage. Les enregistrer avec ##sudo nft list ruleset > /etc/nftables.conf## et activer ##nftables.service##. Créer la chaîne avec ##policy drop## avant d'autoriser SSH coupe la session en cours : préparer toutes les règles dans un fichier, puis les appliquer en une fois. | ||
| 33 | {{/warning}} | ||
| 34 | |||
| 35 | {{info}} | ||
| 36 | Docker crée et gère ses propres règles de pare-feu : les conteneurs dont un port est publié restent joignables même si la politique par défaut est ##drop##. Pour ne pas exposer un service, ne pas publier son port plutôt que compter sur le pare-feu. | ||
| 37 | {{/info}} | ||
| 38 | |||
![]() |
1.1 | 39 | == dnsmasq : serveur DNS/DHCP local == |
| 40 | |||
![]() |
2.1 | 41 | ##dnsmasq## est un petit démon pratique pour créer un serveur DNS et DHCP léger. |
![]() |
1.1 | 42 | |
![]() |
2.1 | 43 | === Exemple de configuration ##/etc/dnsmasq.conf## === |
![]() |
1.1 | 44 | |
| 45 | {{code language="text"}} | ||
| 46 | interface=eth0 | ||
| 47 | dhcp-range=192.168.1.100,192.168.1.150,12h | ||
| 48 | address=/lan/192.168.1.1 | ||
| 49 | log-queries | ||
| 50 | log-dhcp | ||
| 51 | {{/code}} | ||
| 52 | |||
| 53 | Il est particulièrement utile dans des environnements sans routeur dédié ou pour isoler un réseau de test. | ||
| 54 | |||
| 55 | == FIDO2 : authentification sans mot de passe == | ||
| 56 | |||
| 57 | L’utilisation d’une clé FIDO2 permet de renforcer considérablement l’authentification sans recourir aux mots de passe. | ||
| 58 | |||
| 59 | === Mise en place sous Linux === | ||
| 60 | |||
![]() |
2.1 | 61 | Installer ##libpam-u2f## : |
![]() |
1.1 | 62 | |
![]() |
2.1 | 63 | {{code language="bash"}} |
| 64 | sudo apt install libpam-u2f | ||
| 65 | {{/code}} | ||
![]() |
1.1 | 66 | |
![]() |
2.1 | 67 | Enregistrer la clé : |
![]() |
1.1 | 68 | |
![]() |
2.1 | 69 | {{code language="bash"}} |
| 70 | mkdir -p ~~/.config | ||
| 71 | pamu2fcfg > ~~/.config/u2f_keys | ||
| 72 | {{/code}} | ||
![]() |
1.1 | 73 | |
![]() |
2.1 | 74 | Modifier ##/etc/pam.d/sudo## : |
| 75 | |||
| 76 | {{code language="text"}} | ||
| 77 | auth required pam_u2f.so | ||
| 78 | {{/code}} | ||
| 79 | |||
| 80 | Certaines clés permettent une authentification sans code PIN si configurées en « discouraged verification ». Attention toutefois à l'équilibre sécurité/confort. | ||
| 81 | |||
| 82 | {{warning}} | ||
| 83 | Tester dans un second terminal resté ouvert en root avant de fermer la session : une erreur dans un fichier PAM peut rendre ##sudo## inutilisable. Enregistrer aussi une seconde clé de secours, ou utiliser ##auth sufficient## plutôt que ##required## le temps des essais. | ||
| 84 | {{/warning}} | ||
| 85 | |||
![]() |
1.1 | 86 | == Autres idées à approfondir == |
| 87 | |||
![]() |
2.1 | 88 | * Utilisation de fail2ban pour bloquer les connexions SSH abusives |
| 89 | * Surveillance réseau avec ##iftop##, ##nethogs##, ou ##bmon## | ||
| 90 | * Partage de connexion avec ##nft## | ||
| 91 | * Protection système via ##sysctl## : désactiver IP forwarding, limiter ICMP, etc. | ||
![]() |
1.1 | 92 | |
| 93 | == Liens utiles == | ||
| 94 | |||
![]() |
2.1 | 95 | * [[wiki.nftables.org>>https://wiki.nftables.org]] |
| 96 | * [[Documentation dnsmasq>>https://thekelleys.org.uk/dnsmasq/doc.html]] | ||
| 97 | * [[Guide FIDO2 pam_u2f>>https://developers.yubico.com/pam-u2f/]] | ||
![]() |
1.1 | 98 | |
| 99 | == Liens internes == | ||
| 100 | |||
| 101 | * [[Retour à l’accueil>>doc:Wiki Batcave John.WebHome]] | ||
![]() |
2.1 | 102 | * [[Retour à Tutos Linux>>doc:Wiki Batcave John.TutosLinux.WebHome]] |
![]() |
1.1 | 103 | * [[Fail2ban>>doc:.Fail2ban.WebHome]] |
![]() |
2.1 | 104 | * [[Durcissement Linux>>doc:Wiki Batcave John.TutosLinux.Durcissement.WebHome]] |
| 105 | |||
| 106 | ---- | ||
| 107 | |||
| 108 | == Toutes les pages == | ||
| 109 | |||
| 110 | {{children/}} |
