[articles] ajout du lien vers le schémas du parcours des paquets réseau
dans netfilter
This commit is contained in:
		
							parent
							
								
									2aacdec545
								
							
						
					
					
						commit
						54ba7b6de4
					
				
					 2 changed files with 9 additions and 5 deletions
				
			
		| 
						 | 
					@ -42,13 +42,13 @@ iptables -t nat -o tun0 -A POSTROUTING -j MASQUERADE
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## nftables
 | 
					## nftables
 | 
				
			||||||
On trouve un peu de documentation sur le net, en particulier sur le [wiki de nftables](http://wiki.nftables.org/wiki-nftables/index.php/Main_Page), ainsi que celui de [gentoo](http://wiki.gentoo.org/wiki/Nftables) et d'[archlinux](https://wiki.archlinux.org/index.php/Nftables)
 | 
					On trouve un peu de documentation sur le net, en particulier sur le [wiki de nftables][1], ainsi que celui de [gentoo][2] et d'[archlinux][3]
 | 
				
			||||||
Parmis les changements notables dès que l'on commence à se documenter, il y a le fait que les tables et les chaînes classiques d'iptables ne sont pas créées par défaut.
 | 
					Parmis les changements notables dès que l'on commence à se documenter, il y a le fait que les tables et les chaînes classiques d'iptables ne sont pas créées par défaut.
 | 
				
			||||||
Il faut donc les déclarer, et comme il n'y a pas de chaînes, il n'y a pas non plus de politique par défaut.
 | 
					Il faut donc les déclarer, et comme il n'y a pas de chaînes, il n'y a pas non plus de politique par défaut.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
La masquarade est un cas particulier de source NAT, l'adresse source n'est pas définie explicitement dans la règle. C'est l'adresse de l'interface de sortie qui va remplacer à la volée celle d'origine des paquets.
 | 
					La masquarade est un cas particulier de source NAT, l'adresse source n'est pas définie explicitement dans la règle. C'est l'adresse de l'interface de sortie qui va remplacer à la volée celle d'origine des paquets.
 | 
				
			||||||
Le choix est donc fait une fois la décision de routage prise, et s'opère donc en `postrouting`.
 | 
					Le choix est donc fait une fois la décision de routage prise, et s'opère donc en `postrouting`.
 | 
				
			||||||
[TODO lien vers le parcours au travers de netfilter]
 | 
					Pour rappel, voici le schémas du [parcours d'un paquet réseau au travers de netfilter][4].
 | 
				
			||||||
Comme les chaînes n'existent pas par défault, il faut aussi rajouter celle qui va venir s'accrocher au hook `prerouting` de netfilter, pour que le remplacement inverse soit effectué lorsque les paquets reviendront.
 | 
					Comme les chaînes n'existent pas par défault, il faut aussi rajouter celle qui va venir s'accrocher au hook `prerouting` de netfilter, pour que le remplacement inverse soit effectué lorsque les paquets reviendront.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Voici donc ce que ça donne :
 | 
					Voici donc ce que ça donne :
 | 
				
			||||||
| 
						 | 
					@ -91,4 +91,7 @@ echo "1" > /proc/sys/net/ipv4/ip_forward
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[1]: http://wiki.nftables.org/wiki-nftables/index.php/Main_Page
 | 
				
			||||||
 | 
					[2]: http://wiki.gentoo.org/wiki/Nftables
 | 
				
			||||||
 | 
					[3]: https://wiki.archlinux.org/index.php/Nftables
 | 
				
			||||||
 | 
					[4]: http://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ Une fois ces paquets marqués, avec la marque /0x9/, ils vont être interceptés
 | 
				
			||||||
NOTE: Ici, j'utilise la chaîne **OUTPUT**, parce que la connexion est initialisée depuis la machine. Pour appliquer la marque aux paquets provenant d'une connexion routée par cette machine, il faut utiliser la chaîne **PREROUTING** (Voir plus bas).
 | 
					NOTE: Ici, j'utilise la chaîne **OUTPUT**, parce que la connexion est initialisée depuis la machine. Pour appliquer la marque aux paquets provenant d'une connexion routée par cette machine, il faut utiliser la chaîne **PREROUTING** (Voir plus bas).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Les tables de routage du noyau linux
 | 
					# Les tables de routage du noyau linux
 | 
				
			||||||
En plus de la table de routage principale que l'on obtient avec la commande "ip route", le noyau linux comporte d'autres tables. Je ne les décrirai pas en détail ici, le [LARTC][2] le fait déjà. 
 | 
					En plus de la table de routage principale que l'on obtient avec la commande "ip route", le noyau linux comporte d'autres tables. Je ne les décrirai pas en détail ici, le [LARTC][2] le fait déjà (et en français, [ici][3]). 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Sachez juste qu'il est possible de rajouter des tables, en plus de la table "main", et que le fichier `/etc/iproute2/rt_tables` permet de nommer ces tables pour rendre plus explicite les n°. Vous verez d'ailleurs que ce fichier contient déjà des alias vers les tables par défaut.
 | 
					Sachez juste qu'il est possible de rajouter des tables, en plus de la table "main", et que le fichier `/etc/iproute2/rt_tables` permet de nommer ces tables pour rendre plus explicite les n°. Vous verez d'ailleurs que ce fichier contient déjà des alias vers les tables par défaut.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,7 +54,7 @@ NOTE: Les marques sont locales à la machine et ne sont pas transmises sur le r
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Sur la passerelle VPN
 | 
					## Sur la passerelle VPN
 | 
				
			||||||
Cette passerelle me sert aussi de point d'accès wifi, avec la passerelle par défaut normale.
 | 
					Cette passerelle me sert aussi de point d'accès wifi, avec la passerelle par défaut normale.
 | 
				
			||||||
J'ai donc ajouté le même script en modifiant l'IP de destination pour forcer ce type de trafic à passer par le VPN, une adresse en 10.0.0.1 chez moi. Dans la chaine PREROUTING cette fois car le traffic d'origine n'est pas local (cf TODO: lien vers le cheminement dans les tables d'iptables)
 | 
					J'ai donc ajouté le même script en modifiant l'IP de destination pour forcer ce type de trafic à passer par le VPN, une adresse en 10.0.0.1 chez moi. Dans la chaine PREROUTING cette fois car le traffic d'origine n'est pas local (cf. [Parcours des paquets dans netfilter][4])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Le script
 | 
					# Le script
 | 
				
			||||||
Voici le script que j'utilise pour faire tout ça. Finalement il est plutôt simple.
 | 
					Voici le script que j'utilise pour faire tout ça. Finalement il est plutôt simple.
 | 
				
			||||||
| 
						 | 
					@ -83,6 +83,7 @@ Les quelques liens cités dans cet article.
 | 
				
			||||||
[1]: http://www.inetdoc.net/guides/iptables-tutorial/marktarget.html "MARK target"
 | 
					[1]: http://www.inetdoc.net/guides/iptables-tutorial/marktarget.html "MARK target"
 | 
				
			||||||
[2]: http://lartc.org/howto/lartc.rpdb.multiple-links.html "LARTC"
 | 
					[2]: http://lartc.org/howto/lartc.rpdb.multiple-links.html "LARTC"
 | 
				
			||||||
[3]: http://www.inetdoc.net/guides/lartc/lartc.rpdb.multiple-links.html) "LARTC fr"
 | 
					[3]: http://www.inetdoc.net/guides/lartc/lartc.rpdb.multiple-links.html) "LARTC fr"
 | 
				
			||||||
 | 
					[4]: http://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<!---
 | 
					<!---
 | 
				
			||||||
#vim: bg=light
 | 
					#vim: bg=light
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue