一、httpd服务的访问控制
1、客户机地址限制
通过Require配置项,可以根据主机的主机名或P地址来决定是否允许客户端访问。在 httpd服务器的主配置文件的<Location>,<Directory>、<Files>、<Limit>配置段中均可以使用Require配置项来控制客户端的访问。使用Require配置项时.需要设置客户机地址以构成完整的限制策略,地址的形式可以是P地址、网络地址、主机名或域名.使用名称“all”时表示任意地址。限制策略的常用格式如下所示。
Require all granted:表示允许所有主机访问。
Require all denied:表示拒绝所有主机访问。
Require local:表示仅允许本地主机访问。
Require [not] host<主机名或域名列表>:表示允许或拒绝指定主机或域访问。Require [not] ip<ip地址或网段列表>:表示允许或拒绝指定Р地址或网段访问.
需要使用“仅允许”的限制策略时,应使用Require配置语句明确设置允许策略.只允许一部分主机访问。例如.若只希望P地址为173,17.17.173的主机能够访问/ust /local /httpd/htdocs网页目录下的网页内容.则可以针对/usr / local /httpd/htdocs目录区域做如下设置。
<Directory "/usr/local/httpd/htdocs">
……....... //省略部分内容
Require ip 192.168.223.100 //仅允许IP地址为192.168.223.100访问html网页
<Directory>
反之,需要使用“仅拒绝”的限制策略时.灵活使用Require 与Require not配置语句设置拒绝策略,只禁止一部分主机访问。在使用not禁止访问时要将其置于<RequireAll></RequireAll>容器中.并在容器中指定相应的限制策略。例如,若只希望禁止来自两个内网网段192.168,0,0/24 和192.168.1.0/24的主机访问.但允许其他任何主机访问,可以使用如下限制策略。
<Directory "/usr/local/httpd/htdocs">
……....... //省略部分内容
<RequireAll>
Require all granted //允许所有访问
Require not ip 192.168.223.100 //仅拒绝来自192.168.223.100的访问
</RequireAll>
<Directory>
IP地址为192.168.223.100的虚拟机无法访问
2、用户授权限制
(1)创建用户认证数据文件
httpd的基本认证通过校验用户名.密码组合来判断是否允许用户访问。授权访问的用户账号需要事先建立,并保存在固定的数据文件中。使用专门的htpasswd,工具程序.可以创建授权用户数据文件.并维护其中的用户账号。
使用htpasswd 工具时.必须指定用户数据文件的位置,添加“-c”选项表示新建立此文件.例如,执行以下操作可以新建数据文件/usr / local /httpd/conf / ,awspwd,其中包含一个名webadmin的用户信息。
[root@localhost conf]# cd /usr/local/httpd/ //切换到httpd的路径
[root@localhost httpd]# bin/htpasswd -c /usr/local/httpd/conf/.asd bdqn
New password: //根据提示输入密码
Re-type new password:
Adding password for user bdqn
[root@localhost httpd]# cat /usr/local/httpd/conf/.asd //确认用户数据文件
bdqn:$apr1$3ZxoV1Js$iWOAL84.nJyAtNSmFv4/O0
[root@localhost httpd]#
(2) 有了授权用户账号以后,还需要修改httpd ,conf配置文件.在特定的目录区域中添加授权配置以启用基本认证并设置允许哪些用户访问。例如,若只允许.asd数据文件中的任一用户访问网页,可以执行以下操作。
<Directory "/usr/local/httpd/htdocs">
……....... //省略部分内容
Authname "DocumentRoot"
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.asd
Require valid-user jingshu
<Directory>
AutName:定义受保护的领域名称.该内容将在浏览器弹出的认证对话框中显示。
AuthType:设置认证的类型,Basic表示基本认证。
AuthUserFile:设置用于保存用户账号.密码的认证文件路径。
Require valid-user:要求只有认证文件中的合法用户才能访问。其中,valid—user表示所有合法用户,若只授权给单个用户,可改为指定的用户名(如webadmin)。
二、构建虚拟Web主机
实验环境
某公司的网站服务器使用的公网P地址为210.188,201.72,并使用该Р地址注册了两个域名www ,bdon .com和 www . jbit , com。服务器中已经安装好了CentOS 7操作系统.并通过源码编译的方式安装了Web服务器软件httpd-2.4.25,现需要对httpd 服务进行配置,以支持同时运行这两个Web站点。
实验步骤
1、为虚拟主机提供域名解析
2、站点www , bdqn . corm的网页文档存放在服务器的/var/www/html /bdqndoc目录下。
[root@localhost ~]# mkdir -p /var/www/html/bdqndoc
[root@localhost ~]# echo "<h1>www.bdqn.com</h1>" > /var/www/html/bdqndoc/index.html
3、站点www . jbit . com 的网页文档存放在服务器的/var/ www /htrml / jbitdoc目录下。
[root@localhost ~]# mkdir -p /var/www/html/jbitdoc
[root@localhost ~]# echo "<h1>www.jbit.com</h1>" > /var/www/html/jbitdoc/index.html
4、构建基于域名的虚拟主机服务器.用于支撑以上两个Web站点。
5、其中 www , bit , com站点只对公司内部员工开放alan、agou,访问时需进行用户认证。