PRIVATE OFFSHORE-INFRASTRUKTUR
Web & OnionAngewandt · 4 Min. Lesezeit

Trennen Sie Ihre öffentliche Web-Kante von der Anwendung

Geben Sie Webserver, Reverse-Proxy und Anwendung unterschiedliche Verantwortlichkeiten, mit bewusstem Origin-Zugriff, TLS, Anfragelimits und einem Incident-Pfad.

Von SwissOctet Editorial
DIE DIREKTE ANTWORT

Trennen Sie die HTTP-Veröffentlichung von der Anwendungsausführung und persistenten Daten. Ein Reverse-Proxy kann Routing und Limits organisieren, aber Ursprungszugriff, Anwendungsautorisierung, Upstream-Kapazität und Wiederherstellung erfordern jeweils eigene Kontrollen.

01

Eine Webanfrage durchläuft mehrere Zuständigkeiten

Ein Webserver empfängt HTTP-Anfragen und kann statische Dateien bereitstellen. Ein Anwendungsprozess führt das dynamische Verhalten des Projekts aus, beispielsweise das Prüfen eines Kontos oder das Abfragen einer Datenbank. Ein Reverse-Proxy empfängt Anfragen im Namen dieses Prozesses und leitet sie an einen Upstream weiter. Ein Programm kann mehrere Rollen erfüllen, aber die Trennung der Zuständigkeiten erleichtert das Nachvollziehen von Konfiguration und Wiederherstellung.

Verfolgen Sie eine Anfrage von der Hostnamen-Auflösung bis zur Antwort. Halten Sie fest, wo TLS endet, welcher Prozess die Route wählt und welche Komponente Anwendungsdaten lesen kann. Tun Sie dasselbe für eine administrative Anfrage. Diese Übung deckt oft einen Listener oder Hostnamen auf, der zu Testzwecken erstellt wurde und versehentlich erreichbar geblieben ist. Das Diagramm sollte den bereitgestellten Pfad beschreiben, nicht die Architektur, die Sie zu bauen gehofft hatten.

02

Nutzen Sie die Kante, um HTTP-Verhalten zu organisieren

NGINX dokumentiert sowohl das Bereitstellen statischer Inhalte als auch das Weiterleiten von Anfragen an einen Upstream. Seine Worker-Architektur und HTTP-Module bieten Konfigurationsmechanismen, aber eine bestimmte Konfiguration bestimmt weiterhin das Verhalten. Definieren Sie Hostnamen, Upstreams und Dateisystem-Wurzeln bewusst. Beschränken Sie die Dateien, die bereitgestellt werden können, damit Konfiguration, Anmeldeinformationen und Repository-Metadaten niemals herunterladbar werden, nur weil sie zufällig neben der Anwendung liegen.

Legen Sie angemessene Limits für Anfragekörper, Timeouts und Verbindungen entsprechend der Anwendung fest. Behandeln Sie Caches als Datenentscheidung: Inhalte, die an einen Benutzer oder eine Berechtigung gebunden sind, können nicht ohne Prüfung sicher eine gemeinsame Caching-Regel übernehmen. Testen Sie Authentifizierung und Cache-Verhalten zusammen. Halten Sie eine reproduzierbare Konfiguration ein und validieren Sie Änderungen vor dem Neuladen des Dienstes, mit einem bekannten Weg zurück zur vorherigen funktionierenden Version.

SchichtNützliche ZuständigkeitVor dem Start prüfen
Öffentliche Web-KanteTLS, Hostnamen-Routing und HTTP-LimitsZertifikate, Wurzeln und beabsichtigte Hostnamen
AnwendungsprozessGeschäftslogik und AutorisierungAuthentifizierung, Eingabeprüfungen und Abhängigkeitsausfall
Interner DatendienstPersistenter AnwendungszustandBeschränkter Zugriff und getestete Wiederherstellung
Upstream-AnbieternetzwerkDer vertraglich vereinbarte NetzwerkdienstSchutzumfang und Eskalationsweg
03

Ein Reverse-Proxy beseitigt nicht die Exposition des Ursprungs

Wenn der Ursprung öffentlich erreichbar bleibt, kann ein Client ihn erreichen, ohne die vorgesehene Proxy-Route zu nutzen. Beschränken Sie den Ursprungszugriff durch das Netzwerkdesign und die Anwendungskonfiguration, wenn die Bereitstellung diese Grenze erfordert. Auf einer Maschine kann ein Backend oft auf Loopback oder einem lokalen Socket lauschen. Über Maschinen hinweg verwenden Sie explizite eingeschränkte Routen und geeigneten Schutz für die Upstream-Verbindung.

Weitergeleitete Header benötigen ebenfalls eine Vertrauensregel. Akzeptieren Sie Informationen über den ursprünglichen Client nur von vertrauenswürdigen Vermittlern und verhindern Sie, dass beliebige Aufrufer Werte liefern, die die Anwendung als autoritativ behandelt. Entscheiden Sie, was in Zugriffsprotokollen und Fehlerberichten erscheint. Ein Proxy kann die auf jeder Ebene verfügbaren Informationen ändern; er löscht keine Kontokennungen und macht die Anwendung nicht anonym gegenüber ihrem eigenen Betreiber.

04

Treffen Sie Zugriffsentscheidungen innerhalb der Anwendung

Die Zero-Trust-Architektur von NIST konzentriert sich auf Zugriffsentscheidungen für Ressourcen statt auf implizites Vertrauen allein aufgrund des Netzwerkstandorts. Wenden Sie dieses Prinzip konkret an: Authentifizieren Sie den Aufrufer, autorisieren Sie die angeforderte Operation und geben Sie Dienstkonten nur ihren erforderlichen Umfang. Eine Anfrage, die aus einem internen Subnetz eintrifft, sollte nicht automatisch zu einer Administratoranfrage werden.

Trennen Sie öffentliche und administrative Funktionen, wo dies praktikabel ist. Überprüfen Sie die Berechtigung erneut, wenn ein Benutzer auf einen Datensatz zugreift, anstatt sich nur auf die anfängliche Anmeldung zu verlassen. Halten Sie die Anmeldeinformationen für Proxy, Anwendung und Datenbank getrennt. Führen Sie Änderungen in testbaren Phasen ein, beginnend mit einem schmalen sensiblen Pfad. Eine Bereitstellung Zero Trust zu nennen, ist weniger nützlich, als nachzuweisen, dass eine verbotene Aktion tatsächlich an der dafür verantwortlichen Komponente verweigert wird.

05

Planen Sie Dienstverweigerung auf mehr als einer Ebene

Eine gesättigte Netzwerkverbindung und eine teure Anwendungsanfrage versagen an unterschiedlichen Stellen. Ratenbegrenzung an der Web-Kante kann helfen, Anforderungsmuster einzuschränken, während Anwendungslimits Arbeit wie Suchen, Uploads oder Exporte begrenzen können. Das Request-Limit-Modul von NGINX bietet einen Mechanismus; der Schlüssel und die Schwellenwerte müssen zu realen Benutzern passen und getestet werden, um legitimen Verkehr nicht abzulehnen.

Die Denial-of-Service-Richtlinien von OWASP behandeln auch Ressourcenerschöpfung im Anwendungsverhalten. Setzen Sie Zeit- und Größenlimits um teure Arbeit, verwenden Sie begrenzte Warteschlangen und überwachen Sie Fehlersignale. Lokale Kontrollen können keine Kapazität in einer bereits gesättigten Upstream-Verbindung schaffen. Bestätigen Sie den spezifischen Netzwerkschutz, der im gewählten Angebot enthalten ist, und bereiten Sie einen Eskalationsweg vor. Gehen Sie niemals davon aus, dass der Layer-3–4-Schutz eines Katalogs auch den Schutz für jede HTTP-Workload beweist.

06

Machen Sie die Wiederherstellung zum Teil der Veröffentlichung

Prüfen Sie die Website von einem externen Client aus unter ihrem vorgesehenen Hostnamen. Verifizieren Sie HTTPS, Weiterleitungen, statische Ressourcen, Anmeldungen und eine repräsentative Anwendungstransaktion. Bestätigen Sie, dass administrative Listener und private Dateien unzugänglich bleiben. Simulieren Sie einen gestoppten Upstream und prüfen Sie, dass die Kante einen kontrollierten Fehler zurückgibt, anstatt interne Details preiszugeben oder ohne Limit zu warten.

Lesen Sie für Canvas die im Hosting-Konto verfügbaren Kontrollen. Für einen VPS pflegen Sie die Web-Kante und die Anwendung als Teil Ihres eigenen Betriebsplans. Ein großer Netzwerkport ist eine Kapazitätsspezifikation, kein Beweis dafür, dass die Anwendung diesen Durchsatz aufrechterhalten kann. Behalten Sie Überwachung, Wiederherstellung und Anbieterkontakte im Runbook. Veröffentlichen Sie erst, nachdem der tatsächliche Anforderungspfad und ein praktikabler Wiederherstellungspfad verifiziert wurden.

MACHEN SIE ES ZU HANDLUNG

Ihre praktische Checkliste.

  • Verfolgen Sie eine öffentliche und eine administrative Anfrage.
  • Definieren Sie bereitgestellte Wurzeln und Upstream-Listener.
  • Vertrauen Sie weitergeleiteten Headern nur von genehmigten Vermittlern.
  • Testen Sie Autorisierungs- und Cache-Grenzen.
  • Bereiten Sie Limits und Eskalation für Netzwerk- und Anwendungsausfälle vor.
HÄUFIGE FRAGEN

Die Details, die zählen.

Kann ein Webserver auch als Reverse-Proxy fungieren?+

Ja. NGINX ist ein dokumentiertes Beispiel. Seine Rollen hängen von der Konfiguration ab, und die Anwendung benötigt weiterhin ihre eigene Autorisierung und Wartung.

Verbirgt ein Reverse-Proxy automatisch den Ursprung?+

Nein. Der Ursprung kann erreichbar bleiben, es sei denn, Routing-, Firewall- und Listener-Einstellungen erzwingen die beabsichtigte Grenze.

Stoppt die Anforderungsbegrenzung jeden DDoS-Angriff?+

Nein. Sie adressiert ausgewählte HTTP-Anforderungsmuster. Netzwerksättigung und andere Ressourcenausfälle erfordern geeignete Upstream- und Anwendungskontrollen.

PRIMÄRE REFERENZEN

Gehen Sie zur Quelle.

Diese Referenzen unterstützen die technischen Konzepte in diesem Leitfaden. Folgen Sie der aktuellen Dokumentation, bevor Sie ein Produktionssystem ändern.

  1. NGINX: Einsteigerhandbuch nginx.org
  2. NGINX: HTTP-Anforderungsbegrenzung nginx.org
  3. NIST SP 800-207: Zero-Trust-Architektur nvlpubs.nist.gov
  4. OWASP: Verhinderung von Dienstverweigerung cheatsheetseries.owasp.org

Redaktionelle Beratung durch SwissOctet. Beispiele sind illustrativ. Servicespezifikationen, verfügbare Optionen und vertragliche Bedingungen müssen separat überprüft werden.

VERBINDEN SIE DAS WISSEN

Verwandte Infrastruktur.

HALTEN SIE DEN FADEN

Ihre nächsten Feldnotizen.

Alle Leitfäden entdecken