防止网站真实ip泄漏是web安全中的重要议题,能避免DDoS流量直达真实主机、主机被渗透攻陷等风险。实践中该如何防止真实ip泄漏呢?
个人认为有以下几条重要的防范措施:
- 前端架设反向代理服务器或上cdn。通过代理服务器再访问业务主机,不仅更安全,还可以加速用户访问。另外部署起来也容易,所以不管大中小型网站,都是非常推荐的。
- 架设防火墙,仅允许白名单ip访问真实主机;不管是自行架设的反向代理服务器还是cdn,基本上都可以拿到ip(段)列表。将这些ip加入白名单,屏蔽其他ip的直接访问,即使外界用zmap、带host扫描也无法探测到。
- 尽量避免真实业务主机直接发起对外连接;不理解这条的人可以想想以下场景:用户注册激活、找回密码等业务需要发邮件,如果业务主机直接通过smtp方式向外发邮件,绝大部分情况下邮件header中会出现真实ip;将markdown编辑器中用户输入url的图片下载到本地,如果是业务主机直接下载,则能轻易拿到真实ip。诸如类似的情况不少,故而对外请求应该都谨慎。
- 防止二级域名泄漏。www上了cdn,管理后台的admin、邮件解析的mx没有经过cdn并且解析到业务主机的ip,则以另一种形式泄漏了真实ip。
此外还有一些细节需要注意:
- cdn如果只用了国内的,则可以通过国外主机ping来发现真实ip;
- phpinfo、应用程序漏洞可能会泄漏真实ip;
- 同一内网主机/虚拟主机沦陷后嗅探到真实ip。
综上,让真实业务主机在外界看起来是不可达的,或者说黑洞,并且应用程序无可利用漏洞,那就非常安全了。
参考
本文最后修改日期:2020年1月24日