Bonjour, 

Dans un fil précédent (" Tunnel openvpn - comment router tout le trafic dedans 
ou bien router simultanément le trafic d'un terminal/d'une fenêtre de 
navigateur/d'un process dans SON propre tunnel? "), j'avais creusé mon 
exploration de wireguard. 
Et on avait aussi échangé sur ma difficulté avec la résolution de noms sur un 
poste de travail (j'avais été égaré par des pages incomplètes trouvées sur le 
net, qui m'avait fait installer resolvconf alors que NM, installé d'office avec 
le DE, gérait bien la résolution des noms). Et on l'avait résolu. Merci pour 
ça. 

J'ai besoin de diriger correctement tous les flux de chaque machine d'un 
réseau. 
C'est classique pour un expert en réseau ! 
Mais ce n'est pas commode pour qui gère simplement le réseau de son poste de 
travail et de son serveur hébergé. 

Ce réseau comporte : 
- un serveur wireguard : configuré, opérationnel (il y a encore à apprendre 
mais il fonctionne) 
- des clients wireguard : configurés, opérationnels (linux : Ok. iOS : Ok. Win 
: le client wg pose encore un problème car l'utilisateur n'est pas dans le 
groupe Administrators, ce qui rend l'UI wg inaccessible), avec tout le trafic 
envoyé vers le serveur wg ou seulement une partie (d'après ce que j'ai compris, 
notammen tvia la directive wg "AllowedIPs") 
- mon poste de travail : il se connecte en ssh (22/tcp) ou mosh 
(60001-60999/udp) à divers serveurs ; son réseau local est géré par NM (car 
installation d'un DE au moment de l'installation) qui gère aussi la résolution 
des noms (en générant le fichier /etc/resolv.conf). 
- divers serveurs web 
- un serveur proxy en cours de configuration (Squid - apprentissage en cours) 
Plus tard, p ourront s'y ajouter un service de nom (bind) et un service de 
messagerie. 

Pour réaliser ça, je suis persuadé qu'il faut parfaitement maîtriser les 
techniques de routage. 

Cad le fw de chaque machine client ou serveur (iptables et ufw ; et sans doute 
aussi le nouveau [ https://www.nftables.org/ | nftables ] qui équiperait 
désormais debian 12 à la place d'iptables). 
Et aussi le serveur proxy (Squid) qui gère les acl et les autorisations sur ces 
acl. 
De plus, le vpn ( wireguard) a un fichier de conf qui comporte des directives 
(ex : PostUp et PostDown) qui appellent des commandes iptables et ufw, pour 
créer et supprimer automatiquement des routes. 
Ça veut dire que pour maîtriser le routage, il faut comprendre et maîtriser 
tous ces composants. 
Et j'en oublie peut-être. 

Or, je connais un peu la syntaxe de iptables et de squid. Je sais aussi qu'il 
est possible de marquer des paquets pour ensuite les router conditionnellement. 
Mais je n'ai jamais configuré de réseau complexe. 

Ça concerne d'abord mon poste de travail qui me permet d'accéder à toutes ces 
machines. 
Quand j'utilise un vpn (wireguard, désormais - merci NoSpam), je dois pouvoir 
finement diriger les flux selon l'application ou le port utilisé (CLI, 
navigateur, autre). 

Ensuite, ça concerne chaque machine cliente (poste de travail) : 
Le flux doit être dirigé vers le bon réseau selon l'endroit où elle se trouve 
(au bureau, à la maison, en mobilité) et le réseau d'interconnexion à internet 
(4G, WiFi, Ethernet). 
- avec/sans vpn 
- avec/sans proxy (privé ou commercial) 

Il existe plein de manières de faire et d'outils pour un poste de travail : 
- soit au niveau de l'application, en particulier au niveau du navigateur (FF 
propose l'extension Foxy proxy qui permet de choisir divers proxys et d'y 
ajouter des règles par réseau visé). 
- soit au niveau du système complet 
- soit à un autre niveau de la machine (que j'ignore) 
- soit au niveau du LAN : le routeur peut rediriger automatiquement les flux de 
toutes les machines du réseau selon sa provenance et sa destination et assurer 
filtrage/cache (la loi obligerait à en informer les utilisateurs - à vérifier). 

Enfin, chaque serveur doit être correctement connecté et routé. 


Voici mes deux questions : 

1/ Ai-je oublié quelque chose dans ma présentation pour atteindre mon objectif 
? 
Qu'est-ce qui n'est pas clair ? 
Qu'est-ce que je dois encore apprendre ? 
(notions : interface, routage d'un réseau à un autre, réseau 
source/destination, autorisation, acl/autorisation, ...) 

2/ Sur le plan pratique, quel ordre dois-je suivre pour écrire les règles de 
routage sur ce réseau ? 
Les outils d'infrastructure envisagés sont iptables/ufw/nftables, wireguard, 
squid. 
J'ai potassé iptables, ufw (qui est simple à utiliser mais génère visiblement 
des tonnes de règles iptables sous le capot !). 
Je découvre nftables, qui propose une commande iptables-translate pour traduire 
une phrase iptables en phrase nftables. 

Puisque nftables est devenu la référence pour debian 12, est-ce que l'on peut 
tout faire de zéro en nftables ? 

J'aimerais bien me lancer à l'eau en respectant les règles connues des habitués 
et experts réseaux. 

Merci. 


Répondre à