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