博客列表 >防止恶意域名解析

防止恶意域名解析

弘德誉曦的博客
弘德誉曦的博客原创
2019年06月03日 16:07:122393浏览

一:什么是恶意域名解析

        一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定。但是,如果通过主机IP能直接访问某网站,那么把域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站。

二:恶意域名解析的危害

        可能您并不介意通过别人的域名访问到您的网站,但是如果这个域名是未备案域名呢?

        假如那域名是不友善的域名,比如曾经指向非法网站,容易引发搜索引擎惩罚,连带IP受到牵连。即使域名没什么问题,但流量也会被劫持到别的域名,从而遭到广告联盟的封杀。

三:防止域名恶意解析方法

1.nginx服务

  定义一个默认的空主机名,禁止其访问,需要通过的域名一定要在其他server配置。

server {
   listen       80 default;
   server_name  "";   

    return  444;
}

或者

server {
   listen       80 default;
   server_name  _;    return  444;
}

注:443端口配置如下

server {
    listen 443 default;
    server_name "";
    ssl on; 
    ssl_certificate /var/www/node/...
    ssl_certificate_key /var/www/node/....
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    return 444;  
}


 

2.Tomcat服务

修改server.xml这个配置文件

比如服务器IP地址是 10.0.0.60 ,相应域名是 www.wzlinux.com

打开 %TOMCAT_HOME%/conf/server.xml文件

找到 Engine节点作如下Xml代码 ,事例:


<Engine name="Catalina" defaultHost="www.piis.cn">
  <Host name="www.piis.cn" appBase="webapps"         unpackWARs="true" autoDeploy="true"         xmlValidation="false" xmlNamespaceAware="false"/>
  <Host name="10.0.0.60" appBase="ipapps"         unpackWARs="true" autoDeploy="true"         xmlValidation="false" xmlNamespaceAware="false"/>
</Engine>


注意事项:

  1. Engine 节点配置的 defaultHost 表明缺省访问的Host。defaultHost对应的名称必须存在于Engine节点下配置的host节点中。

  当一台机器有多个IP,而按照规定只允许通过一个指定的域名访问时很有用。此时,把defaultHost指定为非域名对应的host,这样不通过域名访问时就都定位到指定的非域名HOST了

  2. Host 节点 name 对应IP地址,以及域名。一个Host只有指定一个IP或域名。

  3. Host 节点的 appBase ,对应的是存放web应用的目录。这里输入的目录相对于 %TOMCAT_HOME%,

  如上面的www.wzlinux.com对应的目录是 %TOMCAT_HOME%/webapps,而10.0.0.60 对应的目录是 %TOMCAT_HOME%/ipapps。

 

3.Apache服务

在用apache搭建的WEB服务器的时候,如何想只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢,有以下两种方法可以实现(当然肯定还会有其他方法可以实现),都是修改httpd.conf文件来实现的,下面举例说明。 

1、方法一

在httpd.conf文件最后面,加入以下代码 


NameVirtualHost 221.*.*.*
<VirtualHost 221.*.*.*>
   ServerName 221.*.*.*
   <Location />
       Order Allow,Deny
       Deny from all    </Location>
</VirtualHost>
    
<VirtualHost 221.*.*.*>
   DocumentRoot "/www/web"
   ServerName www.wzlinux.com</VirtualHost>


    说明:上部分是实现拒绝直接通过221.*.*.*这个IP的任何访问请求,这时如果你用221.*.*.*访问,会提示拒绝访问。下部分就是允许通过www.wzlinux.com这个域名访问,主目录指向/www/web(这里假设你的网站的根目录是/www/web) 

2、方法二

在httpd.conf文件最后面,加入以下代码 


NameVirtualHost 221.*.*.*
<VirtualHost 221.*.*.*>
   DocumentRoot "/www/test"
   ServerName 221.*.*.*
</VirtualHost>
 
<VirtualHost 221.*.*.*>
   DocumentRoot "/www/web"
   ServerName www.wzlinux.com</VirtualHost>


    说明:上部分是把通过221.*.*.*这个IP直接访问的请求指向/www/test目录下,这可以是个空目录,也可以在里面建一个首页文件,如index.hmtl,首面文件内容可以是一个声明,说明不能通过IP直接访问。下部分的意思跟方法一是一样的。


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议