NetScaler niet RFC compliant met 302 response

15 mei 2017 om 15:18 Maik Rovers

Wanneer je met een NetScaler een transform rule toevoegd aan een HTTP vServer om verkeer te redirecten naar de HTTPS vServer, doe je dit normaal gesproken met de volgende action Expression:

 "https://" + HTTP.REQ.HOSTNAME.HTTP_URL_SAFE + HTTP.REQ.URL.PATH_AND_QUERY.HTTP_URL_SAFE Response Status Code: 302 Policy Expression: HTTP.REQ.IS_VALID)


Hierdoor wordt de browser omgeleid naar HTTPS (443) omdat deze een 302 melding (temporary moved) terug krijgt op HTTP. Als we een kijkje nemen in de Header informatie zien we de volgende headers:

moved302good

 

 

 

 

 

 

De response 302 Moved Temporarily is geheel volgens RFC2616 standaard. Deze reponse is echter sinds NetScaler v11 aangepast (en tot op de dag van vandaag aanwezig) en geeft nu:


moved302bad

 

 

 

 

Als gevolg van deze wijziging voldoet de header niet meer aan de standaard van RFC2616 (https://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2)


Als gevolg van deze wijziging loop je het risico dat het verkeer gedropped wordt. Dit gebeurd bijvoorbeeld wanneer IPS protection (in dit geval van Checkpoint) ingeschakeld wordt op het netwerk. Citrix heeft toegegeven dat dit gebeurd en is op de dag van vandaag aan het uitzoeken waarom/waardoor dit is gebeurd. 


Ook heeft citrix een workaround gegeven waarbij de action Expression gewijzigd is naar:


expression

 

 

 

 

 

 

 

Hierdoor is de response weer volgens het RFC.


Status: Investigation by Citrix.

0 reacties

Reageer