分享

Apache服务器限制用户通过IP访问,仅允许域名访问

 泰山勇士 2019-11-22

前序

Apache是一款知名的网站服务器软件,用于架设网站服务器(WEB服务器),Apache的常规配置在我的视频中有详细讲解,如果对此服务器的基本操作还不熟练,大家可以查看Apache服务器基础配置讲解

正常情况下,通过域名访问主机,该域名会解析成web服务器的IP,从而达到访问web服务器的目的,但如果一些非法的域名,也被解析为该web服务器的地址,就会对web服务器造成很多困扰,尤其是恶意解析,配合DDOS攻击,会对web服务器会造成更大的伤害。今天,我们讨论一下Apache的站点安全性实现,限制通过IP地址访问站点,仅允许通过域名(而且是指定的域名)访问,该方法主要防止部分用户的恶意解析行为。

实验过程

下面我们开始讲解实验过程:

实验环境:准备2台主机(vmware workstation)

  1. Apache Server CentOS7 192.168.0.1 www.pip.cc

  2. Client Windows7 192.168.0.88

实验准备:设置IP地址、安装httpd服务

Apache服务器限制用户通过IP访问,仅允许域名访问

图1 Apache Server IP信息

Apache服务器限制用户通过IP访问,仅允许域名访问

图2 安装Apache

Apache服务器限制用户通过IP访问,仅允许域名访问

图3 Client Windows7 IP

图1、图2、图3分别配置了两台主机的ip地址,并在CentOS7上安装了Apache服务。

准备工作我们做好了,说一下”仅域名能访问,IP不能访问“的思路,其实很简单,我们利用Windows服务器中”主机头“的概念,将通过IP访问服务器的客户端强制”转移“到其它目录,使其看不到真正的站点,即可实现限制IP访问的目的。

步骤一、关闭Apache默认主页(这个会对实验效果有影响,该默认主页仅仅用于测试Apache服务器是否安装成功,在实际环境下几乎用不到,关掉也无妨)

Apache服务器限制用户通过IP访问,仅允许域名访问

图4 关闭默认主页

图4中,修改/etc/httpd/conf.d/welcome.conf文件,将红框部分注销掉,表示关闭默认主页。

步骤二、创建站点根目录(注意要创建两个根目录)

Apache服务器限制用户通过IP访问,仅允许域名访问

图5 创建站点目录

图5中,我们创建了两个站点目录,其中/var/www/test/是正常网站目录,而/var/www/errors/是假网站目录,我们只要将通过IP访问服务器的用户”引导“到该目录即可!

步骤三、创建虚拟主机(注意要创建两台虚拟主机)

Apache服务器限制用户通过IP访问,仅允许域名访问

图6 创建虚拟主机配置文件vt.conf

Apache服务器限制用户通过IP访问,仅允许域名访问

图7 vt.conf

图6中,创建/etc/httpd/conf.d/vt.conf文件,该文件用于配置虚拟主机,图7是vt.conf的内容,红框部分就是主机头,我们可以清楚的看见第一个虚拟主机是正常的,主机头是www.pip.cc,第二个虚拟主机是异常的,主机头是192.168.0.1。也就是说,用户只能通过www.pip.cc这个域名去访问站点服务器,如果直接用IP访问,就会访问到错误的页面。

步骤四、重启httpd服务后验证

Apache服务器限制用户通过IP访问,仅允许域名访问

图8 重启apache服务

图8中,修改好配置文件后,要重启apache服务才能生效。

Apache服务器限制用户通过IP访问,仅允许域名访问

图9 Windows7客户端修改hosts文件

图9中,因为要通过域名访问,还需要配置DNS服务器,模拟环境下不做了,太麻烦,DNS是动态解析,我们可以用静态解析替换,直接修改windows7的hosts文件(C:\windows\system32\drivers\etc\),添加红框部分的记录,表示www.pip.cc会被解析为192.168.0.1。

Apache服务器限制用户通过IP访问,仅允许域名访问

图10 Windows7 上验证效果

图10中,我们同时通过域名和IP访问Apache服务器,发现通过IP地址访问的页面出现了友好的错误提示,而通过域名访问的页面提示welcome。实验成功!我们成功将IP访问页面引导向另一个页面。

后序实验补充

以上就是限制IP访问,仅允许域名访问的方法,严格意义上说,这个不叫限制,最多称为隐藏。图10中,通过IP访问,出现了友好提示”You Must use Domain-Name to visit“,当然这个是我自己写的提示,算是”温柔的手段“,如果”暴力“一点的,我们也可以这样做,看下几张图:

Apache服务器限制用户通过IP访问,仅允许域名访问

图11 创建目录配置文件

图11中,创建/etc/httpd/conf.d/di.conf文件,写入目录权限

Apache服务器限制用户通过IP访问,仅允许域名访问

图12 目录权限写法一

Apache服务器限制用户通过IP访问,仅允许域名访问

图13 验证效果一

图12中,我们可以针对通过IP访问的站点根目录(/var/www/errors)写入拒绝权限,图13是验证效果,网页干脆打不开了。

Apache服务器限制用户通过IP访问,仅允许域名访问

图14 目录权限方法二

Apache服务器限制用户通过IP访问,仅允许域名访问

图15 验证效果二

图14中,也可以这样写,这个写法在Apache2以前的版本中很流行,也是拒绝所有人访问。图15是验证效果,提示的非常明确:Forbidden,被拒绝了。

这两种”暴力“方法都可以,在实际使用过程中,更倾向于”温柔“方法,通过友好提示,引导用户通过域名访问网站。大家可以试一下,很实用的技巧,今天就到这里,晚安给位!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多