阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7 中httpd服务的用户限制详解

173次阅读
没有评论

共计 2596 个字符,预计需要花费 7 分钟才能阅读完成。

Apache HTTP Server 之所以受到众多企业的青睐,得益于其代码开源、跨平台、功能模块 haul、可灵活定制等诸多优点,其不仅性能稳定,在安全性方面的表现也十分出色。

为了更好的控制对网站资源的访问,可以为特定的网站目录添加访问授权。授权的方式有两种:客户机地址限制,用户授权限制。
以下所有操作必须基于 httpd 服务的环境下,搭建 httpd 服务可以参考博文 CentOS 7 利用 Apache 搭建 Web 网站服务

我们来详细了解如何实现 web 服务器对用户的限制

客户机地址限制

通过 Require 配置项,可以根据主机的主机名或 IP 地址来决定是否允许客户端访问。在 httpd 服务器的主配置文件的 <Location>、<Directory>、<Files>、<Limit> 配置段中均可使用 Require 配置项来控制客户端的访问。
限制策略的常用格式:
CentOS 7 中 httpd 服务的用户限制详解
比如:

[root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
// 修改 httpd 服务的主配置文件
            …………               // 省略部分内容
<Directory "/usr/local/httpd/htdocs">
            …………               // 省略部分内容
    Require all granted       // 允许所有客户机访问
</Directory>
[root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
// 修改 httpd 服务的主配置文件
            …………               // 省略部分内容
<Directory "/usr/local/httpd/htdocs">
            …………               // 省略部分内容
    Require ip 192.168.1.1     // 仅允许 192.168.1.1 客户机访问
</Directory>
[root@localhost httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
// 修改 httpd 服务的主配置文件
            …………               // 省略部分内容
<Directory "/usr/local/httpd/htdocs">
            …………               // 省略部分内容
   <RequireAll>
    Require all granted
    Require not ip 192.168.1.10 192.168.2.0/24
        // 拒绝 192.168.1.10 和 192.168.2.0 网段客户机访问
</RequireAll>

</Directory>

定义限制策略时,多个不带 not 的 Require 配置语句之间是或的关系,即任意一条 Require 配置语句满足条件均可以访问;若出现了不带 not 的 Require 配置语句,又出现了带 not 的 Require 配置语句,则语句之间是并且的关系。即满足所有 Require 配置语句才可以访问。

在使用 not 禁止访问时要将其置于 <RequireAll></Require> 容器中,并在容器中指定相应的策略。

当未被授权的客户机访问网站目录时,将会被拒绝访问,在不同版本的浏览器中,拒绝的消息可能会略有差异。比如 Windows 7 自带的浏览器,如图:
CentOS 7 中 httpd 服务的用户限制详解

用户授权限制

基于用户的访问控制包含认证和授权两个过程,是 Apache 允许指定用户使用用户名和密码访问特定资源的一种方式。认证是指识别用户身份的过程,授权是指允许特定用户访问特定目录区域的过程。

基于 APache 搭建 httpd 服务支持使用摘要认证和基本认证两种方式。使用摘要认证需要在编译安装 httpd 之前添加“–enable-auth-digest”选项,但并不是所有的浏览器都支持摘要认证,而基本认证是 httpd 服务的基本功能,不需要预先配置特别的选项。

创建步骤:

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

[root@localhost httpd-2.4.25]# cd /usr/local/httpd/
[root@localhost httpd]# bin/htpasswd -c /usr/local/httpd/conf/123.txt xiaozhang
New password: 
Re-type new password: 
Adding password for user xiaozhang
[root@localhost httpd]# cat /usr/local/httpd/conf/123.txt   
// 查看用户认证数据文件
xiaozhang:$apr1$OoqDbhzG$goxDWnRDhCa7mvcZE1ylw.

使用 htpasswd 工具时,必须指定用户数据文件的位置,添加“-c”选项表示新建立此文件。

[root@localhost httpd]# bin/htpasswd /usr/local/httpd/conf/123.txt xiaoli
New password: 
Re-type new password: 
Adding password for user xiaoli
[root@localhost httpd]# cat /usr/local/httpd/conf/123.txt   
// 查看用户认证数据文件
xiaozhang:$apr1$OoqDbhzG$goxDWnRDhCa7mvcZE1ylw.
xiaoli:$apr1$8yXF3xYm$MpUHjRqht4yN1AAnRbyem.

若省略“-c”选项,则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码。

2. 添加用户授权配置

[root@localhost httpd]# vim /usr/local/httpd/conf/httpd.conf 
// 修改 httpd 服务的主配置文件
            …………               // 省略部分内容
<Directory "/usr/local/httpd/htdocs">
            …………               // 省略部分内容
AuthName "DocumentRoot"
AuthType Basic
AuthUserFile /usr/local/httpd/conf/123.txt
Require valid-user
</Directory>
[root@localhost httpd]# systemctl restart httpd
// 重新启动 httpd 服务 

上述配置内容中,相关配置项的含义:
CentOS 7 中 httpd 服务的用户限制详解
需要注意的是,用户访问授权与主机访问控制同时设置时,设置的主机访问控制优先生效。

3. 验证用户访问授权
CentOS 7 中 httpd 服务的用户限制详解

现实环境中,客户机地址限制应用并不广泛;用户授权限制应用较为广泛!

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2596字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中