随机域停在我的服务器上

时间:2014-10-01 18:05:49

标签: nginx dns

我正在查看我的nginx错误日志并发现了奇怪的记录

2014/10/01 13:41:20 [error] 9825#0: *1628 "/home/mysite/public_html/phone/99476982139/index.html" is not found (2: No such file or directory), client: 37.187.107.37, server: mysite.com, request: "GET /phone/99476982139/ HTTP/1.1", host: "blabla.co.uk"

2014/10/01 13:41:22 [error] 9825#0: *1629 "/home/mysite/public_html/phone/99476982139/index.html" is not found (2: No such file or directory), client: 180.76.5.145, server: mysite.com, request: "GET /phone/99476982139/ HTTP/1.1", host: "blabla.com.ar"

但接下来发生的事情令人惊讶 - 我访问了那些奇怪的域名 - blabla.co.uk和blabla.com.ar,他们和我的mysite.com有相同的内容!如果我更改了我的index.html文件,那么我生命中第一次看到的那些域名的内容就会发生变化!

我对此网站的nginx配置非常简单

server{
    listen 80;
    server_name www.mysite.com mysite.com;
    root /home/mysite/public_html;
}

怎么会发生这种情况? 如何保护我的服务器免受对随机域的请求?

1 个答案:

答案 0 :(得分:2)

我猜这些域只是指向服务器的IP。

为了保护自己免受此类攻击,只需在配置中添加默认服务器块即可。所有未明确指向您域的请求都会被发送到默认服务器并最终会丢弃..这是一个简单的例子:

server {
  listen 80;
  server_name www.mysite.com mysite.com;
  root /home/mysite/public_html;
}

server {
  listen 80 default_server;
  root /var/www/dead; 
}

'dead'是一个空文件夹..您可能还想尝试将deny all;添加到默认服务器块。