nginx如何有效禁止未绑定的域名访问自己的网站?

回复 收藏
本帖最后由 Sniper 于 2016-4-28 22:08 编辑

A域名是正常访问的站点,结果被另一个未绑定的非法B域名访问了,这种情况怎样从根本上限制呢?
2016-04-28 21:37 举报
已邀请:
0

wsw13640218682

赞同来自:

本帖最后由 wsw13640218682 于 2016-4-28 22:12 编辑

在虚拟主机上设置好指定的域名,就可以防止别人用hosts文件来解释你的正常域名了
以apache为例:   

     vi   /usr/local/apache2/conf/extra/httpd-vhosts.conf
     
           DocumentRoot"/tmp/111/"  #默认虚拟主机,添加多一个不存在的服务器定义的域名来创建一个空目录/文件,限制不是服务器自定义域名的访问
           ServerName www.i1111.com
                   

  #   ServerAdmin webmaster@dummy-host.example.com   
      DocumentRoot "/usr/local/apache2/htdocs/"
      ServerName www.user10.com                    #默认虚拟主机,指定服务器自定义域名的访问
      ServerAlias www.12g3a.com
      ServerAlias www.12a.com

   nginx的话:
    vi /usr/local/nginx/conf/vhosts/default.conf
    server
  {
      listen 80 default_server;
      server_name localhost;
      index index.html index.htm index.php;               #单独设一个不存在的虚拟主机,拒绝输入任何解释访问
      root /tmp/1233;              #创建一个空目录输入任何域名,都会403错误,防止对方自定义访问
      deny  all;
  }   

    vi  /usr/local/nginx/conf/vhosts/111.conf
    server
   {
      listen 80;
       server_name www.user13.com www.23a.com www.22a.com;                  #服务器指定的域名..
     }  




0

Sniper

赞同来自:

我这里多个前端nginx代理机,向后端转发的机制,按照你的写法,我是这样设置的,但仍然无效。

前端nginx代理
    server {
        listen 80 default_server;
        server_name  localhost;
        location / {
                proxy_pass        http://1.1.1.1;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  FORWARDED-FOR  $remote_addr;
                proxy_set_header Host $host;
                }
        }

后端web
vi /usr/local/nginx/conf/vhosts/default.conf
   server  {  
        listen 80 default_server;
        server_name localhost;   
        index index.html index.htm index.php;
        root /tmp/1233;
        deny  all;
        }

vi  /usr/local/nginx/conf/vhosts/111.conf
server
   {
        listen 80;
        server_name www.abc.com www.23a.com www.22a.com;  
        set_real_ip_from   1.1.1.1;               
     }  



0

乐橙306

赞同来自:

1
0

阿铭 管理员

赞同来自:

Sniper 发表于 2016-4-28 23:07
我这里多个前端nginx代理机,向后端转发的机制,按照你的写法,我是这样设置的,但仍然无效。

前端nginx ...

在代理机器上直接禁止即可。  比如你想禁掉的域名为 www.111.com  配置文件这样写。
在nginx.conf 中加一段
server
  {
      listen 80 ;
      server_name www.111.com;  #如果有多个域名,直接往后加空格加域名
      index index.html index.htm index.php;               
      root /tmp/1233;              
      deny  all;
  }   
0

maria

赞同来自:

{:6_137:}做成虚拟主机按域名区分,即使别人用其他域名链接你的主机也不会访问到你的网站
0

Sniper

赞同来自:

通过昨晚上研究分析,码蛋的,这家伙是即时采集的数据,只要A域名放什么文件,换成B域名直接就可以打开,然后把A域名换成B域名再输到浏览器上显示

正常站 www.A.com/a.html   外面IP1.1.1.1

非法站 www.B.com/a.html   外面IP2.2.2.2   实际采集IP3.3.3.3  

在不知道真实采集IP前,通过nginx怎么限制都没有任何作用,昨天只封了它的外面的IP没用的,现在封了它真实的采集IP后非法B域名才访问不了。
0

木树

赞同来自:

铭哥的视频有讲到的
0

栋佐

赞同来自:

开启虚拟主机,禁止default_server就可以了。

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: