构建虚拟主机以及访问控制

理论部分:

上一章我们讲到的AWSTATS系统,统计页面在WEB界面上呈现出来,有一个问题我们都注意到了,只要是输入地址就可以访问,这样任何人都可以看到公司的网站访问情况,这样做非常的有风险,今天我们第一个目的就是为了解决这样的问题,进行访问控制,只允许,那些人访问或者是拒绝那些人访问。有两种方法可以实现,一种是通过IP地址或者是主机名来进行控制,第二种是通过建立验证的文件,在里面添加用户。

设置去访问控制需要在主配置文件中的区域配置文件中进行设置

Order allow,deny

Allow from all

Deny from 192.168.1.10

第一行为先匹配允许的规则,在匹配拒绝的规则,Order定义的是匹配的顺序,但是这里要注意,不是允许规则匹配成功之后,就不匹配拒绝规则了,而继续匹配拒绝规则,最后一条规则是拒绝则拒绝,最后一条规则允许,则允许

第二行为允许所有人通过,但是第三行拒绝了192.168.1.10这个IP地址,那么也就是说,第一条规则匹配完成之后,允许所有人通过,但是还有拒绝的属性,所以还需要匹配拒绝的规则,拒绝规则拒绝了192.168.1.10所以192.168.1.10不能访问网站

Order deny ,allow

Deny from 192.168.1.10

这个例子说明了,先匹配拒绝的规则,192.168.1.10不能访问,在匹配允许规则,没有定义允许规则,这里是不匹配拒绝规则则默认为全部允许,因为allow没有定义规则,则默认为允许所有,上诉案例只拒绝了192.168.1.10这个IP地址访问

通过IP地址控制访问就介绍到这里,接下来我们介绍一下如何通过用户验证的方式进行访问控制

使用Apache自带的工具生成一个验证文件,在这个文件里面添加需要授权的用户即可。这里我们到了实验部分在进行介绍。

虚拟主机分为三种,分别是基于域名的虚拟主机,基于IP的虚拟主机,基于端口号的虚拟主机。

基于域名的虚拟主机需要DNS服务器的支持,不能使用IP地址进行访问,基于域名的也是最常用的

基于IP地址的,就是一个地址对应一个WEB站点。

基于端口号的,IP地址相同,域名可以不相同,但是端口号不能相同,访问时除了默认端口80和443其他端口必须以192.168.1.10:901这种格式去访问,用户需要记住端口号才能访问,所以一般情况下不使用。

理论部分就介绍这么多,现在我们进行我们今天的实验部分:

拓扑图还是上一次的拓扑图

构建虚拟主机以及访问控制

实验案例:

基于域名的虚拟主机

构建虚拟主机以及访问控制 需求描述

构建虚拟主机以及访问控制 设置www.di.com、www.tian.com站点目录

构建虚拟主机以及访问控制 构建基于域名的虚拟主机服务器

构建虚拟主机以及访问控制 站点www.jbit.com启用用户认证功能

搭建AWstats系统为两个站点统计日志,并且实现只有192.168.100.20和lzg这个用户才能访问

PS:在实际的生产环境下拒绝IP地址是不常用的。

先搭建DNS服务器为www.di.com和www.tian.com提供域名解析,BIND服务在上一章我们已经搭建完成了,这一次直接修改配置文件即可

vim /var/named/chroot/etc/named.conf

options{

directory "/var/named";

};

zone "di.com" IN{

type master;

file "di.com.zone";

};

zone "tian.com" IN{

type master;

file "tian.com.zone";

};

:wq

vim /var/named/chroot/var/named/di.com.zone

$ttl 86400

@ soa di.com. admin.di.com. (

20150915

15M

4H

1W

1D

@ IN NS dns.lzg.com.

IN MX 10 mail.di.com.

www IN A 192.168.100.2

* IN A 192.168.100.2

vim /var/named/chroot/var/named/tian.com.zone

$ttl 86400

@ soa tian. admin.tian.com. (

20150916

15M

4H

1W

1D

@ IN NS dns.lzg.com.

IN MX 10 mail.tian.com.

www IN A 192.168.100.2

* IN A 192.168.100.2

:wq

service named start

service iptables stop

接下来搭建Apache服务

参考WEB1文档

基本部署完成之后

打开

构建虚拟主机以及访问控制

图1

这个目录存放了一些其他辅助的配置文件,其中虚拟主机的配置文件就在这里

构建虚拟主机以及访问控制

图2

默认的配置文件的内容,这里我们需要修改的有

构建虚拟主机以及访问控制

图3

我将注释全部删除掉之后剩余的有效配置项,我这里是为了看着方便注意不要删除那些注释,否则可能不能访问

NameVirtualHost配置项用于基于域名的虚拟主机,基于IP或基于端口号的虚拟主机注释掉或删除掉,不能存在

接下来我们创建站点的网页根目录,根据配置文件的路径

构建虚拟主机以及访问控制

图4

{里面的是要创建的目录名使用逗号进行分割可以创建多个}

接下来写入主页

构建虚拟主机以及访问控制

图5

主页建立完成了,接下来我们修改主配置文件,让主配置文件能够读取扩展的配置文件

vim /usr/local/httpd/conf/httpd.conf

构建虚拟主机以及访问控制

图6

将前面的注释去掉也行,在下面再添加一行也行,Include就是指定扩展文件所在的路径

构建虚拟主机以及访问控制

图7

进行语法检测,没有问题,我们将服务启动

构建虚拟主机以及访问控制

图8

启动服务时出现的是主配置文件中ServerName没有指定站点名,不影响服务的启动

关闭iptables service iptables stop

我们进行访问

构建虚拟主机以及访问控制

图9

访问被拒绝了,原因有两种,一种是目录没有权限,我们来看一下di这个目录order有没有读取和执行权限

构建虚拟主机以及访问控制

图10

目录有读取的权限,那就是另外一种情况,在扩展区域中没有指定访问的权限,默认为拒绝所有,现在我们编辑 /usr/local/httpd/conf/extra/httpd-vhost.conf

构建虚拟主机以及访问控制

图11

在这个文件中分别加入这两个站点的路径,赋予访问的权限,这就跟我们上面的理论只是相吻合,用实验验证理论

构建虚拟主机以及访问控制

图12

语法检测没有任何问题

现在重新读取配置文件

构建虚拟主机以及访问控制

图13

现在在进行访问

构建虚拟主机以及访问控制

图14

构建虚拟主机以及访问控制

图15

已经能够成功的访问这两个网站了。

现在我们控制不让所有人访问www.di.com

那么就需要修改httpd-vhosts.conf这个文件

构建虚拟主机以及访问控制

图16

修改权限,拒绝192.168.100.204访问

service httpd graceful 重新加载配置文件

构建虚拟主机以及访问控制

图16

已经不能访问了,在客户端将IP地址更改之后能够访问

构建虚拟主机以及访问控制

图17

可以正常访问。接下来我们来进行用户身份验证的方式

构建虚拟主机以及访问控制

图18

接下来我们还需要在配置文件中添加授权认证配置项

构建虚拟主机以及访问控制

图19

加入这四行就可以了

AuthName 描述信息

AuthType 认证的类型 basic为基本认证

AuthUserFile 指定验证文件的路径

require user lzg 授权哪些用户可以访问 也可以直接授权.userpd这个文件

require valid-user 直接让这个文件的用户都可以访问

service httpd graceful

构建虚拟主机以及访问控制

图20

验证成功

构建虚拟主机以及访问控制

图21

已经成功的访问到了

转载于:https://blog.51cto.com/ttxjs/1725153

相关文章: