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 | ||
130netfilter:20-iptables [le 31/03/2025 à 12:43] – [Concernant la délégation 2a01:e0a:875:b1d2::/64] prof | 130netfilter:20-iptables [le 04/04/2025 à 07:00] (Version actuelle) – [Synthèse] prof | ||
---|---|---|---|
Ligne 65: | Ligne 65: | ||
ip6tables -A INPUT -i enp1s0 -m conntrack --ctstate ESTABLISHED, | ip6tables -A INPUT -i enp1s0 -m conntrack --ctstate ESTABLISHED, | ||
Cependant, il faut ajouter icmp pour les annonces et découvertes des voisins, aussi bien du côté orange que du côté vert: | Cependant, il faut ajouter icmp pour les annonces et découvertes des voisins, aussi bien du côté orange que du côté vert: | ||
- | ip6tables -A INPUT -p icmp -j ACCEPT | + | ip6tables -A INPUT -p ipv6-icmp -j ACCEPT |
En ce qui concerne les adresses de lien local, nous n' | En ce qui concerne les adresses de lien local, nous n' | ||
ip6tables -A INPUT -s fe80::/64 -j ACCEPT | ip6tables -A INPUT -s fe80::/64 -j ACCEPT | ||
Ligne 80: | Ligne 80: | ||
ip6tables -A FORWARD -i enp1s0 -m conntrack --ctstate NEW -j REJECT | ip6tables -A FORWARD -i enp1s0 -m conntrack --ctstate NEW -j REJECT | ||
ip6tables -A FORWARD -i enp1s0 -m conntrack --ctstate ESTABLISHED, | ip6tables -A FORWARD -i enp1s0 -m conntrack --ctstate ESTABLISHED, | ||
- | Ainsi comme pour IPv4 seules les connexions initiées depuis l' | + | Ainsi comme pour IPv4 seules les connexions initiées depuis l' |
Ici en revanche, il n'est pas nécessaire de faire du marquage d' | Ici en revanche, il n'est pas nécessaire de faire du marquage d' | ||
Il n'y a à priori plus rien à faire en fonction du cahier des charges initial | Il n'y a à priori plus rien à faire en fonction du cahier des charges initial | ||
- | ===== Synthèse | + | ===== Vérifications |
- | Nous venons de voir les règles les plus souvent utilisées. Nous en verrons d' | + | ==== Pour IPv4 ==== |
- | Un client d' | + | Lors du démarrage d'un client du LAN vert, Nous pouvons vérifier sa configuration IPv4: |
+ | < | ||
+ | <b>ip -4 addr</ | ||
+ | 1: lo: < | ||
+ | inet 127.0.0.1/8 scope host lo | ||
+ | | ||
+ | 2: enp1s0: < | ||
+ | inet <span class=" | ||
+ | | ||
+ | |||
+ | <b>ip -4 route </ | ||
+ | <span class=" | ||
+ | 192.168.61.0/ | ||
+ | </ | ||
+ | La configuration est correcte, preuve que le dialogue avec DHCP se passe bien. | ||
+ | < | ||
+ | < | ||
+ | |||
+ | <span class=" | ||
+ | < | ||
+ | Address: 192.168.61.1# | ||
+ | Aliases: | ||
+ | |||
+ | <span class=" | ||
+ | www.debian.org has address 130.89.148.77 | ||
+ | www.debian.org has IPv6 address 2001: | ||
+ | www.debian.org has IPv6 address 2001: | ||
+ | </ | ||
+ | |||
+ | Le client peut interroger le DNS 192.168.61.1 et recevoir la réponse. | ||
+ | < | ||
+ | < | ||
+ | Trying 192.168.61.1... | ||
+ | ... | ||
+ | <span class=" | ||
+ | </ | ||
+ | Car la cible DROP réagit ainsi: Elle jette le paquet dans un puits sans fond, sans renvoyer de notification à la source. Telnet n'est donc pas accessible à cette station. | ||
+ | |||
+ | Un client d' | ||
< | < | ||
< | < | ||
Ligne 99: | Ligne 137: | ||
rtt min/ | rtt min/ | ||
</ | </ | ||
- | Donc le routage masqué fonctionne et les clients verts (192.168.61.0/24) accèdent | + | Le routage masqué fonctionne et les clients verts accèdent bien à l' |
+ | |||
+ | Pour tester la solidité du serveur depuis l' | ||
+ | |||
+ | Voici le résultat: | ||
+ | < | ||
+ | < | ||
+ | |||
+ | Starting Nmap 7.93 ( https:// | ||
+ | Nmap scan report for 192.168.60.200 | ||
+ | Host is up (0.00017s latency). | ||
+ | <span class=" | ||
+ | <span class=" | ||
+ | MAC Address: 52: | ||
+ | |||
+ | Nmap done: 1 IP address (1 host up) scanned in 42.29 seconds | ||
+ | </ | ||
+ | Nmap n'a rien trouvé d' | ||
+ | |||
+ | ==== Et pour IPv6 ==== | ||
+ | |||
+ | < | ||
+ | <b>ip -6 addr ls</ | ||
+ | 1: lo: < | ||
+ | inet6 ::1/128 scope host noprefixroute | ||
+ | | ||
+ | 2: enp1s0: < | ||
+ | inet6 <span class=" | ||
+ | | ||
+ | inet6 <span class=" | ||
+ | | ||
+ | |||
+ | <b>ip -6 route ls</ | ||
+ | 2a01: | ||
+ | fe80::/64 dev enp1s0 proto kernel metric 256 pref medium | ||
+ | <span class=" | ||
+ | </ | ||
+ | Les adresses sont correctes, la route par défaut est correcte aussi. | ||
+ | |||
+ | Depuis la station dans le LAN vert il faut vérifier qu'une nouvelle connexion IPv6 peut en sortir et que les réponses peuvent entrer en chargeant par exemple la page html par défaut de [2001: | ||
+ | < | ||
+ | < | ||
+ | |||
+ | --2025-03-31 18: | ||
+ | Connexion à [2001: | ||
+ | requête HTTP transmise, en attente de la réponse… 200 OK | ||
+ | Taille : 16 [text/ | ||
+ | Sauvegarde en : « index.html » | ||
+ | |||
+ | index.html | ||
+ | |||
+ | <span class=" | ||
+ | </ | ||
+ | Tout va bien mais n' | ||
+ | |||
+ | |||
+ | Essayons maintenant d' | ||
+ | < | ||
+ | < | ||
+ | |||
+ | <span class=" | ||
+ | </ | ||
+ | |||
+ | Le port 22 est bien ouvert | ||
+ | < | ||
+ | < | ||
+ | |||
+ | <span class=" | ||
+ | </ | ||
+ | Comme c' | ||
+ | |||
+ | Enfin, nous pouvons essayer la même chose sur le serveur qui a, rappelons-le, | ||
+ | < | ||
+ | < | ||
+ | <span class=" | ||
+ | </ | ||
+ | Ici, c'est le coup du DROP par défaut qui jette sans l’annoncer. | ||
+ | |||
+ | Le contrat est donc rempli, les protections demandées sont opérationnelles. | ||
+ | ===== Synthèse ===== | ||
+ | La syntaxe Iptables, une fois un peu rodée, devient assez facile à lire et même à écrire du moment que l'on sait exactement ce que l'on veut faire avec. | ||
+ | |||
+ | Pour que ces règles persistent au prochain redémarrage, | ||
+ | < | ||
+ | < | ||
+ | # Generated by iptables-save v1.8.9 (nf_tables) on Mon Mar 31 19:57:09 2025 | ||
+ | *filter | ||
+ | :INPUT DROP [32857: | ||
+ | :FORWARD ACCEPT [63:4124] | ||
+ | :OUTPUT ACCEPT [17257: | ||
+ | -A INPUT -i enp7s0 -p udp -m multiport --dports 53,67 -j ACCEPT | ||
+ | -A INPUT -s 192.168.61.254/ | ||
+ | -A INPUT -i enp1s0 -m conntrack --ctstate RELATED, | ||
+ | -A INPUT -p icmp -j ACCEPT | ||
+ | -A FORWARD -i enp1s0 -o enp7s0 -m conntrack --ctstate RELATED, | ||
+ | COMMIT | ||
+ | # Completed on Mon Mar 31 19:57:09 2025 | ||
+ | # Generated by iptables-save v1.8.9 (nf_tables) on Mon Mar 31 19:57:09 2025 | ||
+ | *nat | ||
+ | :PREROUTING ACCEPT [21308: | ||
+ | :INPUT ACCEPT [95: | ||
+ | :OUTPUT ACCEPT [4298: | ||
+ | : | ||
+ | -A POSTROUTING -o enp1s0 -j MASQUERADE | ||
+ | COMMIT | ||
+ | # Completed on Mon Mar 31 19:57:09 2025 | ||
+ | |||
+ | < | ||
+ | # Generated by ip6tables-save v1.8.9 (nf_tables) on Mon Mar 31 19:57:26 2025 | ||
+ | *filter | ||
+ | :INPUT DROP [17:1416] | ||
+ | :FORWARD ACCEPT [659: | ||
+ | :OUTPUT ACCEPT [2064: | ||
+ | -A INPUT -p icmp -j ACCEPT | ||
+ | -A INPUT -p ipv6-icmp -j ACCEPT | ||
+ | -A INPUT -i enp1s0 -m conntrack --ctstate RELATED, | ||
+ | -A INPUT -s fe80::/64 -j ACCEPT | ||
+ | -A INPUT -p udp -m udp --dport 53 -j ACCEPT | ||
+ | -A FORWARD -i enp1s0 -m conntrack --ctstate NEW -j REJECT --reject-with icmp6-port-unreachable | ||
+ | -A FORWARD -i enp1s0 -m conntrack --ctstate NEW -j REJECT --reject-with icmp6-port-unreachable | ||
+ | -A FORWARD -i enp1s0 -m conntrack --ctstate RELATED, | ||
+ | COMMIT | ||
+ | # Completed on Mon Mar 31 19:57:26 2025 | ||
+ | </ | ||
+ | <note important> | ||
+ | ===== Conclusion ===== | ||
+ | Nous n' | ||
+ | |||
+ | Il faut savoir que ce qui est fait au niveau IP peut se faire aussi au niveau Ethernet avec les outils '' | ||
+ | |||
+ | Et pour finir de donner le vertige, il existe enfin l' |
IPtables: Dernière modification le: 31/03/2025 à 12:43 par prof