Suivre un paquet TPROXY jusqu'à la socket
Vérifiez la socket de réception, la marque du paquet et la route de politique locale comme un seul chemin de livraison du proxy transparent.
Un compteur TPROXY peut augmenter alors que l'application ne reçoit rien. La règle a correspondu, mais la livraison locale dépend encore du routage par politique et d'une socket de réception compatible.
TPROXY sous Linux peut intercepter le trafic sans réécrire la destination comme le fait DNAT. Les paquets adressés à une destination non locale doivent donc atteindre une socket locale éligible.
Suivre le chemin de livraison
- Le trafic atteint l'hôte d'interception sur l'interface et la famille d'adresses prévues.
- La règle d'interception et la marque du paquet identifient la politique de livraison locale.
- Une règle de politique correspondante choisit une route qui livre les paquets localement.
- Le proxy utilise un écouteur transparent pris en charge avec l'option de socket requise.
L'exemple IPv4 du noyau exige la prise en charge par l'application de IP_TRANSPARENT. Un écouteur ordinaire sur le même port, ou un réglage global de liaison non locale, ne démontre pas cette prise en charge.
| Observation | Vérification suivante |
|---|---|
| Aucun paquet entrant pertinent | Chemin du trafic et interface d'entrée |
| Les paquets arrivent ; le compteur d'interception reste immobile | Famille d'adresses, chaîne et conditions de correspondance |
| La règle correspond ; la livraison locale échoue | Marque et sélection de route de politique |
| La socket écoute ; l'application ne voit rien | Capacité de socket transparente et propriétaire de l'écouteur |
| La requête commence ; les réponses suivantes échouent | Correspondance de socket établie et routes de retour |
Conservez la configuration chargée et l'espace de noms réseau avec chaque observation. Une règle ultérieure peut écraser une marque ou choisir une autre route. Si l'interception a lieu sur l'hôte alors que l'écouteur tourne dans un conteneur, une route locale valide de l'hôte ne livre pas automatiquement dans ce conteneur.
Tenir compte des paquets ultérieurs
L'exemple du noyau inclut la correspondance de socket et un chemin DIVERT qui marque les paquets des sockets transparentes. L'omettre peut laisser le trafic ultérieur sur un autre chemin même lorsque l'interception initiale réussit.
Utilisez le mode transparent pris en charge par l'application et la documentation du noyau correspondante pour chaque famille d'adresses. Une commande de route locale IPv4 ne configure pas IPv6, et la prise en charge dans une famille ne démontre pas le comportement de socket de l'autre.
TPROXY ne produit pas non plus de négociation SOCKS. Un composant de transparent vers SOCKS doit encore découvrir la destination et négocier avec son amont.
Passer de REDIRECT
Notez comment l'application existante obtient la destination d'origine. REDIRECT change la destination et s'appuie sur le mécanisme de récupération approprié ; TPROXY a besoin de sa socket transparente et de son organisation de routage. Choisissez selon l'application et la politique d'adresse source.
Associez les compteurs à la route choisie, à la capacité de socket et au journal de l'application avant de changer de mode d'interception. Sur une distribution fournissant les moyens requis, une étape de livraison manquante est un meilleur point de départ qu'une recompilation du noyau.