Linux中Apache网站基于Http服务的访问限制(基于地址/用户)

🏡作者主页:点击!
👨💻Linux高级管理专栏:点击!
⏰️创作时间:2024年6月3日11点44分
🀄️文章质量:95分

为了更好地控制对网站资源的访问,可以为特定的网站目录添加访问授权。本节将分别介绍客户机地址限制和用户授权限制,这两种访问方式都应用于httpd.conf 配置文件中的目录区域范围内。
🫸1.客户机地址限制
通过Require配置项,可以根据主机的主机名或IP地址来决定是否允许客户端访问,在httpd服务器的主配置文件的<Location>,<Directory>,<Fires>,<Limit>配置段中均可以试用Reuire配置项来控制客户端的访问。试用Require配置,需要设置客户端地址以构成完整的限制策略,地址的形式可以是用IP地址,网络地址,主机名或域名,使用名称all 时候表示任意地址。
限制策略的常用格式:
Require all granted 表示允许所有主机访问
Require all denied 表示拒绝所有主机访问
Require local 表示仅允许本地主机访问
Require [not] host <主机名或域名列表>: 表示允许或拒绝指定主机或域访问
Require [not] ip<ip地址或网段列表>: 表示允许或拒绝指定IP地址或网段访问
默认情况下httpd的访问全是是对所有客户机全开的

编辑主配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
➡️允许访问限制
限制
基于IP地址限制,只允许192.168.93.112 主机访问

重启服务
该指令将限制对当前上下文(例如整个服务器或特定网站)的访问,仅允许来自指定 IP 地址的请求。
Apache 重新启动后,对 Web 服务器的访问将被限制为仅允许来自 IP 地址 192.168.93.112 的请求。来自任何其他 IP 地址的请求都将被拒绝。
测试
192.168.93.112

192.168.93.113
访问出现403的情况
⬅️禁止IP访问
禁止192.168.93.112 访问 其余所有都可以访问
限制
编辑配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

systemctl restart httpd
重启Httpd服务
Require all granted:该行默认允许任何IP地址访问。Require not ip 192.168.93.112:此行专门拒绝对 IP 地址 192.168.93.112 的访问。
测试
192.168.93.112 无法访问因为我们 设置了拒绝的流量
报错403无法访问
192.168.93.113访问是可以的 因为我们没有拒绝它访问httpd

🫷2.用户授权限制
Apache HTTP Server (httpd) 中的用户授权限制涉及控制谁可以访问 Web 服务器上的特定资源。这对于维护安全性并确保只有授权用户才能访问敏感数据或功能至关重要。
🕉️创建用户密码
htpasswd -c /etc/httpd/conf/.awspwd smqnz
将在 /etc/httpd/conf/ 目录中创建一个名为 .awspwd (隐藏文件)的新密码文件,并使用哈希密码添加名为 smqnz 的用户。 以下是该命令的详细说明:
htpasswd:这是一个实用程序,用于管理 Apache HTTP 身份验证的密码文件。-c:此选项告诉htpasswd创建一个新的密码文件(如果它不存在)。/etc/httpd/conf/.awspwd:指定新密码文件的路径和文件名。请注意,文件名以点 (.) 开头,使其成为目录中的隐藏文件。smqnz:这是密码文件中新条目的用户名。- 需要注意的是 如果你在创建用户的时候 不需要-c 选项

编辑配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf AuthName "smqnz"AUthType BasicAuthUserFile /etc/httpd/conf/.awspwdRequire valid-user
AuthName "smqnz": 设置认证提示的名称。当用户尝试访问受保护的资源时,浏览器会显示这个名称,提示用户输入用户名和密码。
AuthType Basic: 指定基本认证方式。基本认证要求用户提供用户名和密码进行访问。
AuthUserFile /etc/httpd/conf/.awspwd: 指定存储用户名和密码的文件路径。这个文件需要使用htpasswd工具来创建和管理。
Require valid-user: 允许所有在AuthUserFile中存在的有效用户访问受保护的资源。

配置完成之后重启httpd服务
🔂访问测试
这次访问的时候需要输入账户和密码才能进行访问
用户就是我们刚刚创建的用户和密码


字符界面访问的时候
显示需要你进行身份验证

相关文章:
Linux中Apache网站基于Http服务的访问限制(基于地址/用户)
🏡作者主页:点击! 👨💻Linux高级管理专栏:点击! ⏰️创作时间:2024年6月3日11点44分 🀄️文章质量:95分 为了更好地控制对网站资源的访问,可…...
滚动条详解:跨平台iOS、Android、小程序滚动条隐藏及自定义样式综合指南
滚动条是用户界面中的图形化组件,用于指示和控制内容区域的可滚动范围。当元素内容超出其视窗边界时,滚动条提供可视化线索,并允许用户通过鼠标滚轮、触屏滑动或直接拖动滑块来浏览未显示部分,实现内容的上下或左右滚动。它在保持…...
06 Linux 设备驱动模型
1、Overview Linux-2.6 引入的新的设备管理机制 - kobject 降低设备多样性带来的 Linux 驱动开发的复杂度,以及设备热拔插处理、电源管理等将硬件设备归纳、分类,然后抽象出一套标准的数据结构和接口驱动的开发,就简化为对内核所规定的数据结构的填充和实现驱动模型是 Linu…...
检测五个数是否一样的算法
目录 算法算法的输出与打印效果输出输入1输入2 打印打印1打印2 算法的流程图总结 算法 int main() {int arr[5] { 0 };int i 0;int ia 0;for (i 0; i < 5; i) { scanf("%d", &arr[i]); }for (i 1; i < 5; i) {if (arr[0] ! arr[i]) {ia 1;break;} }…...
java 原生http服务器 测试JS前端ajax访问实现跨域传post数据
后端 java eclipse 字节流转字符 package Httpv3;import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer;import java.io.IOException; import java.i…...
【机器学习】消息传递神经网络(MPNN)在分子预测领域的医学应用
1. 引言 1.1. 分子性质预测概述 分子性质预测是计算机辅助药物发现流程中至关重要的任务之一,它在许多下游应用如药物筛选和药物设计中发挥着核心作用: 1.1.1. 目的与重要性: 分子性质预测旨在通过分子内部信息(如原子坐标、原…...
Python Flask实现蓝图Blueprint配置和模块渲染
Python基础学习: Pyhton 语法基础Python 变量Python控制流Python 函数与类Python Exception处理Python 文件操作Python 日期与时间Python Socket的使用Python 模块Python 魔法方法与属性 Flask基础学习: Python中如何选择Web开发框架?Pyth…...
Vue10-事件修饰符
一、示例:<a>标签不执行默认的跳转行为 1-1、方式一 <a href"http://www.baidu.com" onclick"event.preventDefault();">点击我</a> 1-2、方式二 1-3、方式三:事件修饰符 二、Vue的六种事件修饰符 2-1、prevent&…...
oracle中如何查询特定日期?
1. select last_day(to_date(20230101,YYYYMMDD)) from dual; select last_day(to_date(V_END_DATE,YYYYMMDD)) from dual; --查询任意一天 当月的最后一天 2. select to_char(to_date(20230101,YYYYMMDD)-1,YYYYMMDD) INTO V_START_DATE FROM DUAL; select to_char(to_dat…...
Python使用rosbag使用getattr只能获取一层的数据,不能直接获取多层数据例如 a.b.c.d。使用for range写一个递归用来获取多层数据
使用for循环和range来遍历属性列表确实是一个更简单直观的方式,特别是不需要考虑性能优化和异常处理时。以下是使用for循环代替递归的示例代码: python def get_nested_attr(obj, attr_str): attrs attr_str.split(.) for attr in attrs: # 尝试获取下…...
LNWT--篇章三小测
问题1: BERT训练时候的学习率learning rate如何设置? 在训练初期使用较小的学习率(从 0 开始),在一定步数(比如 1000 步)内逐渐提高到正常大小(比如上面的 2e-5),避免模型过早进入…...
【NoSQL】Redis练习
1、redis的编译安装 systemctl stop firewalld systemctl disable firewalld setenforce 0 yum install -y gcc gcc-c make wget cd /opt wget https://download.redis.io/releases/redis-5.0.7.tar.gz tar zxvf redis-5.0.7.tar.gz -C /opt/cd /opt/redis-5.0.7/ # 编译 make…...
Git 和 Github 的使用
补充内容:EasyHPC - Git入门教程【笔记】 文章目录 常用命令配置信息分支管理管理仓库 概念理解SSH 密钥HTTPS 和 SSH 的区别在本地生成 SSH key在 Github 上添加 SSH key 使用的例子同步本地仓库的修改到远程仓库拉取远程仓库的修改到本地仓库拉取远程仓库的分支并…...
学习分享-断路器Hystrix与Sentinel的区别
断路器(Circuit Breaker)简介 断路器(Circuit Breaker)是一种用于保护分布式系统的服务稳定性和容错性的设计模式。它的主要作用是在检测到某个服务的调用出现故障(如超时、异常等)时,快速失败…...
社区物资交易互助平台的设计
管理员账户功能包括:系统首页,个人中心,管理员管理,基础数据管理,论坛管理,公告信息管理 前台账户功能包括:系统首页,个人中心,论坛,求助留言板,公…...
19-Nacos-服务实例的权重设置
19-Nacos-服务实例的权重设置 1.根据权重负载均衡: 1.服务器设备性能有差异,部分实例所在及其性能较高,有一些较差,我们希望性能好的机器承担更多的用户请求 Nacos提供了权重配置来控制访问频率,权重越大则访问频率…...
R语言数据探索和分析23-公共物品问卷分析
第一次实验使用最基本的公共物品游戏,不外加其他的treatment。班里的学生4人一组,一共44/411组。一共玩20个回合的公共物品游戏。每回合给15秒做决定的时间。第十回合后,给大家放一个几分钟的“爱心”视频(链接如下)&a…...
Webix前端界面框架:深度解析与应用实践
Webix前端界面框架:深度解析与应用实践 Webix,作为一款功能强大的前端界面框架,近年来在开发社区中逐渐崭露头角。本文将从四个方面、五个方面、六个方面和七个方面,深入剖析Webix的特性、优势、应用实践以及面临的挑战ÿ…...
Qt基于SQLite数据库的增删查改demo
一、效果展示 在Qt创建如图UI界面,主要包括“查询”、“添加”、“删除”、“更新”,四个功能模块。 查询:从数据库中查找所有数据的所有内容,并显示在左边的QListWidget控件上。 添加:在右边的QLineEdit标签上输入需…...
新书推荐:2.2.4 第11练:消息循环
/*------------------------------------------------------------------------ 011 编程达人win32 API每日一练 第11个例子GetMessage.c:消息循环 MSG结构 GetMessage函数 TranslateMessage函数:将虚拟键消息转换为字符消息 DispatchMessage函数…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...


