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

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

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

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

客户机地址限制

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

比如:

[[email protected] httpd-2.4.25]# vim /usr/local/httpd/conf/httpd.conf
//修改httpd服务的主配置文件
            …………               //省略部分内容
<Directory "/usr/local/httpd/htdocs">
            …………               //省略部分内容
    Require all granted       //允许所有客户机访问
</Directory>
[[email protected] 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>
[[email protected] 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自带的浏览器,如图:

用户授权限制

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

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

创建步骤:

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

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

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

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

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

2.添加用户授权配置

[[email protected] 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>
[[email protected] httpd]# systemctl restart httpd
//重新启动httpd服务

上述配置内容中,相关配置项的含义:

需要注意的是,用户访问授权与主机访问控制同时设置时,设置的主机访问控制优先生效。

3.验证用户访问授权

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

原文地址:https://blog.51cto.com/14157628/2420486

时间: 2024-10-07 04:27:09

CentOS 7 中httpd服务的用户限制详解的相关文章

CentOS 7 中httpd服务构建虚拟Web主机详解

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

Linux中centos中httpd源码安装过程详解

在Linux中软件安装有两大类,一类是软件包安装,一类是源代码安装.软件包安装就是指将编译好的二进制封装成rpm包,可以直接使用rpm工具和yum工具安装.源代码安装是指没有编译成二进制,需要通过手动编译的.使用源代码安装的原因有两个,一个就是想使用最新版的软件,另一类就是想自定义其功能的. 在httpd的源码安装过程中需要用到:APR.APR-UTIL. PCRE.httpd源码安装过程:1.展开压缩文件,把压缩文件解压缩到/usr/local/src.2.在解压文件目录使用 ./config

Centos 6 apache httpd 2.2 主要配置详解( 一 )

实验环境:VMware Workstation Pro 14(试用版) 系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 Server version: Apache/2.2.15 (Unix) 模块文件路径: /etc/httpd/modules /usr/lib64/httpd/modules 主程序文件: /usr/sbin/httpd /usr/sbin/httpd.work /usr/sbin/httpd.even 主进

Centos 6 apache httpd 2.4 主要配置详解

实验环境:VMware Workstation Pro 14(试用版) 系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 Server version: Apache/2.4.29 (Unix) 新特性 ? MPM支持运行为DSO机制:以模块形式按需加载 ? event MPM生产环境可用 ? 异步读写机制 ? 支持每模块及每目录的单独日志级别定义 ? 每请求相关的专用配置 ? 增强版的表达式分析式 ? 毫秒级持久连接时长定义 ?

Android中的服务(service)详解(三)--远程服务(remote)

1. 引言: (1)AIDL的作用 在Android平台,每个应用程序都是一个单独的JVM,都运行在自己的进程空间里, 通常,一个进程不允许访问另一个进程的内存空间(一个应用不能访问另一个应用).当用户(程序开发人员)想在一个App中访问另一个App的进程空间的时候,就需要进程间通信.在Android中,远程服务为我们提供了实现进程间通信的方式,其中,AIDL是应用程序开发人员常的一种方式. AIDL (Android Interface Definition Language) 是一种IDL

CentOS 7下Samba服务安装与配置详解

centos7.5系统下进行 yum -y install samba samba-client systemctl start smb nmbps -ef | grep -E 'smb|nmb'netstat -tunlp | grep -E 'smbd|nmbd'mkdir /mnt/datauseradd -s /sbin/nologin mtcat /etc/passwd | grep mtsmbpasswd -a mt[输入两遍密码123456]chown mt.mt /mnt/dat

开机启动服务:chkconfig命令详解

1.查看系统运行级别 # cat /etc/inittab # Default runlevel. The runlevels used are:#   0 - halt (Do NOT set initdefault to this)#   1 - Single user mode#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)#   3 - Full multiuser mode#  

asp.net中web.config配置节点大全详解【转】

web.config 文件查找规则: (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找. (2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名,则查找它的上级目录,直到网站的根目录. (3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点名则在%windir%"Microsoft.NET"Framework"v2.0.

CentOS 6.5 MySQL/MariaDB数据备份与恢复备份详解

MySQL/MariaDB数据备份与恢复备份 数据对我们来说再重要不过了,那我们如何做到对数据尽可能的安全呢,当我们的数据丢失了那又该怎么做呢,所以说数据备份对我们的数据安全性来说太重要了. 数据对我们来说再熟悉不过了,也最平常不过了,我们每天都在接触各色各样的数据,数据记录了我们平常相关的业务信息,所以数据对于我们来说是很重要的,这么重要的数据如果我们的数据丢失了那我们是不是相关的业务都没法进行了呢,这应该是个很麻烦的问题,那我们怎么保护我们的数据的安全呢,这就要用到我们的数据备份了. 如何执