基于Cent OS7搭建apache网站后的访问控制配置详解

在一台centos7上搭建apache网站后,一般都是允许所有人访问的,那么可能会有一些特殊情况,需要对访问网站的人进行限制,出于这种情况,apache可以通过Require配置项,来对客户端进行一些访问限制,可以基于IP地址、网段、主机名或域名。使用名称“all”时表示任意地址。

安装apache服务的参考博文:https://blog.51cto.com/14154700/2391114

1、客户机地址限制:

限制策略的常用格式有下面几种:

  • Require all granted:表示允许所有主机访问(也是默认的);
  • Require all denied:表示拒绝所有主机访问;
  • Require local:表示仅允许本地主机访问;
  • Require [not] host <主机名或域名列表>:表示仅允许或拒绝指定主机或域名访问;
  • Require [not] ip <地址或网段列表>:表示仅允许或拒绝指定IP地址或网段访问;

定义限制策略时,多个不带not的require配置语句之间是或的关系,就是满足任意一条require配置语句就可以访问;

若即有不带not的require配置语句,又出现了带not的require配置语句,则语句之间是与的关系,即同时满足所有require配置语句才可访问。

来吧,举个栗子(只要更改了服务的配置文件,必须重启服务,才可生效):

做一个策略,仅允许ip地址为192.168.1.2的主机能够访问/usr/local/httpd/htdocs网页目录下的内容,则策略如下(进入网站主配置文件httpd.conf后,在末行模式下输入:/Directory,按n查找到相应的位置):

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

OK了,现在只有上面这个1.2的ip地址可以访问该网站了。

那么,现在换一个策略,禁止192.168.1.0网段的主机不能访问网站,但是别的网段的主机都可访问,策略如下:

<Directory "/usr/local/httpd/htdocs">
    ................   #省略部分内容
   <RequireAll>
   Require   all  granted                      #允许所有主机访问
     Require  not  ip  192.168.1.0/24                      #但1.0网段不可访问
     </RequireAll>
</Directory>

在上面的配置中,需要注意的是只有访问规则中出现了not语句,那么必须把规则放在 <RequireAll> </RequireAll>标签中。

2、用户授权限制:

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

这里就写一下基本认证方式吧

1、创建用户认证数据文件:

[[email protected] httpd]# cd /usr/local/httpd/                    #切换至网站安装根目录
[[email protected] httpd]# bin/htpasswd -c /usr/local/httpd/conf/.aaa webadmin              #使用
htpasswd工具创建用户,该用户与系统用户无关,.aaa文件以.开头,表示为隐藏目录,该
目录默认不存在,所以要加-c选项,在以后需要添加用户时,不能加-c选项,
否则会覆盖原来的内容
New password:                                         #输入密码
Re-type new password:                             #确认密码
Adding password for user webadmin                             #提示添加成功

可以确认用户是否添加:


[[email protected] httpd]# cat conf/.aaa
webadmin:$apr1$YCIyEmlx$R57m0/9Tc/SbZLsLiAGev/                    #用户webadmin的信息

2、添加用户授权配置:

[[email protected] httpd]# vim /usr/local/httpd/conf/httpd.conf             #编辑网站主配置文件

         .............

<Directory "/usr/local/httpd/htdocs">
    authname "bbb"                 #定义受保护的领域名称
    authtype basic                   #设置认证类型,basic表示基本认证
    authuserfile /usr/local/httpd/conf/.aaa               #设置用于保存用户账号、密码的认证文件路径
    require valid-user                          #要求只有认证文件中的合法用户才可访问。
        其中valid-user表示所有合法用户,若只授权给单个用户,可改为指定的用户名,
        如webadmin。

需要注意的是,用户访问授权与主机访问控制同时设置时,设置的主机访问控制优先生效。所以在进行用户授权限制时,需要删除掉其中的require语句。要不然,用户访问授权不会生效。

原文地址:https://blog.51cto.com/14154700/2392533

时间: 2024-08-29 15:44:49

基于Cent OS7搭建apache网站后的访问控制配置详解的相关文章

apache配置文件:http.conf配置详解

Apache的配置文件http.conf参数含义详解 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改.主站点的配置(基本配置) (1) 基本配置:ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置.其它指定的目录如果没有指定绝对路径,则目录是相对于该目录. PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置. Liste

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生产环境可用 ? 异步读写机制 ? 支持每模块及每目录的单独日志级别定义 ? 每请求相关的专用配置 ? 增强版的表达式分析式 ? 毫秒级持久连接时长定义 ?

基于Flask框架搭建视频网站的学习日志(二)

基于Flask框架搭建视频网站的学习日志(二)2020/02/02 一.初始化 所有的Flask程序都必须创建一个程序实例,程序实例是Flask类的对象 from flask import Flask app = Flask(__name__) Flask 类的构造函数Flask()只有一个必须指定的参数,即程序主模块或包的名字.在大多数程序中,python的__name__变量就是所需的值.(Flask这个参数决定程序的根目录,以便稍后能够找到相对与程序根目录的资源文件位置)--<Flask

【转】Apache 的 httpd.conf 配置详解

Apache 的 httpd.conf 配置详解 原文链接 http://www.php100.com/html/webkaifa/apache/2009/0418/1192.html ServerRoot /usr/local ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerR oot定义的路径之下. ScoreBoardFile /var/run

Apache httpd(apache2)服务配置详解,Mac下设置虚拟主机部署多个web项目,及反向代理部署Java项目

Apache httpd服务配置详解 查看版本:httpd -v Server version: Apache/2.4.33 (Unix) Server built:   Apr  3 2018 17:54:07 文件路径:/etc/apache2/httpd.conf # 服务目录(全局配置)用于指定Apache的安装路径,# 此选项参数值在安装Apache时系统会自动把Apache的路径写入ServerRoot "/usr" # 设置互斥对象的目录# Mutex default:/

Centos 7基于DR(直接路由)模式的负载均衡配置详解

DR(直接路由)是三种负载均衡模式其中之一,也是使用最多的一种模式,关于该模式的介绍,可以参考博文:LVS负载均衡群集详解. DR的工作模式示意图如下: 该模式的原理已经在上面链接的博文中写了下来.现在直接搭建一个基于DR模式的负载均衡群集. 环境如下: 在上面这个环境中,需要解决的问题有下面几点: 1.所有web节点和调度器都配置上VIP:客户端访问VIP(群集的虚拟IP地址)时,若是 调度器将请求转发给web节点,然后由web节点直接去响应客户端,那么客户端在收到 数据包后,发现收到的数据包

Apache的各种优化以及安全配置详解

简介: Apache所运行的硬件环境都是对性能影响最大的因素,即使不能对硬件进行升级,也最好给Apache一个单独的主机以免受到其他应用的干扰.各个硬件指标中,对性能影响最大的是内存,对于静态内容(图片.JavaScript文件.css文件等).它决定了Apache可以缓存多少内容,它缓存的内容越多,在硬盘上读取内容的机会就会越少,大内存可以极大提高静态站点的速度: 对动态高负载站点来说,每个请求保存的时间更多一些,Apache的mpm模块会为每个请求派生出相应的进程或线程分别处理,而进程或线程

CentOS 6.x上搭建vSFTPD服务器搭建与配置详解

摘要: 手把手教你搭建vsftpd服务器,实现了基于db文件和MySQL数据库文件进行虚拟用户认证,当然了也本文章也包含搭建过程中问题的排查啦,哈哈哈. 另外,我在CentOS 7.x上也进行了搭建测试,步骤一致,个别命令会有不同,但不影响测试效果. 服务器部署需求分析(实现效果): 1.登录.传输全程进行加密处理. 2.记录用户上传.下载文件日志. 3.针对每个用户有公共文件夹(大家都可以看到和下载其中的文件)和私有文件夹(只有自己可以看到,并且可上传下载文件). 一.vsftpd服务安装: