我有一台运行Cloudflare背后的网络应用的Windows Server 2012 VPS。应用程序需要根据用户操作启动出站连接(例如,从URL上传图像)。问题在于这种泄漏'我的服务器的IP地址,增加了DDOS攻击的风险。
所以我想通过设置转发代理来阻止我的服务器的IP被发现。到目前为止,我的研究表明,这不是一项简单的任务,而是需要设置另一个VPS作为代理。
这个额外的转发代理VPS是否必须运行Windows?他们的任何付费服务是否可以作为我服务器的转发代理(如cloudflare的反向代理系统)?
此外,似乎建议的IIS转发代理插件Application Request Routing不适用于HTTPS。
是否有两种传出(HTTPS + HTTP)请求的解决方案?
我真的迷失在这里,所以任何帮助或建议都会受到赞赏。
答案 0 :(得分:1)
您需要“正向代理”是正确的。对此的一个很好的比喻是您的浏览器对出站请求的代理设置。在您的情况下,Web应用程序的行为类似于桌面浏览器,可以配置为通过代理发出资源请求。
通常,您可以在应用程序层对各个请求进行控制。使用C#执行此操作的示例:C# Connecting Through Proxy
就实际代理服务器而言:不,它不需要运行Windows或IIS。是的,您可以使用代理服务。绝大多数代理服务都面向消费者,用于个人隐私或绕过网络限制。因此,我没有直接的建议。
Cloudflare实际上有关于此的建议:https://blog.cloudflare.com/ddos-prevention-protecting-the-origin/。
应该配置允许用户从给定URL上传照片的“从URL上传”等功能,以便执行下载的服务器不是网站原始服务器。
这可能是一种更舒适的风险缓解措施,因为它不依赖于第三方代理服务。上传请求可以作为对专用“文件下载器”服务器的Web服务调用来处理。 请记住,如果您有另一台服务器的排队进程来完成工作,并且该服务器托管在同一个基础架构中,则两者都可能会受到DDoS的影响,具体取决于DDoS的类型。
您的问题意味着您可能习惯使用非Windows服务器。 存在许多可以作为代理(大多数Web服务器)运行的软件,但遇到与ARR相同的问题 - 缺乏对HTTP“CONNECT”动词的支持,现在的浏览器使用它来启动HTTPS连接之前发出“GET”。 SQUID是非常受欢迎的,开源的,并支持连接到任何东西的一切。设置并非易事。 Apache也在“mod_proxy_connect”中支持此功能,但我没有相关经验,在线文档也不是很强大。不过,它是Apache,所以值得进一步调查。