Uso del seguimiento de conexiones proxy
El seguimiento de conexiones proxy se admite en Windows 8 y versiones posteriores de Windows.
Esta característica del PMA facilita el seguimiento de los "registros" de redireccionamiento desde el redireccionamiento inicial de una conexión a la conexión final al destino. EL PMA también permite que un controlador de llamada redirija las conexiones.
Seguimiento de conexiones proxy
Con la presencia de varios servidores proxy (por ejemplo, desarrollados por diferentes ISV), la conexión utilizada por una parte para comunicarse con el destino final podría redirigirse a su vez por una parte 2ª; y esa nueva conexión podría ser redirigida de nuevo por la parte original. Sin el seguimiento de conexiones, es posible que la conexión original nunca llegue a su destino final, ya que se bloquea en el bucle proxy infinito.
Las adiciones a los identificadores de campo de datos para admitir el seguimiento de conexiones incluyen:
FWPS_FIELD_Xxx_ALE_ORIGINAL_APP_ID
Ruta de acceso completa de la aplicación original para las conexiones de proxy. Si la aplicación no se ha proxy, esta ruta de acceso es idéntica a la xxx_ALE_APP_ID.
FWPS_FIELD_Xxx_PACKAGE_ID
El identificador del paquete es un identificador de seguridad (SID) que identifica el proceso de AppContainer asociado.
Redireccionamiento de conexiones
Un controlador de llamada llama a la función FwpsRedirectHandleCreate0 para crear un identificador que se puede usar para redirigir las conexiones TCP.
Esta sección contiene los siguientes temas:
Uso de un identificador de redireccionamiento
Consulta del estado de redirección
Uso de un identificador de redireccionamiento
Antes de que una llamada de redirección de conexión de ALE pueda redirigir las conexiones a un proceso local, debe obtener un identificador de redireccionamiento con la función FwpsRedirectHandleCreate0 y colocar el identificador en la estructura de FWPS_CONNECT_REQUEST0 . La llamada modifica la estructura de la clasificaciónFn para las capas de redirección de conexión de ALE.
La estructura de FWPS_CONNECT_REQUEST0 contiene los siguientes miembros para el redireccionamiento:
Término | Descripción |
---|---|
localRedirectHandle |
Identificador de redireccionamiento que creó el controlador de llamada mediante una llamada a la función FwpsRedirectHandleCreate0 . |
localRedirectContext |
Área de contexto del controlador de llamada que el controlador de llamada asignó mediante una llamada a la función ExAllocatePoolWithTag . |
localRedirectContextSize |
Tamaño, en bytes, del área de contexto proporcionada por la llamada. |
Una vez que un controlador de llamada haya terminado de usar un identificador de redireccionamiento, debe llamar a la función FwpsRedirectHandleDestroy0 para destruir el identificador.
Consulta del estado de redirección
Un controlador de llamada llama a la función FwpsQueryConnectionRedirectState0 para obtener el estado de redireccionamiento de una conexión. La enumeración FWPS_CONNECTION_REDIRECT_STATE es el tipo de valor devuelto de una llamada a la función FwpsQueryConnectionRedirectState0 .
Si el estado de redireccionamiento es FWPS_CONNECTION_NOT_REDIRECTED, la llamada de ALE_CONNECT_REDIRECT puede continuar con el proxy de la conexión.
Si el estado de redireccionamiento es FWPS_CONNECTION_REDIRECTED_BY_SELF, la llamada de ALE_CONNECT_REDIRECT debe devolver FWP_ACTION_PERMIT/FWP_ACTION_CONTINUE.
Si el estado de redireccionamiento es FWPS_CONNECTION_REDIRECTED_BY_OTHER, la llamada ALE_CONNECT_REDIRECT podría continuar con el proxy de la conexión si no confía en el resultado del otro inspector.
Si el estado de redireccionamiento es FWPS_CONNECTION_PREVIOUSLY_REDIRECTED_BY_SELF, la llamada ALE_CONNECT_REDIRECT no debe realizar el redireccionamiento aunque los resultados de otros inspectores no sean aceptables. En este caso, debe permitir o bloquear la conexión (en la capa de ALE_AUTH_CONNECT).