Nginx 防止被域名恶意解析的办法

Nginx 防止被域名恶意解析的办法

前言:

今天太倒霉了,发现通过IP无法访问服务器的80端口很无语,昨天都还好的啊,也没有修改过配置,其他端口又是正常的,防火墙也没问题。于是问了下机房,给了个崩溃的回复说我们的服务器有个域名没有备案被电信多次通告,然后就把我们ip端口给封了。。。。封了啊。。。疯了,关键是这个域名TMD不是我的啊

经过一番折腾,发现是 nginx 配置上貌似有个漏洞,导致任何域名解析到服务器都能被正常请求,虽然是个空白页,但HTTP状态码是200。

主要是缺少下面的配置代码:nginx 版本 1.8.0

server {
  listen    80 default_server;
  server_name _;
  return    403;
}

让所有没有配置过的 server_name 都返回 403 错误

我以前 Nginx 也重未加过这个配置,但重来没遇到过此类问题,而且我在另一台服务器上测试,即便没有这个代码也不可能解析并请求成功啊,很是无语。

补充:

搜索了一圈后发现 Nginx 对这类问题,貌似应该用自身特有的 444 这个状态码最好

server {
  listen    80 default_server;
  server_name _;
  access_log  off;
  return    444;
}

这样在浏览器端访问的时候,浏览器会自动提示用户无法访问

Nginx 防止被域名恶意解析的办法

通过 CURL 抓取的结果(输出的是HTTP错误信息)

Nginx 防止被域名恶意解析的办法

如有疑问请留言或到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关推荐