[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Comment router le trafic réseau finement



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, pourront 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 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.



Reply to: