2016-07-14 33 views
6

Ich habe einen Windows Server 2012 VPS mit einer Web-App hinter Cloudflare. Die App muss ausgehend von Benutzeraktionen ausgehende Verbindungen initiieren (z. B. Bild von URL hochladen). Das Problem ist, dass dies die IP-Adresse meines Servers "leckt" und das Risiko von DDOS-Angriffen erhöht.Wie forward Proxy auf dem Windows-Server für ausgehende HTTP- und HTTPS-Anforderungen einrichten?

So möchte ich verhindern, dass die IP meines Servers entdeckt wird, indem Sie einen Forward-Proxy einrichten. Bisher haben meine Untersuchungen gezeigt, dass dies keine einfache Aufgabe ist, und würde die Einrichtung eines anderen VPS beinhalten, der als Proxy fungiert.

Muss dieser zusätzliche Forward Proxy VPS Windows ausgeführt werden? Sind das kostenpflichtige Dienste, die als Forward-Proxy für meinen Server dienen können (wie das Reverse-Proxy-System von cloudflare)?

Es scheint auch, dass das vorgeschlagene IIS Forward Proxy-Plugin, Application Request Routing, nicht für HTTPS funktioniert.

Gibt es eine Lösung für beide Arten von ausgehenden (HTTPS + HTTP) Anfragen?

Ich bin wirklich hier verloren, so dass jede Hilfe oder Vorschläge geschätzt werden würde.

Antwort

1

Sie benötigen einen "Forward Proxy". Eine gute Analogie dazu sind die Proxy-Einstellungen Ihres Browsers für ausgehende Anfragen. In Ihrem Fall verhält sich die Webanwendung wie ein Desktop-Browser und kann so konfiguriert werden, dass die Ressourcenanforderung über einen Proxy erfolgt.

Oft können Sie dies für individuelle Anforderungen auf der Anwendungsebene steuern. Ein Beispiel dafür mit C#: C# Connecting Through Proxy

Soweit der eigentliche Proxy-Server: Nein, es muss nicht Windows oder IIS ausführen. Ja, Sie können einen Proxy-Service verwenden. Die überwiegende Mehrheit der Proxy-Dienste richtet sich an die Verbraucher und wird für die Privatsphäre oder zur Vermeidung von Netzwerkbeschränkungen verwendet. Daher habe ich keine direkten Empfehlungen.

Cloudflare hat diesbezüglich Empfehlungen: .

Funktionen wie "Upload von URL", mit denen der Benutzer ein Foto von einer bestimmten URL hochladen kann, sollten so konfiguriert werden, dass der Server, der den Download durchführt, nicht der Ursprungsserver der Website ist.

Dies kann eine komfortablere Risikoabschwächung sein, da es nicht von einem Proxy-Dienst eines Drittanbieters abhängt. Eine Anfrage zum Hochladen könnte als Web-Service-Aufruf an einen dedizierten "Datei-Downloader" -Server gehandhabt werden. Denken Sie daran, dass bei einem Prozess in der Warteschlange für einen anderen Server, der die Arbeit übernimmt und dieser Server in der gleichen Infrastruktur gehostet wird, beide von einem DDoS abhängig sein können, abhängig vom Typ des DDoS.

Ihre Frage impliziert, dass Sie sich mit einem Nicht-Windows-Server wohl fühlen. Es gibt viele Software, die als Proxy funktionieren kann (die meisten Webserver), aber unter dem gleichen Problem wie ARR leiden - fehlende Unterstützung für das HTTP "CONNECT" Verb, das von modernen Browsern verwendet wird, um eine HTTPS Verbindung zu starten "BEKOMMEN". SQUID ist sehr beliebt, Open Source, und unterstützt alles, um sich mit irgendetwas zu verbinden. Es ist nicht trivial einzurichten. Apache hat auch Unterstützung dafür in "mod_proxy_connect", aber ich habe keine Erfahrung damit und die Online-Dokumentation ist nicht sehr robust. Es ist jedoch Apache, also kann es die zusätzliche Untersuchung wert sein.