Dienst zum Schutz vor DoS (Denial of Service) für Java 8 konfigurieren

Mit dem Dienst zum Schutz vor DoS-Angriffen (Denial of Service) von App Engine können Sie Ihre Anwendung davor schützen, Kontingente zu überschreiten, wenn sie DoS-Angriffen oder ähnlichen Übergriffen ausgesetzt ist. Sie können einer Sperrliste IP-Adressen oder Subnetze hinzufügen. Anfragen, die von diesen Adressen oder Subnetzen ausgehen, werden dann vor dem Aufruf Ihres Anwendungscodes gelöscht. Für diese Anfragen werden keine abgerechneten oder anderen Ressourcenzuweisungen genutzt.

Standardmäßig zeigt App Engine für Adressen, die sich auf der Sperrliste befinden, eine allgemeine Fehlerseite an. Sie können Ihre Anwendung aber auch so konfigurieren, dass stattdessen eine benutzerdefinierte Antwort ausgegeben wird.

Vorbereitung

Sie erstellen die Datei dos.xml im Verzeichnis WEB-INF Ihrer Anwendung. In dieser Datei geben Sie die IP-Adressen und Netzwerke an, die auf die Sperrliste gesetzt wurden.

Anfragen mit DoS-Sperrlisten blockieren

Sie können einer Sperrliste IP-Adressen und IP-Subnetze hinzufügen, um zu verhindern, dass diese auf Ihre Anwendung zugreifen.

Die Datei dos.xml ist auf 100 Einträge beschränkt. Deshalb müssen Sie möglicherweise ganze Subnetze blockieren, wenn Sie mit einem DoS-Angriff konfrontiert werden. Dies ist auch ein guter Schutz, wenn Sie feststellen, dass mehrere IP-Adressen aus demselben Netzwerk Teil eines DoS-Angriffs auf Ihre Anwendung sind.

Sperrlisteneinträge für IP-Adressen erstellen

Wenn Sie den Zugriff auf Ihre Anwendung für eine oder mehrere IP-Adressen blockieren möchten, geben Sie diese IPv4- oder IPv6-Adressen in der Datei dos.xml an. Beispiel:

<?xml version="1.0" encoding="UTF-8"?>
<blacklistentries>
  <blacklist>
    <subnet>1.2.3.4</subnet>
    <description>a single IP address</description>
  </blacklist>
  <blacklist>
    <subnet>abcd::123:4567</subnet>
    <description>an IPv6 address</description>
  </blacklist>
</blacklistentries>

Bei einem DDoS-Angriff (Distributed Denial of Service) müssen Sie wahrscheinlich nicht nur einzelne IP-Adressen, sondern ganze Subnetze blockieren.

Beispiele finden Sie in der Referenz zu dos.xml.

Nachdem Sie die Datei dos.xml erstellt haben, müssen Sie sie in die Anwendung hochladen.

Sperrlisteneinträge für IP-Subnetze erstellen

Sie können verhindern, dass ein IP-Subnetz auf Ihre Anwendung zugreift. Dazu geben Sie dieses IP-Subnetz im CIDR-Format an. Das Tool IP to CIDR unterstützt Sie beim Erstellen von Regeln in der CIDR-Notation.

<?xml version="1.0" encoding="UTF-8"?>
<blacklistentries>
  <blacklist>
    <subnet>abcd::123:4567/48</subnet>
    <description>an IPv6 subnet</description>
  </blacklist
  <blacklist>
    <subnet>abcd::123:4567/48</subnet>
    <description>an IPv6 subnet</description>
  </blacklist
</blacklistentries>

Beispiele finden Sie in der Referenz zu dos.xml.

Nachdem Sie die Datei dos.xml erstellt haben, müssen Sie sie in die Anwendung hochladen.

Benutzerdefinierte Fehlermeldungen für Anfragen auf Sperrlisten erstellen

Standardmäßig wird für Anfragen, die vom DoS-Schutzdienst blockiert werden, eine allgemeine Fehlerseite angezeigt. Bei verteilten Denial-of-Service-Angriffen kann aber auch z. B. ein infizierter Computer eines berechtigten Nutzers beteiligt sein. Mit einer benutzerdefinierten Fehlerseite können solche Nutzer darüber informiert werden, warum ihnen der Zugriff verweigert wurde.

  1. Erstellen Sie in Ihrem Anwendungsverzeichnis eine statische Datei für die Verarbeitung von Anfragen, die vom DoS-Schutzdienst blockiert werden.

  2. Legen Sie in der Datei appengine-web.xml einen Fehler-Handler für DoS-Antworten fest. Geben Sie dazu den Pfad zu der statischen Datei an und fügen den <static-error-handlers>-Typ von dos_api_denial hinzu:

    <static-error-handlers>
      <handler error-code="dos_api_denial" file="dos-response.html" />
    </static-error-handlers>
    

Alle Einträge auf der Sperrliste löschen

So löschen Sie alle Einträge auf der Sperrliste:

  1. Bearbeiten Sie die Datei dos.xml so, dass sie nur noch Folgendes enthält:

    <?xml version="1.0" encoding="UTF-8"?>
    <blacklistentries/>
    

    Wenn Sie dos.xml löschen, werden die Sperrlisten jedoch nicht entfernt.

  2. Stellen Sie dos.xml noch einmal bereit, damit die Änderungen wirksam werden.

DoS-Ablehnungsfehler in der Console ansehen

Sie können sich die Anzahl der abgelehnten Anfragen in einer Grafik anzeigen lassen.

  1. Rufen Sie in der Google Cloud Console das App Engine-Dashboard auf:

    Grafik zu Fehlerdetails in App Engine öffnen

  2. Passen Sie den Zeitrahmen der Grafik nach Bedarf an, um die gewünschten Ergebnisse zu sehen.

DoS-Sperrliste hochladen

DoS-Konfigurationen können mithilfe von appcfg.sh hochgeladen werden. Wenn Sie Ihre Anwendung mit appcfg.sh update in App Engine hochladen, wird der DoS-Schutzdienst mit dem Inhalt der dos.xml-Konfigurationsdatei aktualisiert.

Möchten Sie nur die DoS-Konfigurationsdatei aktualisieren, ohne die gesamte Anwendung hochzuladen, so verwenden Sie den folgenden Befehl:

appcfg.sh update_dos [PATH_TO_CONFIG_FILE]/dos.xml

Nächste Schritte