Partager via


Utilisation du suivi des connexions proxied

Le suivi des connexions par proxy est pris en charge dans les versions Windows 8 et ultérieures de Windows.

Cette fonctionnalité du PAM facilite le suivi des « enregistrements » de redirection depuis la redirection initiale d’une connexion vers la connexion finale vers la destination. Le PAM permet également à un chauffeur de légende de rediriger les connexions.

Suivi des connexions proxied

Avec la présence de plusieurs proxys (par exemple, développés par différents éditeurs de logiciels indépendants), la connexion utilisée par une partie pour communiquer avec la destination finale pourrait à son tour être redirigée par un tiers ; et que la nouvelle connexion peut à nouveau être redirigée par la partie d’origine. Sans suivi de connexion, la connexion d’origine risque de ne jamais atteindre sa destination finale, car elle est bloquée dans la boucle proxy infinie.

Les ajouts aux identificateurs de champ de données pour prendre en charge le suivi des connexions sont les suivants :

FWPS_FIELD_Xxx_ALE_ORIGINAL_APP_ID
Chemin d’accès complet de l’application d’origine pour les connexions proxy. Si l’application n’a pas été proxiée, ce chemin est identique au xxx_ALE_APP_ID.

FWPS_FIELD_Xxx_PACKAGE_ID
L’identificateur de package est un identificateur de sécurité (SID) qui identifie le processus AppContainer associé.

Redirection des connexions

Un pilote de légende appelle la fonction FwpsRedirectHandleCreate0 pour créer un handle qui peut être utilisé pour rediriger les connexions TCP.

Cette section comprend les rubriques suivantes :

Utilisation d’un handle de redirection

Interrogation de l’état de redirection

Utilisation d’un handle de redirection

Pour qu’une légende de redirection de connexion ALE puisse rediriger les connexions vers un processus local, elle doit obtenir un handle de redirection avec la fonction FwpsRedirectHandleCreate0 et placer le handle dans la structure FWPS_CONNECT_REQUEST0 . La légende modifie la structure dans classFn pour les couches de redirection de connexion ALE.

La structure FWPS_CONNECT_REQUEST0 contient les membres suivants pour la redirection :

Terme Description

localRedirectHandle

Handle de redirection que le pilote de légende a créé en appelant la fonction FwpsRedirectHandleCreate0 .

localRedirectContext

Zone de contexte du pilote de légende allouée par le pilote de légende en appelant la fonction ExAllocatePoolWithTag .

localRedirectContextSize

Taille, en octets, de la zone de contexte fournie par la légende.

Une fois qu’un pilote de légende a terminé d’utiliser un handle de redirection, il doit appeler la fonction FwpsRedirectHandleDestroy0 pour détruire le handle.

Interrogation de l’état de redirection

Un pilote de légende appelle la fonction FwpsQueryConnectionRedirectState0 pour obtenir l’état de redirection d’une connexion. L’énumération FWPS_CONNECTION_REDIRECT_STATE est le type de retour d’un appel à la fonction FwpsQueryConnectionRedirectState0.

Si le status de redirection est FWPS_CONNECTION_NOT_REDIRECTED, la légende ALE_CONNECT_REDIRECT peut passer au proxy de la connexion.

Si le status de redirection est FWPS_CONNECTION_REDIRECTED_BY_SELF, la légende ALE_CONNECT_REDIRECT doit retourner FWP_ACTION_PERMIT/FWP_ACTION_CONTINUE.

Si le status de redirection est FWPS_CONNECTION_REDIRECTED_BY_OTHER, la légende ALE_CONNECT_REDIRECT peut passer au proxy de la connexion si elle n’approuve pas le résultat de l’autre inspecteur.

Si le status de redirection est FWPS_CONNECTION_PREVIOUSLY_REDIRECTED_BY_SELF, la légende ALE_CONNECT_REDIRECT ne doit pas effectuer la redirection même si les résultats des autres inspecteurs ne sont pas acceptables. Dans ce cas, il doit autoriser ou bloquer la connexion (au niveau de la couche ALE_AUTH_CONNECT).