CentOS 7.4安装配置Apache网站服务和构建虚拟主机

一、Httpd服务的访问控制

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

1、客户机地址限制

通过Require配置项,可以根据主机的主机名或IP地址来决定是否允许客户端访问。在httpd服务器的主配置文件的<Location>、<Directory>、<Files>、<Limit>配置段中均可以使用Require配置项来控制客户端的访问。地址的形式可以是IP地址、网络地址、主机名和域名,使用名称“all”时表示任意地址。限制策略的常用格式如下所示:

Require all granted:表示允许所有主机访问。

Require all denied:表示拒绝所有主机访问。

Require local:表示仅本地主机访问。

Require [not] host <主机名或域名列表>:表示允许或拒绝指定主机或域访问。

Require [not] ip <IP地址或网段列表>:表示允许或拒绝指定IP地址或网段访问。

定义限制策略时,多个不带not的require配置语句之间是或的关系,即任意一条require配置语句就可以访问,若即有不带not的require配置语句,又出现了带not的require配置语句,则语句之间是与的关系,即同时满足所有require配置语句才可访问。
具体配置如下:
做一个策略,仅允许ip地址为192.168.100.101的主机能够访问/usr/local/httpd/htdocs网页目录下的内容,则策略如下(进入网站主配置文件httpd.conf后,在末行模式下输入/Directory,按回车键查找到相应的位置):

<Directory "/usr/local/httpd/htdocs"> ................ <!--省略部分内容--> Require ip 192.168.100.101 <!--仅允许192.168.100.101的主机访问网站服务--> </Directory>

配置完成重启服务,192.168.100.101的客户端就可以访问了。

反之,需要使用“仅拒绝”的限制策略时,灵活使用Require与Require not配置语句设置拒绝策略,只禁止一部分主机访问。在使用not禁止访问时要将其置于<RequireALL></RequireALL>容器中,并在容器中指定相应的限制策略。
具体配置如下:

<Directory "/usr/local/httpd/htdocs"> ................ <!--省略部分内容--> <RequireAll> Require all granted Require not ip 192.168.100.0/24 192.168.200.0/24 <!--拒绝100.0/24和200.0/24网段访问,允许其他任何主机访问--> </RequireAll> </Directory>

也可以通过以下方式来限制:

<Directory "/usr/local/httpd/htdocs"> ................ <!--省略部分内容--> Deny from 192.168.100.0/24 192.168.200.0/24 <!--拒绝100.0/24和200.0/24网段访问,允许其他任何主机访问--> </Directory> 2、用户授权限制

基于用户的访问控制包含认证和授权两个过程,是Apache允许指定用户使用用户名和密码访问特定资源的一种方式。httpd服务器支持使用摘要认证(Digest)和基本认证(Basic)两种方式。使用摘要认证的话需要在编译http之前添加“--enable-auth-digest”选项,但并不是所有的浏览器都支持摘要认证,所以不推荐使用;而基本认证是httpd服务的基本功能,不需要预先配置特别的选项。

1)创建用户认证数据文件

[root@CentOS01 ~]# /usr/local/httpd/bin/htpasswd -c /usr/local/httpd/htdocs/.password admin <!--#使用 htpasswd工具创建用户,该用户与系统用户无关,.password文件以.开头,表示为隐藏目录,该 目录默认不存在,所以要加-c选项,在以后需要添加用户时,不能加-c选项, 否则会覆盖原来的内容--> New password: <!--输入密码--> Re-type new password: <!--确认密码--> Adding password for user admin <!--提示添加成功-->

查看用户是否添加:

[root@localhost httpd]# cd /usr/local/httpd/ <!--切换至网站安装根目录--> [root@localhost httpd]# cat conf/.password admin:oVc8B0TaIVv0s <!--用户admin的信息-->

2)修改Apache主配置文件加载身份验证

[root@centos01 ~]# vi /usr/local/httpd/conf/httpd.conf <!--编辑主配置文件--> ....... <!--此处省略部分内容--> AuthName "Default" <!--定义访问域的名字--> AuthType Basic <!--基本身份验证--> AuthuserFile /usr/local/httpd/htdocs/.password <!--验证数据库位置--> Require valid-user <!--经过账户密码验证的合法账户可以访问--> </Directory>

3)重启apache服务
[root@centos01 ~]# systemctl restart httpd <!--重启httpd服务-->

客户端访问会出现提示框,输入账户密码就可以访问了,需要注意的是,用户访问授权与主机访问控制同时设置时,设置的主机访问控制优先生效。所以在进行用户授权限制时,需要删除掉其中的require语句。要不然,用户访问授权不会生效。

二、构建虚拟Web主机

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7b7dc32704d14a30c803a648ac56942f.html