Este artículo ha sido traducido automáticamente. (Aviso legal)
Configurar una directiva de reescritura
Después de crear cualquier acción de reescritura necesaria, debe crear al menos una directiva de reescritura para seleccionar las solicitudes que desea que reescriba el dispositivo Citrix ADC.
Una política de reescritura consiste en una regla, que consiste en una o más expresiones. Y una acción asociada que se realiza si una solicitud o respuesta coinciden con la regla. Las reglas de política para evaluar las solicitudes y respuestas HTTP se pueden basar en casi cualquier parte de una solicitud o respuesta.
No puede utilizar acciones de reescritura de TCP para reescribir datos distintos de la carga útil de TCP. Puede basar las reglas de política para las directivas de reescritura TCP en la información de la capa de transporte. Y las capas debajo de la capa de transporte.
Si una regla configurada coincide con una solicitud o respuesta, se activa la directiva correspondiente y se lleva a cabo la acción asociada.
Nota: Puede utilizar la interfaz de línea de comandos o la utilidad de configuración para crear y configurar políticas de reescritura. Los usuarios que no están completamente familiarizados con la interfaz de línea de comandos y el lenguaje de expresión Citrix ADC Policy suelen encontrar mucho más fácil usar la utilidad de configuración.
Para agregar una nueva política de reescritura mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba los siguientes comandos para agregar una nueva política de reescritura y verificar la configuración:
- <add política de reescritura <name><expression><action>[<undefaction>]
- <show rewrite policy <name>
Ejemplo 1. Reescritura de contenido HTTP:
> add rewrite policy policyNew "HTTP.RES.IS_VALID" insertact NOREWRITE
Done
> show rewrite policy policyNew
Name: policyNew
Rule: HTTP.RES.IS_VALID
RewriteAction: insertact
UndefAction: NOREWRITE
Hits: 0
Undef Hits: 0
Done
Ejemplo 2. Reescritura de una carga útil TCP (reescritura de TCP):
> add rewrite policy client_tcp_payload_policy CLIENT.IP.SRC.EQ(172.168.12.232) client_tcp_payload_replace_all
Done
> show rewrite policy client_tcp_payload_policy
Name: client_tcp_payload_policy
Rule: CLIENT.IP.SRC.EQ(172.168.12.232)
RewriteAction: client_tcp_payload_replace_all
UndefAction: Use Global
LogAction: Use Global
Hits: 0
Undef Hits: 0
Done
>
Para modificar una política de reescritura existente mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba los siguientes comandos para modificar una directiva de reescritura existente y verificar la configuración:
- <set rewrite policy <name>-rule <expresión-action <action>[<undefaction>]
- <show rewrite policy <name>
Ejemplo:
> set rewrite policy policyNew -rule "HTTP.RES.IS_VALID" -action insertaction
Done
> show rewrite policy policyNew
Name: policyNew
Rule: HTTP.RES.IS_VALID
RewriteAction: insertaction
UndefAction: NOREWRITE
Hits: 0
Undef Hits: 0
Done
Para quitar una política de reescritura mediante la interfaz de línea de comandos
En el símbolo del sistema, escriba el siguiente comando para eliminar una política de reescritura:
política de reescritura rm <name>
Ejemplo:
> rm rewrite policy policyNew
Done
Para configurar una directiva de reescritura mediante la utilidad de configuración
- Vaya a AppExpert > Rewrite > Policies.
- En el panel de detalles, realice una de las acciones siguientes:
- Para crear una política, haga clic en Agregar.
- Para modificar una política existente, selecciónela y, a continuación, haga clic en Abrir.
- Haga clic en Crear o Aceptar. Aparece un mensaje en la barra de estado que indica que la directiva se ha configurado correctamente.
- Repita los pasos 2 a 4 para crear o modificar tantas acciones de reescritura como quieras.
- Haga clic en Cerrar. Para eliminar una política de reescritura, seleccione la política de reescritura que desea eliminar y, a continuación, haga clic en Eliminar y, cuando se le solicite, confirme su elección haciendo clic en Aceptar.
Crear una política de reescritura para encabezados de seguridad de contenido, protección XSS, HSTS, X-Content-Type-Options y Content-Security Policy
En el símbolo del sistema, escriba los siguientes comandos de acción de reescritura para agregar encabezado de seguridad a las páginas web que se envían a través de NetScaler mediante reescrituras.
add rewrite action insert_STS_header insert_http_header Strict-Transport-Security ""max-age=157680000""
add rewrite action rw_act_insert_XSS_header insert_http_header X-Xss-Protection ""1; mode=block""
add rewrite action rw_act_insert_Xcontent_header insert_http_header X-Content-Type-Options ""nosniff""
add rewrite action rw_act_insert_Content_security_policy insert_http_header Content-Security-Policy ""default-src 'self' ; script-src 'self' 'unsafe-inline' 'unsafe-eval' ; style-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:""
En el símbolo del sistema, escriba los siguientes comandos de directiva de reescritura para agregar el encabezado de seguridad a las páginas web publicadas a través de NetScaler mediante reescrituras.
add rewrite policy enforce_STS true insert_STS_header
add rewrite policy rw_pol_insert_XSS_header "HTTP.RES.HEADER("X-Xss-Protection").EXISTS.NOT" rw_act_insert_XSS_header
add rewrite policy rw_pol_insert_XContent TRUE rw_act_insert_Xcontent_header
add rewrite policy rw_pol_insert_Content_security_policy TRUE rw_act_insert_Content_security_policy
En el símbolo del sistema, escriba los siguientes comandos para enlazar directivas al servidor virtual en Response mediante Goto Expression NEXT.
bind vpn vserver access -policy enforce_STS -priority 100 -gotoPriorityExpression NEXT -type RESPONSE
bind vpn vserver "VSERVERNAME" -policy rw_pol_insert_XSS_header -priority 110 -gotoPriorityExpression NEXT -type RESPONSE
bind vpn vserver access -policy rw_pol_insert_XContent -priority 120 -gotoPriorityExpression NEXT -type RESPONSE
bind vpn vserver access -policy rw_pol_insert_Content_security_policy -priority 130 -gotoPriorityExpression NEXT -type RESPONSE
Configurar la directiva de reescritura para encabezados de seguridad de contenido, protección XSS, HSTS, X-Content-Type-Options y Content-Security-Policy mediante la utilidad de configuración
- Vaya a AppExpert > Reescritura > Acciones
- Haga clic en Agregar para crear acciones de reescritura para cada uno de los encabezados.
- Vaya a AppExpert > Reescritura > Políticas
- Haga clic en Agregar para crear políticas de reescritura y vincularlas a acciones.
- Vincule políticas al servidor virtual en Response mediante Goto Expression NEXT.
Nota: En SSLVPN, necesitamos utilizar la siguiente acción de seguridad de contenido:
add rewrite action Rewrite_Insert_Content-Security-Policy insert_http_header Content-Security-Policy ""default-src 'self' ; script-src 'self' 'unsafe-inline' 'unsafe-eval' ; style-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' http://localhost:* data:;"
La excepción localhost es obligatoria porque el navegador transfiere la información de cookie/GW al complemento mediante una llamada HTTP localhost. Dado que el CSP solo tenía «auto», solo se permitirían las llamadas al servidor virtual.
En este artículo
- Para agregar una nueva política de reescritura mediante la interfaz de línea de comandos
- Para modificar una política de reescritura existente mediante la interfaz de línea de comandos
- Para quitar una política de reescritura mediante la interfaz de línea de comandos
- Para configurar una directiva de reescritura mediante la utilidad de configuración
- Crear una política de reescritura para encabezados de seguridad de contenido, protección XSS, HSTS, X-Content-Type-Options y Content-Security Policy
- Configurar la directiva de reescritura para encabezados de seguridad de contenido, protección XSS, HSTS, X-Content-Type-Options y Content-Security-Policy mediante la utilidad de configuración