防止恶意解析——禁止通过IP直接访问网站

简介:

一、什么是恶意解析

    一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定。但是,如果通过主机IP能直接访问某网站,那么把域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站。可能您并不介意通过别人的域名访问到您的网站,但是如果这个域名是未备案域名呢?一旦被查出,封IP、拔线甚至罚款的后果都是需要您来承担的。某些别有用心的人,通过将未备案域名解析到别人的主机上,使其遭受损失,这是一种新兴的攻击手段。

二、Apache服务

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
NameVirtualHost *:80
<VirtualHost *:80>
     ServerName 221.*.*.*
     <Location />
         Order Allow,Deny
         Deny from all
     < /Location >
< /VirtualHost >
     
<VirtualHost *:80>
     DocumentRoot  "/www/web"
     ServerName www.wzlinux.com
< /VirtualHost >

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

三、Tomcat服务

    修改server.xml这个配置文件。

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

    打开 %TOMCAT_HOME%/conf/server.xml文件,找到 Engine节点作如下Xml代码。

1
2
3
4
5
6
7
8
<Engine name= "Catalina"  defaultHost= "www.piis.cn"
  <Host name= "www.piis.cn"  appBase= "webapps" 
        unpackWARs= "true"  autoDeploy= "true" 
        xmlValidation= "false"  xmlNamespaceAware= "false" /> 
  <Host name= "192.168.1.2"  appBase= "ipapps" 
        unpackWARs= "true"  autoDeploy= "true" 
        xmlValidation= "false"  xmlNamespaceAware= "false" /> 
< /Engine >

注意事项:

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

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

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

  4. Host 节点的 appBase ,对应的是存放web应用的目录。这里输入的目录相对于 %TOMCAT_HOME%,如上面的www.wzlinux.com对应的目录是 %TOMCAT_HOME%/webapps,而192.168.1.2 对应的目录是 %TOMCAT_HOME%/ipapps。

四、Nginx服务

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

1
2
3
4
5
server {
     listen       80 default;
     server_name   "" ;
     return   444;
}

或者

1
2
3
4
5
server {
     listen       80 default;
     server_name  _;
     return   444;
}




     本文转自 wzlinux 51CTO博客,原文链接:http://blog.51cto.com/wzlinux/1966796,如需转载请自行联系原作者


相关文章
|
2月前
|
域名解析 应用服务中间件 Linux
【服务器】使用域名解析服务器的IP地址并配置SSL证书
【服务器】使用域名解析服务器的IP地址并配置SSL证书
443 0
|
3月前
|
域名解析 网络协议
IP协议, TCP协议 和DNS 服务分别是干什么的?
IP协议, TCP协议 和DNS 服务分别是干什么的?
233 0
|
3月前
|
存储 数据可视化 C语言
C 语言数组教程:定义、访问、修改、循环遍历及多维数组解析
数组用于将多个值存储在单个变量中,而不是为每个值声明单独的变量。 要创建数组,请定义数据类型(例如 int)并指定数组名称,后面跟着方括号 []。 要将值插入其中,请使用逗号分隔的列表,并在花括号内使用
459 0
|
4月前
|
域名解析 应用服务中间件 网络安全
自己的ip地址被别人的域名解析到?已解决
自己的ip地址被别人的域名解析到?已解决
|
2月前
|
网络协议 物联网 5G
K3S 系列文章 -5G IoT 网关设备 POD 访问报错 DNS 'i/o timeout' 分析与解决
K3S 系列文章 -5G IoT 网关设备 POD 访问报错 DNS 'i/o timeout' 分析与解决
|
7天前
|
Linux 网络安全 Apache
使用树莓派搭建个人网站,并发布到外网可访问:实用步骤解析
使用树莓派搭建个人网站,并发布到外网可访问:实用步骤解析
|
8天前
|
XML JSON 关系型数据库
Pandas一键解析代理IP与代理IP池的维护
Pandas一键解析代理IP与代理IP池的维护
|
9天前
|
域名解析 网络协议 Linux
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
|
1月前
|
网络协议 数据格式
|
1月前
|
存储 网络协议 API
网络原理-TCP/IP(3) - 三次握手超详解析
网络原理-TCP/IP(3) - 三次握手超详解析

推荐镜像

更多