Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
070-experiencesipv6:040-firewall_debase [le 17/03/2025 à 08:13] – [Netfilter et IPtables] prof | 070-experiencesipv6:040-firewall_debase [le 17/03/2025 à 14:21] (Version actuelle) – [Protéger la délégation] prof | ||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
Le problème, c'est que rien n' | Le problème, c'est que rien n' | ||
- | ==== Netfilter et IPtables | + | ==== Netfilter et Nftables |
Juste un mot pour donner du courage. | Juste un mot pour donner du courage. | ||
* [[https:// | * [[https:// | ||
- | * IPtables, c'est l' | + | * IPtables, c'est l' |
- | * Avec le temps et l' | + | |
* Nftables apparaît comme le successeur d' | * Nftables apparaît comme le successeur d' | ||
+ | Passer d'un système de gestion des règles à l' | ||
- | Seulement voilà, Nftables, n' | + | Ici, nous allons faire de la résistance, avec iptables, qu'il va falloir installer: |
+ | < | ||
+ | < | ||
+ | |||
+ | ... | ||
+ | Réception de :1 http:// | ||
+ | Réception de :2 http:// | ||
+ | Réception de :3 http:// | ||
+ | Réception de :4 http:// | ||
+ | .... | ||
+ | Paramétrage de iptables (1.8.9-2) ... | ||
+ | update-alternatives: | ||
+ | update-alternatives: | ||
+ | <span class=" | ||
+ | update-alternatives: | ||
+ | update-alternatives: | ||
+ | update-alternatives: | ||
+ | ... | ||
+ | </ | ||
+ | On sent bien que iptables va être traduit en nftables au passage... | ||
+ | |||
+ | ==== Principes de base ==== | ||
+ | Il y a deux façons de concevoir un pare-feu: | ||
+ | - Tout interdire, sauf ce dont on a besoin; | ||
+ | - Tout autoriser sauf ce dont on n'a pas besoin. | ||
+ | Sur une installation similaire à notre maquette, nous pouvons effectuer un permier niveau de filtrage sur demoserver: | ||
+ | * pour sa protection personnelle; | ||
+ | * pour la protection des nœuds présents dans la délégation qui est derrière lui. | ||
+ | Nous pouvons également ajouter des filtrages plus personnels sur chaque hôte de la délégation. Le but ici est de faire juste un minimum, en partant du principe | ||
+ | ==== Protéger demoserver ==== | ||
+ | Ce qui suit reste spécifique à IPv6. | ||
+ | |||
+ | Du fait que cet hôte n'a rien à partager avec le monde extérieur, aucune requête venant de dehors ne devrait passer. en mode TCP, tous les paquets contenant un simple [SYN] devraient être rejetés. | ||
+ | |||
+ | En revanche, demoserver va avoir des requêtes | ||
+ | En UDP, il n'y a pas de SYN, mais Netfilter va bien se débrouiller. | ||
+ | '' | ||
+ | Nous commençons par autoriser tout ce qui peut rentrer par enp7s0, l'interface locale: | ||
+ | ip6tables -A INPUT -i enp7s0 -j ACCEPT | ||
+ | ip6tables -A INPUT -i lo -j ACCEPT | ||
+ | Sur enp1s0, nous devons laisser entrer toutes les adresses de type «lien-local» et, concernant le suivi de connexion, toutes les connexions établies et celles qui y sont attachées: | ||
+ | ip6tables -A INPUT -i enp1s0 -s FE80::/10 -j ACCEPT | ||
+ | ip6tables -A INPUT -i enp1s0 -m state --state RELATED, | ||
+ | Éventuellement, | ||
+ | ip6tables -A INPUT -p icmp -j ACCEPT | ||
+ | Et seulement dernier, la politique par défaut: | ||
+ | ip6tables -P INPUT DROP | ||
+ | Pour vérifier certaines choses, depuis un nœud capable d' | ||
+ | 2a01: | ||
+ | fe80:: | ||
+ | Testons un ping: | ||
+ | < | ||
+ | <span class=" | ||
+ | |||
+ | PING fe80:: | ||
+ | 64 bytes from fe80:: | ||
+ | |||
+ | --- fe80:: | ||
+ | <b>1 packets transmitted, 1 received, 0% packet loss</ | ||
+ | rtt min/ | ||
+ | |||
+ | <span class=" | ||
+ | |||
+ | PING 2a01: | ||
+ | From 2a01: | ||
+ | |||
+ | --- 2a01: | ||
+ | <b>1 packets transmitted, | ||
+ | |||
+ | </ | ||
+ | Formidable, ça marche comme prévu! | ||
+ | ==== Protéger la délégation ==== | ||
+ | Au minimum, empêcher | ||
+ | ip6tables -A FORWARD -i enp1s0 -m state --state RELATED, | ||
+ | Accepter toutes les connexions sortantes | ||
+ | ip6tables -A FORWARD -i enp7s0 -j ACCEPT | ||
+ | Et Par défaut: | ||
+ | ip6tables -P FORWARD | ||
+ | Vérifier que tout fonctionne depuis un client: | ||
+ | < | ||
+ | < | ||
+ | |||
+ | PING www.debian.org(static-mirror-grnet-01.debian.org (2001: | ||
+ | 64 bytes from static-mirror-grnet-01.debian.org (2001: | ||
+ | |||
+ | --- www.debian.org ping statistics --- | ||
+ | <b>1 packets transmitted, 1 received, 0% packet loss</ | ||
+ | </ | ||
+ | mais qu'un ping venant de l' | ||
+ | < | ||
+ | < | ||
+ | |||
+ | PING 2a01: | ||
+ | |||
+ | --- 2a01: | ||
+ | <b>4 packets transmitted, | ||
+ | </ | ||
+ | ==== Bilan ==== | ||
+ | Nous avons maintenant toute possibilité d' | ||
Couverture de survie: Dernière modification le: 17/03/2025 à 08:13 par prof