PoC-Leitfaden: Schutz virtueller Gateway-Server mit WAF-, Bot- und erweiterten Authentifizierungsrichtlinien

Übersicht

Viele Citrix ADC Appliances hosten VPN- und Citrix Gateway-Bereitstellungen, die auch Sicherheitsschutz für andere Webanwendungen bieten. Dieser PoC-Leitfaden soll virtuelle VPN- und Gateway-Server mithilfe von Tools schützen, die bereits auf der Citrix ADC Appliance verfügbar sind. In diesem Handbuch werden die Anmeldeseite des Portals mit Bot-Sicherheit geschützt und die Übermittlung des Anmeldeformulars mit WAF-Funktionen behandelt. Erweiterte Authentifizierungsrichtlinien fügen Benutzeranmeldungen außerdem Kontext hinzu und ermöglichen die Multifaktor-Authentifizierung.

Der Ablauf dieser Konfiguration wird wie folgt dargestellt:

Konfig Flow

Konfigurationsoptionen

Dieses Handbuch enthält keine exklusive Liste von Schutzmaßnahmen und ist auch nicht die einzige Möglichkeit, diese zu konfigurieren. Beispielsweise ist die Bereitstellung von IP-Reputation und Ratenbegrenzung mithilfe einer Responder-Richtlinie auf einem virtuellen Gateway-Server üblich. Diese Konfiguration ist eine unterstützte Bereitstellungsmethode. Es hat ein anderes Ergebnis, Verbindungen zu verwerfen oder zurückzusetzen, bevor die Gateway-Anmeldeseite gerendert wird.

Außerdem ist für das WAF-Profil nicht alle Schutzfunktionen aktiviert, um komplexe Konfigurationen, benutzerdefinierte Anpassungen und potenzielle Probleme zu verhindern. Eine weitere Konfiguration des WAF-Profils ist möglich. Anleitungen finden Sie unter den Links im Abschnitt “Verweise”.

Hinweis:

CAPTCHA ist nicht die sicherste Option für einen zusätzlichen Faktor, es wird nur zur Vereinfachung der Erklärung verwendet. Andere MFA-Optionen wie TOTP oder PUSH sind bessere Optionen. Im Abschnitt “Referenzen” finden Sie Links, die Ihnen bei der Bereitstellung dieser Optionen helfen.

Voraussetzungen

Dieses Handbuch geht von einem fundierten Wissen über die Bereitstellung von Citrix WAF, der Bereitstellung von Bot Security und Advanced Authentication Policies (nFactor) voraus. Es geht davon aus, dass ein virtueller Gateway- oder Authentifizierungsserver bereits installiert und konfiguriert ist. Die folgenden Anforderungen gelten für die Konfiguration:

  • Erweiterte Authentifizierungsrichtlinien erfordern Version 12.1 Build 57.18 oder höher
  • Schutz der Webanwendungs-Firewall erfordert Version 12.1 Build 57.18 oder höher
  • Bot Security-Protections erfordert Version 13.0 Build 71.40 oder höher
  • Für die meisten Funktionen in diesem Handbuch ist eine Premium-Lizenzerforderlich
  • Ein vorhandener Server oder Dienst, der auf Port 80 abhört
  • Ein vorhandener Gateway- oder virtueller Authentifizierungsserver mit einer vorhandenen erweiterten Authentifizierungskonfiguration (erweiterte Authentifizierung oder nFactor Flow)
  • Aktivieren Sie die folgenden Funktionen: Citrix Web App Firewall, Citrix Bot Management und Reputation

Bot-Schutz

Bot-Signaturen

Wählen Sie unter Sicherheit > Citrix Bot Management > Signaturesdie Option Default Bot Signatures aus und klicken Sie auf die Schaltfläche Clone . Wenden Sie einen beschreibenden Namen an und klicken Sie dann auf Erstellen.

Bot-Profil-Signaturen

Erstellen eines Bot-Management-Profils und einer Richtlinie

Wählen Sie unter Sicherheit > Citrix Bot Management > Profiledie Option Hinzufügen aus, um ein neues Bot-Verwaltungsprofil zu erstellen. Geben Sie dem Profil einen beschreibenden Namen und wählen Sie den zuvor erstellten Signatursatz aus.

Bot-Profil

Wählen Sie das Profil aus, um die erweiterten Einstellungen zu bearbeiten.

Fügen Sie IP Reputation aus der rechten Spalte hinzu und aktivieren Sie das Kontrollkästchen, um sie zu aktivieren.

Bot-Profil IP Reputation

Wählen Sie als Nächstes unter Kategorien “Hinzufügen”, wählen Sie IP für den Typ aus, aktivieren Sie das Kontrollkästchen für Aktiviert und setzen Sie die Aktion auf Drop. Aktivieren Sie zuletzt das Kontrollkästchen für “Log” und legen Sie die Protokollnachricht auf etwas Beschreibendes fest.

Bot-Profil IP Reputation 2

Bot-Profil IP Reputation 3

Wählen Sie in der rechten Spalte den Geräte-Fingerabdruck aus, stellen Sie sicher, dass das Kontrollkästchen “Aktiviert” NICHT aktiviert ist, und klicken Sie auf Aktualisieren.

Fingerabdruck für Bot-Profilgeräte

Die letzte Einstellung für das Bot-Profil besteht darin, die Ratenbegrenzung zu aktivieren, in der rechten Spalte die Option Ratenlimit auszuwählen und das Kontrollkästchen auf aktiviert zu aktivieren. Klicken Sie unter Ressourcen konfigurierenauf “Hinzufügen” und fügen Sie drei Bindungen zur URL-Typ-Ratenbegrenzung für die folgenden URLs hinzu:

  • /logon/LogonPoint/index.html
  • /logon/LogonPoint/tmindex.html
  • /vpn/index.html

Konfigurieren Sie die Ratenbegrenzungen wie folgt:

  • Aktiviert
  • Rate von 5
  • Zeitraum von 1000
  • Aktion von Drop
  • Protokoll ist auf aktiviertgesetzt
  • Nachricht mit einem beschreibenden Nachrichtentitel protokollieren.

Rate Limit für Bot-

Das Bot-Profil ist jetzt wie folgt konfiguriert:

Bot-Profil Final

Erstellen Sie eine Bot-Verwaltungsrichtlinie, indem Sie zu Sicherheit > Citrix Bot Management > Bot-Richtlinien gehen und Hinzufügen wählen. Wählen Sie das zuvor erstellte Bot-Profil mit folgendem Ausdruck aus:


HTTP.REQ.URL.CONTAINS("/vpn")||HTTP.REQ.URL.CONTAINS("/logon")
<!--NeedCopy-->

Schließlich ist die Bot-Richtlinie durch die Auswahl von “Policy Manager” gebunden. Wählen Sie einen Bind-Punkt von “Standard Global” und wählen Sie “Zum Auswählen klicken”, um die Richtlinie auszuwählen. Markieren Sie die zuvor erstellte Richtlinie und wählen Sie “Auswählen”. Wählen Sie “Binden” und dann “Beenden”.

Bot-Richtlinienbindung

WAF-Schutz

Es ist nicht möglich, eine WAF-Richtlinie direkt an einen Gateway- oder virtuellen Authentifizierungsserver zu binden. Außerdem funktioniert das globale Binden einer WAF-Richtlinie mit einem Ausdruck, der auf virtuelle Gateway- oder Authentifizierungsserver abzielt, nicht wie erwartet. Die Verarbeitungsreihenfolge der Richtlinien verursacht diese Fehlfunktion — WAF-Richtlinien werden nach Gateway- und Authentifizierungsrichtlinien verarbeitet. In der Abbildung unten finden Sie eine Erläuterung des Verkehrsflusses.

Verkehrsfluss

Die WAF-Schutzrichtlinie verwendet eine HTTP-Callout, um die Anmeldeseite zu schützen und den Authentifizierungsfluss ungültig zu machen, wenn eine WAF-Ausnahme abgefangen wird. Diese Konfiguration erfordert einen Mustersatz (Patset), der die Anmelde-URLs, einen Dummy-Service und einen virtuellen Lastausgleichsserver, einen HTTP-Callout sowie die WAF-Richtlinie und -Konfiguration enthält.

Musterset

Navigieren Sie zu AppExpert > Pattern Sets und wählen Sie “Add”. Gib dem neuen Musterset einen Namen, wähle dann “Einfügen” und füge die folgenden Muster hinzu:

  • /cgi/login (index 1)
  • /nf/auth/doAuthentication.do (index 2)

Musterset

Erstellen Sie alternativ den Mustersatz über die CLI:


add policy patset GW_VPN_Patset
bind policy patset GW_VPN_Patset "/cgi/login" -index 1
bind policy patset GW_VPN_Patset "/nf/auth/doAuthentication.do" -index 2
<!--NeedCopy-->

Dummy-Virtueller Server und Dienst

Der HTTP-Callout verwendet einen virtuellen Dummy-Server. Dieser virtuelle Server muss nicht öffentlich verfügbar sein, sodass er nicht adressierbar sein kann. Der virtuelle Server muss aktiv sein, daher muss der Backend-Server hochgefahren sein und auf Port 80 reagieren. In diesem Handbuch werden ein neuer Dienst und ein neuer virtueller Server erstellt, es kann jedoch ein bereits vorhandener virtueller Server verwendet werden.

Gehen Sie zu Traffic Management > Load Balancing > Services und wählen Sie “Add”. Geben Sie dem Dienst einen beschreibenden Namen, setzen Sie das Protokoll auf HTTP und Port Sie es auf 80. Geben Sie die IP-Adresse des Servers ein und wählen Sie OK. Erstellen Sie den Dienst alternativ mit einem vorhandenen Server. Verwenden Sie alle Standardeinstellungen, einschließlich der an den Dienst gebundenen Monitore.

Load Balancing-Dienst

Erstellen Sie als Nächstes den virtuellen Lastausgleichsserver, indem Sie zu Traffic Management > Load Balancing > Virtuelle Server gehen und “Add” auswählen. Geben Sie dem Server einen beschreibenden Namen, legen Sie das Protokoll auf HTTP fest und legen Sie den IP-Adresstyp auf Nicht adressierbarfest. Binden Sie den zuvor erstellten Dienst an diesen virtuellen Server, indem Sie “No Load Balancing Virtual Server Service Bindding”, “Zum Auswählen klicken” auswählen und den Dienst auswählen. Es ist jetzt ein Dienst, der an den virtuellen Server gebunden ist und der Status ist “NACH OBEN”.

Virtueller Server mit Lastenausgleich

HTTP-Callout

Navigieren Sie zu AppExpert > HTTP-Callouts und wählen Sie “Add”. Geben Sie der HTTP-Callout einen beschreibenden Namen, wählen Sie “Virtueller Server”, um die Callout-Anforderung zu erhalten, und wählen Sie den virtuellen Dummy-Server aus. Wählen Sie in der Anforderung zum Senden an den Server den Typ als Ausdrucksbasiert aus, legen Sie das Schema auf “HTTP” fest und legen Sie den vollständigen Ausdruck auf Folgendes fest:


HTTP.REQ.FULL_HEADER.BEFORE_STR("\r\n\r\n")+"\r\nGW_VPN-WAF_Callout:abc\r\n\r\n"+HTTP.REQ.BODY(2048)
<!--NeedCopy-->

Hinweis:

Der Name des Headers hier ist ‘GW_VPN-WAF_Callout’ - der Ausdruck der Anwendungs-Firewall-Filterung verwendet ihn später. Wenn der Name hier geändert wird, ändern Sie auch den WAF-Header-Ausdruck.

Legen Sie im Abschnitt “Serverantwort” den Rückgabetyp auf BOOL fest und legen Sie den Ausdruck auf “wahr” fest.

HTTP-Callout

Erstellen Sie alternativ den HTTP-Callout über die CLI:


add policy httpCallout GW_VPN_WAF_Callout -vServer dummy-vserver-here -returnType BOOL -fullReqExpr HTTP.REQ.FULL_HEADER.BEFORE_STR("\r\n\r\n")+"\r\nGW_VPN-WAF_Callout:abc\r\n\r\n"+HTTP.REQ.BODY(2048) -scheme http -resultExpr true
<!--NeedCopy-->

Richtlinie für die Authentifizierung

Ändern Sie eine vorhandene LDAP-Authentifizierungsrichtlinie zur Verwendung des HTTP-Callouts. Öffnen Sie die vorhandene Authentifizierungsrichtlinie, indem Sie zu Sicherheit > AAA Application Traffic > Richtlinien > Authentifizierung > Erweiterte Richtlinien > Policygehen, wählen Sie die vorhandene Richtlinie aus und wählen Sie “Bearbeiten”. Ändern Sie den vorhandenen Ausdruck wie folgt:


HTTP.REQ.URL.CONTAINS_ANY("GW_VPN_Patset") && SYS.HTTP_CALLOUT(GW_VPN_WAF_Callout)
<!--NeedCopy-->

Authentifizierungsrichtlinie WAF-Bindung

Hinweis:

Verwenden Sie diesen Ausdruck mit jeder Authentifizierungsrichtlinie, bei der Sie die Formularfelder auf der Anmeldeseite schützen möchten.

WAF-Profil und -Richtlinie

Um das WAF-Profil zu erstellen, gehen Sie zu Security > Citrix Web Application Firewall > Profile und wählen Sie “Add”. Geben Sie dem Profil einen beschreibenden Namen und wählen Sie Web Application (HTML) und Basic Defaults aus. Öffnen Sie das neu erstellte Profil, indem Sie “Bearbeiten” wählen und dann in der rechten Spalte “Sicherheitsprüfungen” auswählen.

Aktivieren Sie die folgenden Sicherheitsüberprüfungen (deaktivieren Sie alle anderen Einstellungen):

  • Pufferüberlauf - Protokoll, Statistiken
  • Nachbestandsgrenze - Block, Protokoll, Statistiken
  • HTML Cross-Site Scripting - Block, Protokoll, Statistiken
  • HTML SQL Injection - Block, Protokoll, Statistiken

WAF-Sicherheitskontrollen

Wählen Sie als Nächstes in der rechten Spalte “Profileinstellungen” und legen Sie die Standardantwort fest auf:


application/octet-stream
<!--NeedCopy-->

Aktivieren Sie dann das Kontrollkästchen für Treffer bei jeder Richtlinie protokollieren.

WAF-Profileinstellungen

Konfigurieren Sie als Nächstes die WAF-Richtlinie, indem Sie zu Sicherheit > Citrix Web Application Firewall > Richtlinien > Firewall gehen und “Add” wählen. Geben Sie der Richtlinie einen beschreibenden Namen und wählen Sie das im vorherigen Schritt erstellte Profil aus. Geben Sie für den Ausdruck Folgendes ein:


HTTP.REQ.HEADER("GW_VPN-WAF_Callout").EXISTS
<!--NeedCopy-->

Hinweis:

Der Name des Headers muss mit dem Header in dem zuvor erstellten HTTP-Callout übereinstimmen.

Binden Sie zuletzt die WAF-Richtlinie an den zuvor erstellten virtuellen Dummy-Lastausgleichsserver, indem Sie zu Verkehrsmanagement > Load Balancing > Virtuelle Servergehen. Wählen Sie den virtuellen Server und dann “Bearbeiten”.

Wählen Sie in der rechten Spalte “Richtlinien” und klicken Sie dann auf das “+” -Plus, um eine Richtlinie hinzuzufügen. Wählen Sie Richtlinie App Firewall und geben Sie Request ein. Wählen Sie die zuvor erstellte Richtlinie aus und wählen Sie dann “Binden” und “Abgetan”.

WAF-Policy-Bindung

Erstellen Sie alternativ die WAF-Konfiguration mit der CLI wie folgt:


add appfw profile demo_appfw_profile -startURLAction none -denyURLAction none -fieldFormatAction none -bufferOverflowAction log stats -responseContentType "application/octet-stream" -logEveryPolicyHit ON -fileUploadTypesAction none

add appfw policy demo_appfw_policy "HTTP.REQ.HEADER("GW_VPN-WAF_Callout").EXISTS" demo_appfw_profile

bind lb vserver dummy-vserver-here -policyName gw_appfw_policy -priority 100 -gotoPriorityExpression END -type REQUEST
<!--NeedCopy-->

Erweiterte Authentifizierungseinstellungen

Es gibt zwei Konfigurationen im Zusammenhang mit der Authentifizierung: Verschlüsseln von Benutzeranmeldeinformationen vom Client an den ADC innerhalb von nFactor und IP Reputation basiertem MFA.

Benutzeranmeldedaten verschlüsseln

Die folgende Einstellung ermöglicht es dem ADC, den Satz der Anmeldeinformationen zu verschlüsseln, wenn der Benutzer die Formulardaten mit ECDHE-Algorithmen übermittelt. Um diese Einstellung zu aktivieren, navigieren Sie zu Citrix Gateway > Globale Einstellungen > Authentifizierungseinstellungen > AAA-Einstellungen für Authentifizierung ändern und stellen Sie Login Encryption auf ENABLEDein.

Authentifizierung Login-Verschlüsselung

Sie können diese Einstellung alternativ in der CLI wie folgt ändern:


set aaa parameter -loginEncryption ENABLED
<!--NeedCopy-->

IP-Reputation-basierte MFA

Verwenden Sie IP-Reputation mit erweiterter Authentifizierung, um den Benutzer zur Eingabe eines zusätzlichen Faktors aufzufordern, wenn die Datenbank die Quelladresse enthält. Erstellen Sie außerdem einen manuell verwalteten Datensatz von Adressen.

Wichtig:

Das folgende Konfigurationsbeispiel verwendet CAPTCHA als Mittel zur Bereitstellung eines weiteren Authentifizierungsfaktors, es kann jedoch jedes andere MFA-Tool verwendet werden. Wie bei allen nFactor-Konfigurationen sind die hier gezeigten Richtlinien, Schemas und Richtlinienbezeichnungen einfache Beispiele. Fügen Sie eine zusätzliche Konfiguration hinzu, um jeden spezifischen Anwendungsfall für die Anmeldung zu erfüllen.

Weitere Informationen zur Konfiguration von TOTP PUSH als Faktor und zusätzlichen CAPTCHA-Konfigurationen finden Sie im Abschnitt “Verweise”.

Erstellen Sie einen Datensatz, indem Sie zu AppExpert > Datensätze gehen und “Hinzufügen” auswählen. Erstellen Sie einen Datensatz mit einem beschreibenden Namen, einem Typ von “ipv4” und klicken Sie auf “Erstellen”.

Bösartiger IP-Datensatz

Als Nächstes müssen zwei erweiterte Authentifizierungsrichtlinien erstellt werden, indem Sie zu Sicherheit > AAA - Anwendungsdatenverkehr > Richtlinien > Authentifizierung > Erweiterte Richtlinien > Richtlinie gehen und “Erweitern” auswählen.

Erstellen Sie die erste Richtlinie mit einem beschreibenden Namen, einem Aktionstyp von NO_AUTHNund dem Ausdruck, der auf “wahr” festgelegt ist.

Erweiterte Richtlinie Gute IP

Erstellen Sie die zweite Richtlinie mit einem beschreibenden Namen, dem Aktionstyp NO_AUTHNund einem Ausdruck wie folgt:


CLIENT.IP.SRC.IPREP_IS_MALICIOUS || CLIENT.IP.SRC.TYPECAST_TEXT_T.CONTAINS_ANY("suspicious_ips")
<!--NeedCopy-->

Hinweis:

Verwenden Sie hier den Namen des zuvor erstellten Datensatzes.

Als Nächstes wird ein CAPTCHA-Anmeldeschema-Profil erstellt, indem Sie zu Sicherheit > AAA - Anwendungsdatenverkehr > Anmeldeschema > Registerkarte “Profile “ wählen und “Add” auswählen. Geben Sie dem Profil einen beschreibenden Namen und bearbeiten Sie das Authentifizierungsschema, indem Sie das Bearbeitungssymbol “Bleistift” auswählen. Navigieren Sie zum Verzeichnis LoginSchema, markieren Sie SingleAuthCaptcha.xml, und wählen Sie Select.

Captcha-Anmeldeschema

Erstellen Sie als Nächstes eine Authentifizierungsrichtlinienbezeichnung für das Captcha-Schema, indem Sie zu Sicherheit > AAA - Anwendungsverkehr > Richtlinien > Authentifizierung > Erweiterte Richtlinien > Richtlinienlabel gehen und “Erweitern” auswählen. Geben Sie der PL einen beschreibenden Namen und wählen Sie das zuvor erstellte Captcha-Anmeldeschema aus. Binden Sie die erforderliche LDAP-Aktionsrichtlinie.

Hinweis:

In diesem Beispiel wird eine zuvor erstellte LDAP-Authentifizierungsaktion wiederverwendet.

Captcha-Richtlinienlabel

Erstellen Sie ein weiteres Policy Label, indem Sie “Ergänz” auswählen. Geben Sie dieser PL einen beschreibenden Namen und legen Sie das Anmeldeschema auf LSCHEMA_INT fest. Binden Sie als Nächstes die beiden zuvor erstellten NO_AUTHN-Authentifizierungsrichtlinien.

IP-Check-Richtlinien

Legen Sie zuletzt den nächsten Faktor der zuvor erstellten Authentifizierungsrichtlinie als Richtlinienlabel für die IP-Reputationsprüfung fest. Es ist bereits an einen virtuellen Authentifizierungs- oder Gateway-Server gebunden. Markieren Sie die Authentifizierungsrichtlinie, wählen Sie “Bindung bearbeiten” und legen Sie dann die neue Policy Label als Feld “Nächsten Faktor auswählen” fest.

Endgültige Authentifizierungsrichtlinie

Zusammenfassung

Citrix ADC bietet viele integrierte Sicherheitsfunktionen, die virtuelle Gateway- oder Authentifizierungsserver schützen, die auf derselben Appliance ausgeführt werden. Diese Schutzmaßnahmen haben keine Auswirkungen auf typische Benutzer, da sie versuchen, sich bei Citrix Gateway anzumelden.

Referenzen

Weitere Informationen und Konfigurationsoptionen finden Sie in den folgenden Artikeln:

Einführung in die Citrix Web Application Firewall — Citrix Product Docs: Einführung in die Citrix Web Application Firewall

PoC-Leitfaden zur Citrix Web Application Firewall — Leitfaden zur Bereitstellung eines Machbarkeitsnachweises für die Citrix Web Application Firewall

Citrix Training for Application Delivery and Security — Citrix Education für Anwendungsbereitstellung und Sicherheit

Erste Schritte mit Citrix ADC - Citrix Product Docs: Erste Schritte mit Citrix ADC - Paketfluss

IP-Reputation — Citrix-Produktdokumentation: IP-

Bot-Management — Citrix-Produktdokumentation: Bot-Management

Bot-Erkennung — Citrix Product Docs: Bot-Erkennung

nFactor-Authentifizierung — Citrix Produktdokumentation: nFactor-Authentifizierung

Citrix ADC - nFactor Basics Cheat Sheet - Citrix Tech Zone: Diagramme und Poster Citrix ADC - nFactor Basics Spickzettel

CTX216091 - unterstützt Re-Captcha mit nFactor

nFactor für Citrix Gateway mit Push Token — Leitfaden zur Machbarkeitsstudie für TOTP-Push-Token für Citrix Gateway

PoC-Leitfaden: Schutz virtueller Gateway-Server mit WAF-, Bot- und erweiterten Authentifizierungsrichtlinien