2016-07-14 208 views
6

Ho un Windows Server 2012 VPS che esegue un'app Web dietro Cloudflare. L'app deve avviare connessioni in uscita in base alle azioni dell'utente (ad esempio, caricare l'immagine dall'URL). Il problema è che questo "perde" l'indirizzo IP del mio server e aumenta il rischio di attacchi DDOS.Come configurare il proxy forward sul server Windows per le richieste HTTP e HTTPS in uscita?

Quindi vorrei impedire che l'IP del mio server venga scoperto impostando un proxy forward. Finora la mia ricerca ha dimostrato che non si tratta di un compito semplice, e implicherebbe la creazione di un altro VPS per agire come proxy.

Questo VPS proxy di inoltro aggiuntivo deve essere in esecuzione Windows? Sono i loro servizi a pagamento che potrebbero fungere da proxy forward per il mio server (come il sistema di reverse proxy di cloudflare)?

Inoltre, sembra che il plug-in proxy di inoltro IIS suggerito, Application Request Routing, non funzioni per HTTPS.

Esiste una soluzione per entrambi i tipi di richieste in uscita (HTTPS + HTTP)?

Sono davvero perso qui, quindi qualsiasi aiuto o suggerimento sarebbe apprezzato.

risposta

1

È necessario disporre di un "Proxy inoltro". Una buona analogia è rappresentata dalle impostazioni proxy del browser per le richieste in uscita. Nel tuo caso, l'applicazione web si comporta come un browser desktop e può essere configurata per fare la richiesta di risorse attraverso un proxy.

Spesso è possibile controllare questo per singole richieste a livello di applicazione. Un esempio di farlo con C#: C# Connecting Through Proxy

Per quanto riguarda il server proxy effettivo: No, non è necessario eseguire Windows o IIS. Sì, è possibile utilizzare un servizio proxy. La stragrande maggioranza dei servizi proxy è rivolta ai consumatori e viene utilizzata per la privacy personale o per aggirare le restrizioni della rete. In quanto tale, non ho raccomandazioni dirette.

In realtà, Cloudflare ha raccomandazioni in merito: https://blog.cloudflare.com/ddos-prevention-protecting-the-origin/.

Caratteristiche come "upload da URL" che consentono all'utente di caricare una foto da un dato URL devono essere configurate in modo che il server che esegue il download non sia il server di origine del sito Web.

Questo può essere un mitigatore di rischio più comodo, in quanto non dipenderebbe da un servizio proxy di terze parti. Una richiesta di caricamento potrebbe essere gestita come una chiamata al servizio web a un server dedicato "downloader di file". Tenere presente che se si dispone di un processo in coda per un altro server per eseguire il lavoro e che il server è ospitato nella stessa infrastruttura, entrambi potrebbero essere influenzati da un DDoS, a seconda del tipo di DDoS.

La domanda implica che si possa stare tranquilli utilizzando un server non Windows. Esistono molti software che possono funzionare come proxy (la maggior parte dei server web), ma soffrono dello stesso problema di ARR - mancanza di supporto per il verbo HTTP "CONNECT", che viene utilizzato dai browser moderni per avviare una connessione HTTPS prima di emettere un "OTTENERE". SQUID è molto popolare, open source e supporta tutto per connettersi a .. qualsiasi cosa. Non è banale da configurare. Apache ha anche il supporto per questo in "mod_proxy_connect", ma non ho esperienza in questo e la documentazione online non è molto robusta. È Apache, quindi, potrebbe valere la pena di investigare in più.