第二章 WEB网站服务(二)

第二章 WEB网站服务(二)

重点:

学会Web服务的访问控制
学会构建虚拟Web主机

简介

Apache HTTP Server 之所以受到众多企业的青睐,得益于其代码开源、跨平台、功能模块化、可灵活定制等诸多优点。其不仅性能稳定,在安全性方面的表现也十分出色。本章将进一步学习httpd服务器的访问控制、虚拟Web主机的构建等相关知识。

理论讲解
一、httpd服务的访问控制

为了更好地控制对网站资源的访问,可以为特定的网站目录添加访问授权。本节将分别介绍客户机地址限制、用户授权限制,这两种访问控制方式都应用于httpd.conf配置文件中的目录区域范围内。

客户机地址限制

1.通过Require配置项,可以根据主机的主机名或IP地址来决定是否允许客户端访问。
2.在httpd服务器的主配置文件的、、、配置段中均可以使用Require配置项来控制客户端的访问。
使用Require配置项时,需要设置客户机地址以构成完整的限制策略,地址的形式可以是IP地址、网络地址、主机名或域名,使用名称“all”时表示任意地址。限制策略的常用格式如下所示:
Require all granted:表示允许所有主机访问。
Require all denied:表示拒绝所有主机访问。
Require local:表示仅允许本地主机访问。
Require [not] host <主机名或域名列表>:表示允许或拒绝指定主机或域访问。
Require [not] ip <ip 地址或网段列表>:表示允许或拒绝指定IP地址或网段访问。
3.通常情况下,网站服务器是对所有客户机开放的,网页文档目录并未做任何限制,因此使用的是“Require all granted”策略,表示允许从任何客户机访问.
4.定义限制策略时,多个不带not的Require配置语句之间是或的关系,即任意一条Require配置语句满足条件均可以访问。若既出现了不带not的Require配置语句,又出现了带not的Require配置语句,则语句之间是与的关系,即同时满足所有Require配置语句才可以访问。
5.当未被授权的客户机访问网站目录时,将会被拒绝访问。在不同的浏览器中,拒绝的消息可能会略有差异。例如,Edge浏览器中会显示“HTTP403错误Microsoft Edge无法访问此页”的报错页面

二、1.用户授权限制

1.1.基于用户的访问控制包含认证(Authentication)和授权(Authorization)两个过程,是Apache允许指定用户使用用户名和密码访问特定资源的一种方式。认证是指识别用户身份的过程,授权是指允许特定用户访问特定目录区域的过程。
1.2.httpd 服务器支持使用摘要认证(Digest)和基本认证(Basic)两种方式。使用摘要认证需要在编译httpd 之前添加“–enable-auth-digest”选项,但并不是所有的浏览器都支持摘要认证;而基本认证是httpd服务的基本功能,不需要预先配置特别的选项。
1.3.创建用户认证数据文件
httpd的基本认证通过校验用户名、密码组合来判断是否允许用户访问。授权访问的用户账号需要事先建立,并保存在固定的数据文件中。使用专门的htpasswd工具程序,可以创建授权用户数据文件,并维护其中的用户账号。
1.4.使用htpasswd工具时,必须指定用户数据文件的位置,添加“-c”选项表示新建立此文件。
1.5.若省略“-c”选项,则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码。

2.添加用户授权配置

有了授权用户账号以后,还需要修改httpd.conf配置文件,在特定的目录区域中添加授权配置,以启用基本认证并设置允许哪些用户访问。
htpasswd相关配置项的含义如下。
AuthName:定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示。
AuthType:设置认证的类型,Basic表示基本认证。
AuthUserFile:设置用于保存用户账号、密码的认证文件路径。
Require valid-user:要求只有认证文件中的合法用户才能访问。其中,valid-user 表示所有合法用户,若只授权给单个用户,可改为指定的用户名(如webadmin)。

3.验证用户访问授权
当再次访问网站的默认首页时,浏览器会首先弹出认证对话框,只有输入正确的用户名和密码后才能查看网页,否则将拒绝访问.

三、构建虚拟Web主机

虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web主机。通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
使用httpd 可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。httpd支持的虚拟主机类型包括以下三种。

基于域名:为每个虚拟主机使用不同的域名,但是其对应的P地址是相同的。例如,www.bdqn1.com和www.bdqn2.com站点的IP地址都是173.17.17.11。这是使用最为普遍的虚拟Web主机类型。

基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。

基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

在上述几种虚拟Web主机中,基于域名的虚拟主机是使用最为广泛的,也是本节介绍的重点内容。

1.实验案例
需求描述

1.站点www.bdqn.com的网页文档存放在服务器的/var/www/html/bdqndoc目录下。
2.站点www.jbit.com的网页文档存放在服务器的/var/www/html/jbitdoc目录下。
3.构建基于域名的虚拟主机服务器,用于支撑以上两个Web站点。
4.其中www.jbit.com站点只对公司内部员工开放alan,agou,访问时需进行用户认证。

本次实验案例需要使用DNS域名解析服务,后面我会详解!!!
一、安装apache
1.配置apache

在这里插入图片描述

[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos01 ~]# mount /dev/cdrom /mnt/
[root@centos01 ~]# tar zxvf /mnt/httpd-2.2.17.tar.gz -C /usr/src/

2.编译安装apache

[root@centos01 ~]# cd /usr/src/httpd-2.2.17/
[root@centos01 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-rewrite --enable-charset-list
[root@centos01 httpd-2.2.17]# make && make install
[root@centos01 httpd-2.2.17]# cd

3.优化apache命令

[root@centos01 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

4.生成服务控制文件

[root@centos01 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@centos01 ~]# chmod +x /etc/init.d/httpd 

5.修改服务控制文件设置启动和关闭进程

[root@centos01 ~]# vim /etc/init.d/httpd
#!/bin/sh
#chkconfig:35 21 80
#description:Apache Server

6.添加系统服务设置开机自动启动

[root@centos01 ~]# chkconfig --add httpd
[root@centos01 ~]# chkconfig --level 35 httpd on

7.启动服务

[root@centos01 ~]# systemctl start httpd

8.监听端口

[root@centos01 ~]# netstat -anptu | grep 80

在这里插入图片描述
实验开始
1.备份主配置文件

[root@centos01 ~]# cp /usr/local/httpd/conf/httpd.conf /usr/local/httpd/conf/httpd.conf.bak

2.创建/www/html/bdqndoc 在此目录创建index.html文件并输入“bdqndoc”

[root@centos01 ~]#  mkdir -p /var/www/html/bdqndoc/
[root@centos01 ~]# echo "bdqndoc" > /var/www/html/bdqndoc/index.html

3.创建/var/www/html/jbitdoc在此目录创建index.html文件并输入“jbitdoc”

[root@centos01 ~]#  mkdir -p /var/www/html/jbitdoc/
[root@centos01 ~]#  echo "jbitdoc" > /var/www/html/jbitdoc/index.html

4.进入主配置文件,释放虚拟主机配置,如图:

[root@centos01 ~]# cp /usr/local/httpd/conf/httpd.conf.bak /usr/local/httpd/conf/httpd.conf
[root@centos01 ~]#  vim /usr/local/httpd/conf/httpd.conf
389 Include conf/extra/httpd-vhosts.conf

在这里插入图片描述5.进入虚拟主机配置文件,构建基于域名的虚拟主机服务服务器 进入虚拟主机配置文件:

[root@centos01 ~]# cp /usr/local/httpd/conf/extra/httpd-vhosts.conf /usr/local/httpd/conf/extra/httpd-vhosts.conf.bak
[root@centos01 ~]#  vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

在这里插入图片描述6.安装httpd-tools用于配置基本身份验证

[root@centos01 ~]# umount /mnt/

在这里插入图片描述

[root@centos01 ~]# mount /dev/cdrom /mnt/
[root@centos01 ~]# yum -y install httpd-tools

7.创建基本身份验证账户alan,agou,密码为pwd@123

[root@centos01 ~]# htpasswd -c /usr/local/httpd/.user alan
[root@centos01 ~]# htpasswd /usr/local/httpd/.user agou

在这里插入图片描述 8.进入虚拟主机配置文件,配置基本身份验证

[root@centos01 ~]#  vim /usr/local/httpd/conf/httpd.conf
<Directory "/var/www/html/jbitdoc/">
    AuthName user
    AuthType basic
    AuthUserFile /usr/local/httpd/.user
    Require valid-user
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

在这里插入图片描述

9).检查配置文件

[root@centos01 ~]# httpd -t

在这里插入图片描述二、安装和配置DNS服务器
1.安装DNS服务器

在这里插入图片描述

[root@centos01 ~]# mount /dev/cdrom /mnt/
[root@centos01 ~]# yum -y install bind bind-chroot bind-utils

2.DNS主配置文件

[root@centos01 ~]# cp /etc/named.conf /etc/named.conf.bak
[root@centos01 ~]# echo "" > /etc/named.conf
[root@centos01 ~]# vim /etc/named.conf
[root@centos01 ~]# vim /etc/named.conf
options {
        listen-on port 53 { any; };
        directory "/var/named";
};
zone "bdqn.com." IN {
        type master;
        file "bdqn.com.zone";
};
zone "jbit.com." IN {
        type master;
        file "jbit.com.zone";
};

在这里插入图片描述
2.检查主配置文件是否错误

[root@centos01 ~]# named-checkconf /etc/named.conf

3.创建bdqn正向解析文件

[root@centos01 ~]# vim /var/named/bdqn.com.zone
$TTL            86400
@               SOA             bdqn.com.      root.bdqn.com. (
                2021033110
                1H
                15M
                1W
                1D
)
@               NS              centos01.bdqn.com.
centos01        A               192.168.100.10
www             A               192.168.100.10

在这里插入图片描述

4.创建jbit正向解析文件

[root@centos01 ~]# vim /var/named/jbit.com.zone
$TTL            86400
@               SOA             jbit.com.      root.jbit.com. (
                2021033110
                1H
                15M
                1W
                1D
)
@               NS              centos01.jbit.com.
centos01        A               192.168.100.10
www             A               192.168.100.10

在这里插入图片描述
5.检查正常区域配置文件

[root@centos01 ~]# named-checkzone bdqn.com. /var/named/bdqn.com.zone 
[root@centos01 ~]# named-checkzone jbit.com. /var/named/jbit.com.zone

在这里插入图片描述
6.重启httpd服务

[root@centos01 ~]#  systemctl stop httpd
[root@centos01 ~]#  systemctl start httpd
[root@centos01 ~]#  netstat -anptu**加粗样式** | grep httpd

7.启动DNS服务

[root@centos01 ~]#  systemctl start named
[root@centos01 ~]#  systemctl enable named
[root@centos01 ~]#  netstat -anptu | grep named

测试:
在这里插入图片描述

1.访问www. bdqn.com直接看到bdqndoc不需要身份验证
在这里插入图片描述
2. 访问www.jbit.com需要身份验证输入alan或者agou可以看到jbitdoc
输入alan测试
在这里插入图片描述
在这里插入图片描述 输入agou测试
在这里插入图片描述
在这里插入图片描述实验完成

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值