Tutorialbeispiele für klassische Richtlinien

In den folgenden Beispielen werden nützliche Beispiele für die klassische Richtlinienkonfiguration für bestimmte Citrix ADC Features wie Citrix Gateway, Anwendungsfirewall und SSL beschrieben.

Dieses Dokument enthält die folgenden Details:

  • Citrix Gateway Richtlinie zur Überprüfung auf ein gültiges Clientzertifikat
  • Anwendungs-Firewall-Richtlinie zum Schutz einer Warenkorb-Anwendung
  • Anwendungs-Firewall-Richtlinie zum Schutz von skriptbasierten Webseiten
  • DNS-Richtlinie zum Löschen von Paketen von bestimmten IPs
  • SSL-Richtlinie zum Anfordern gültiger Clientzertifikate

Citrix Gateway Richtlinie zum Überprüfen eines gültigen Clientzertifikats

Mit den folgenden Richtlinien kann Citrix ADC sicherstellen, dass ein Client vor dem Herstellen einer Verbindung mit dem SSL-VPN eines Unternehmens ein gültiges Zertifikat vorlegt.

So prüfen Sie mit der Befehlszeilenschnittstelle nach einem gültigen Clientzertifikat

  • Fügen Sie eine Aktion zum Ausführen der Clientzertifikatauthentifizierung hinzu.

    add ssl action act1 -clientAuth DOCLIENTAUTH

  • Erstellen Sie eine SSL-Richtlinie, um die Clientanforderungen auszuwerten.

    add ssl policy pol1 -rule "REQ.HTTP.METHOD == GET" -action act1

  • Fügen Sie eine Rewrite-Aktion hinzu, um die Details des Zertifikatausstellers in den HTTP-Header der Anforderungen einzufügen, die an den Webserver gesendet werden.

    add rewrite action act2 insert_http_header "CertDN" CLIENT.SSL.CLIENT_CERT.SUBJECT

  • Erstellen Sie eine Rewrite-Richtlinie, um die Details des Zertifikatausstellers einzufügen, falls das Clientzertifikat vorhanden ist.

    add rewrite policy pol2 "CLIENT.SSL.CLIENT_CERT.EXISTS" act2

    Binden Sie diese neuen Richtlinien an den Citrix ADC VIP, um sie in Kraft zu setzen.

Anwendungs-Firewall-Richtlinie zum Schutz einer Warenkorb-Anwendung

Einkaufswagen-Anwendungen verarbeiten vertrauliche Kundeninformationen, z. B. Kreditkartennummern und Ablaufdaten, und sie greifen auf Back-End-Datenbankserver zu. Viele Warenkorb-Anwendungen verwenden auch ältere CGI-Skripte, die Sicherheitslücken enthalten können, die zu der Zeit, als sie geschrieben wurden, aber jetzt Hackern und Identitätsdieben bekannt sind.

Eine Warenkorb-Anwendung ist besonders anfällig für folgende Angriffe:

  • Cookie Manipulation. Wenn eine Einkaufswagen-Anwendung Cookies verwendet und nicht die entsprechenden Kontrollen der Cookies durchführt, die Benutzer an die Anwendung zurückkehren, kann ein Angreifer ein Cookie ändern und unter den Anmeldeinformationen eines anderen Benutzers Zugriff auf die Warenkorb-Anwendung erhalten. Sobald er sich als dieser Benutzer angemeldet hat, kann der Angreifer vertrauliche private Informationen über den legitimen Benutzer abrufen oder Bestellungen über das Konto des legitimen Benutzers aufgeben.
  • SQL-Injektion. Eine Einkaufswagenanwendung greift normalerweise auf einen Back-End-Datenbankserver zu. Wenn die Anwendung die entsprechenden Sicherheitsprüfungen für die Daten durchführt, die Benutzer in den Formularfeldern ihrer Webformulare zurückgeben, bevor sie diese Informationen an die SQL-Datenbank weitergibt, kann ein Angreifer ein Webformular verwenden, um nicht autorisierte SQL-Befehle in den Datenbankserver einzuleiten. Angreifer verwenden diese Art von Angriff normalerweise, um vertrauliche private Informationen aus der Datenbank zu erhalten oder Informationen in der Datenbank zu ändern.

Die folgende Konfiguration schützt eine Warenkorb-Anwendung vor diesen und anderen Angriffen.

So schützen Sie eine Warenkorb-Anwendung mit dem Konfigurationsdienstprogramm

  1. Navigieren Sie zu Sicherheit > Anwendungsfirewall > Profile, und klicken Sie dann auf Hinzufügen.

  2. Geben Sie im Dialogfeld Anwendungs-Firewall-Profil erstellen im Feld Profilname den Wert shopping_cart ein.

  3. Wählen Sie in der Dropdownliste Profiltyp die Option Webanwendung aus.

  4. In den Standardeinstellungen Erweiterte Auswahl konfigurieren.

  5. Klicken Sie auf Create und dann auf Close.

  6. Doppelklicken Sie in der Detailansicht auf das neue Profil.

  7. Konfigurieren Sie im Dialogfeld Webanwendungsprofil konfigurieren Ihr neues Profil wie unten beschrieben:

    • Klicken Sie auf die Registerkarte Überprüfungen, doppelklicken Sie auf die Überprüfung URL starten, und klicken Sie im Dialogfeld Start URL Check ändern auf die Registerkarte Allgemein, deaktivieren Sie das Blockieren und aktivieren Sie das Lernen, Protokollieren, Statistiken und URL-Verschluss. Klicken Sie auf OK und dann auf Schließen.

      Beachten Sie, dass Sie diese Einstellungen konfigurieren, wenn Sie die Befehlszeile verwenden, indem Sie Folgendes an der Eingabeaufforderung eingeben und die EINGABETASTE drücken:

      set appfw profile shopping_cart -startURLAction LEARN LOG STATS -startURLClosure ON

    • Deaktivieren Sie für die Cookie-Konsistenzprüfung und Formularfeldkonsistenzprüfungen das Blockieren und aktivieren Sie das Lernen, Protokollieren und Statistiken. Verwenden Sie eine ähnliche Methode wie die Konfiguration Start URL Check ändern.

      Wenn Sie die Befehlszeile verwenden, konfigurieren Sie diese Einstellungen, indem Sie die folgenden Befehle eingeben:

      set appfw profile shopping_cart -cookieConsistencyAction LEARN LOG STATS

      set appfw profile shopping_cart -fieldConsistencyAction LEARN LOG STATS

    • Deaktivieren Sie für die SQL-Injection-Prüfung das Blockieren, und aktivieren Sie das Lernen, Protokollieren, Statistiken und Transformation von Sonderzeichen im Dialogfeld SQL-Injektionsprüfung ändern auf der Registerkarte Allgemein im Abschnitt Aktionen überprüfen.

      Wenn Sie die Befehlszeile verwenden, konfigurieren Sie diese Einstellungen, indem Sie Folgendes an der Eingabeaufforderung eingeben und die EINGABETASTE drücken:

      set appfw profile shopping_cart -SQLInjectionAction LEARN LOG STATS -SQLInjectionTransformSpecialChars ON

    • Deaktivieren Sie die Sperre für die Kreditkartenprüfung, aktivieren Sie die Protokollierung, Statistiken und Maskierung von Kreditkartennummern und aktivieren Sie den Schutz für Kreditkarten, die Sie als Zahlungsmittel akzeptieren.

      • Wenn Sie das Konfigurationsprogramm verwenden, konfigurieren Sie das Blockieren, Protokollieren, Statistiken und Maskierung (oder x-out) im Dialogfeld Kreditkartenprüfung ändern auf der Registerkarte Allgemein im Abschnitt Aktionen überprüfen. Sie konfigurieren den Schutz für bestimmte Kreditkarten auf der Registerkarte Einstellungen desselben Dialogfelds.
      • Wenn Sie die Befehlszeile verwenden, konfigurieren Sie diese Einstellungen, indem Sie Folgendes an der Eingabeaufforderung eingeben und die EINGABETASTE drücken:

      set appfw profile shopping_cart -creditCardAction LOG STATS -creditCardXOut ON -creditCard <name> [<name>...]

      Für <name> Sie ersetzen Sie den Namen der Kreditkarte, die Sie schützen möchten. Für Visa ersetzen Sie VISA. Für Master Card ersetzen Sie MasterCard. Für American Express ersetzen Sie Amex. Für Discover ersetzen Sie Discover. Für Diners Club ersetzen Sie DinersClub. Für JCB ersetzen Sie JCB.

  8. Erstellen Sie eine Richtlinie mit dem Namen shopping_cart, die Verbindungen zu Ihrer Einkaufswagen-Anwendung erkennt und das Profil shopping_cart auf diese Verbindungen anwendet.

    Um Verbindungen zum Warenkorb zu erkennen, untersuchen Sie die URL eingehender Verbindungen. Wenn Sie Ihre Warenkorb-Anwendung auf einem separaten Host hosten (eine kluge Maßnahme aus Sicherheitsgründen und anderen Gründen), können Sie einfach nach der Anwesenheit dieses Hosts in der URL suchen. Wenn Sie Ihren Warenkorb in einem Verzeichnis auf einem Host hosten, der auch andere Traffic verarbeitet, müssen Sie feststellen, dass die Verbindung zum entsprechenden Verzeichnis und/oder HTML-Seite erfolgt.

    Der Prozess zum Erkennen einer dieser beiden ist identisch. Sie erstellen eine Richtlinie auf der Grundlage des folgenden Ausdrucks und ersetzen den richtigen Host oder URL <string>.

    REQ.HTTP.HEADER URL CONTAINS <string>
    
    • Wenn Sie das Konfigurationsdienstprogramm verwenden, navigieren Sie zur Seite Richtlinien der Anwendungsfirewall, klicken Sie auf die Schaltfläche Hinzufügen…, um eine neue Richtlinie hinzuzufügen, und führen Sie den Richtlinienerstellungsprozess durch, der unter So erstellen Sie eine Richtlinie mit klassischen Ausdrücken mit dem Konfigurationsdienstprogramm beschrieben wird.

    • Wenn Sie die Befehlszeile verwenden, geben Sie den folgenden Befehl an der Eingabeaufforderung ein und drücken Sie die EINGABETASTE:

      add appfw policy shopping_cart "REQ.HTTP.HEADER URL CONTAINS <string>" shopping_cart

2. Binden Sie Ihre neue Richtlinie global an, um sie in Kraft zu setzen.

Da Sie sicherstellen möchten, dass diese Richtlinie allen Verbindungen zum Warenkorb entspricht und nicht von einer anderen allgemeineren Richtlinie unterstellt wird, sollten Sie ihr eine hohe Priorität zuweisen. Wenn Sie eine (1) als Priorität zuweisen, kann diese Richtlinie von keiner anderen Richtlinie abbrechen.

Anwendungs-Firewall-Richtlinie zum Schutz von skriptbasierten Webseiten

Webseiten mit eingebetteten Skripten, insbesondere ältere JavaScripts, verletzen häufig die gleiche Ursprungsregel, die es Skripts nicht erlaubt, auf Inhalte auf einem Server außer auf dem Server, auf dem sie sich befinden, zuzugreifen oder zu ändern. Diese Sicherheitsanfälligkeit wird als siteübergreifendes Scripting bezeichnet. Die Anwendungsfirewall Cross-Site Scripting Regel filtert normalerweise Anforderungen heraus, die siteübergreifendes Scripting enthalten.

Leider kann dies dazu führen, dass Webseiten mit älteren JavaScripts nicht mehr funktionieren, selbst wenn Ihr Systemadministrator diese Skripts überprüft und weiß, dass sie sicher sind. Im folgenden Beispiel wird erläutert, wie Sie die Anwendungsfirewall so konfigurieren, dass websiteübergreifende Skripterstellung in Webseiten aus vertrauenswürdigen Quellen ermöglicht wird, ohne diesen wichtigen Filter für die restlichen Websites zu deaktivieren.

So schützen Sie Webseiten mit websiteübergreifender Skripterstellung mit der Befehlszeilenschnittstelle

  • Geben Sie in der Befehlszeile Folgendes ein, um ein erweitertes Profil zu erstellen:

    add appfw profile pr_xssokay -defaults advanced

  • Geben Sie Folgendes ein, um das Profil zu konfigurieren:

    set appfw profile pr_xssokay -startURLAction NONE -startURLClosure OFF -cookieConsistencyAction LEARN LOG STATS -fieldConsistencyAction LEARN LOG STATS -crossSiteScriptingAction LEARN LOG STATS$"

  • Erstellen Sie eine Richtlinie, die Verbindungen zu Ihren skriptbasierten Webseiten erkennt und das pr_xssokay-Profil anwendet, geben Sie Folgendes ein:

    add appfw policy pol_xssokay "REQ.HTTP.HEADER URL CONTAINS ^\\.pl\\?$ || REQ.HTTP.HEADER URL CONTAINS ^\\.js$" pr_xssokay

  • Globale Bindung der Richtlinie.

So schützen Sie Webseiten mit websiteübergreifender Skripterstellung mit dem Konfigurationsdienstprogramm

  1. Navigieren Sie zu Sicherheit > Anwendungsfirewall > Profile.

  2. Klicken Sie in der Detailansicht auf Hinzufügen.

  3. Erstellen Sie im Dialogfeld Anwendungs-Firewall-Profil erstellen ein Webanwendungsprofil mit erweiterten Standardeinstellungen, und benennen Sie es pr_xssokay. Klicken Sie auf Create und dann auf Close.

  4. Klicken Sie in der Detailansicht auf das Profil, klicken Sie auf Öffnen, und konfigurieren Sie im Dialogfeld Webanwendungsprofil konfigurieren das pr_xssokay-Profil wie unten dargestellt.

    URL-Prüfung starten: Alle Aktionen löschen.

    • Cookie-Konsistenzprüfung: Sperren deaktivieren.
    • Formularfeldkonsistenzprüfung: Sperren deaktivieren.
    • Websiteübergreifende Skriptüberprüfung: Sperren deaktivieren.

    Dadurch sollte verhindert werden, dass legitime Anforderungen an Webseiten mit websiteübergreifendem Skripting blockiert werden, von denen Sie wissen, dass sie dennoch sicher sind.

  5. Klicken Sie auf Richtlinien, und klicken Sie dann auf Hinzufügen.

  6. Erstellen Sie im Dialogfeld Anwendungs-Firewall-Richtlinie erstellen eine Richtlinie, die Verbindungen zu Ihren skriptbasierten Webseiten erkennt und das pr_xssokay-Profil anwendet:

    • Richtlinienname: pol_xssokay
    • Zugehöriges Profil: pr_xssokay
    Richtlinienausdruck: REQ.HTTP.HEADER URL CONTAINS ^\.pl\?$   REQ.HTTP.HEADER URL CONTAINS ^\.js$”
  7. Binden Sie Ihre neue Richtlinie global an, um sie in Kraft zu setzen.

DNS-Richtlinie zum Löschen von Paketen von bestimmten IPs

Im folgenden Beispiel wird beschrieben, wie Sie eine DNS-Aktion und eine DNS-Richtlinie erstellen, die Verbindungen von unerwünschten IPs oder Netzwerken erkennt, z. B. bei einem DDOS-Angriff verwendet, und alle Pakete von diesen Speicherorten löscht. Das Beispiel zeigt Netzwerke innerhalb des reservierten IANA-IP-Blocks 192.168.0.0/16. Ein feindliches Netzwerk wird normalerweise auf öffentlich routingfähigen IP-Adressen sein.

So löschen Sie Pakete von bestimmten IPs mit der Befehlszeilenschnittstelle

  • Um eine DNS-Richtlinie mit dem Namen pol_ddos_drop zu erstellen, die Verbindungen aus feindlichen Netzwerken erkennt und diese Pakete löscht, geben Sie Folgendes ein:

    add dns policy pol_ddos_drop 'client.ip.src.in_subnet(192.168.253.128/25) || client.ip.src.in_subnet(192.168.254.32/27)' -drop YES'

    Für die Beispielnetzwerke im Bereich 192.168.0.0/16 ersetzen Sie die IP und die Netzmaske im Format ##.##.##.##.###/## jedes Netzwerks, das Sie blockieren möchten. Sie können beliebig viele Netzwerke einschließen und jeden Befehl CLIENT.IP.SRC.IN_SUBNET (###.##.##.##.##.#./##) mit dem Operator OR trennen.

  • Binden Sie Ihre neue Richtlinie global an, um sie in Kraft zu setzen.

SSL-Richtlinie zum Anfordern gültiger Clientzertifikate

Das folgende Beispiel zeigt eine SSL-Richtlinie, die die Gültigkeit des Clientzertifikats des Benutzers überprüft, bevor eine SSL-Verbindung mit einem Client initiiert wird.

So sperren Sie Verbindungen von Benutzern mit abgelaufenen Clientzertifikaten

  • Melden Sie sich an der Befehlszeilenschnittstelle an.

    Wenn Sie die GUI verwenden, navigieren Sie zur Seite SSL-Richtlinien, und klicken Sie dann im Bereich Daten auf die Registerkarte Aktionen.

  • Erstellen Sie eine SSL-Aktion namens act_current_client_cert, die erfordert, dass Benutzer über ein aktuelles Clientzertifikat verfügen, um eine SSL-Verbindung mit dem Citrix ADC herzustellen.

    add ssl action act_current_client_cert-clientAuth DOCLIENTAUTH -clientCert ENABLED -certHeader "clientCertificateHeader" -clientCertNotBefore ENABLED -certNotBeforeHeader "Mon, 01 Jan 2007 00:00:00 GMT"

  • Erstellen Sie eine SSL-Richtlinie mit dem Namen pol_current_client_cert, die Verbindungen mit dem Webserver erkennt, die eine Abfragezeichenfolge enthalten.

    add ssl policy pol_current_ client_cert 'REQ.SSL.CLIENT.CERT.VALIDFROM \>= "Mon, 01 Jan 2007 00:00:00 GMT"' act_block_ssl

  • Binden Sie Ihre neue Richtlinie global.

    Da diese SSL-Richtlinie für die SSL-Verbindung eines beliebigen Benutzers gelten sollte, es sei denn, eine spezifischere SSL-Richtlinie gilt, sollten Sie ihr eine niedrige Priorität zuweisen. Wenn Sie ihm eine Priorität von tausend (1000) zuweisen, sollten Sie sicherstellen, dass andere SSL-Richtlinien zuerst ausgewertet werden. Dies bedeutet, dass diese Richtlinie nur für Verbindungen gilt, die nicht spezifischeren Richtlinienkriterien entsprechen.