ACL访问控制、Squid 反向代理

news2024/11/17 15:27:01

ACL访问控制、Squid 反向代理

  • 一、ACL访问控制
    • 1、定义访问控制列表
    • 2、配置步骤
  • 二、Squid 反向代理
    • 1、工作机制
    • 2、配置步骤

一、ACL访问控制

  • 在配置文件 squid.conf 中,ACL 访问控制通过以下两个步骤来实现:
    • (1)使用 acl 配置项定义需要控制的条件;
    • (2)通过 http_access 配置项对已定义的列表做“允许”或“拒绝”访问的控制。

1、定义访问控制列表

格式:

列表名称名称自定义,相当于给acl起个名字
列表类型必须使用squid预定义的值,对应不同类别的控制条件
列表内容是要控制的具体对象,不同类型的列表所对应的内容也不一样,可以有多个值(以空格为分隔,为“或”的关系)

方法一:

vim /etc/squid.conf
.......
acl localhost src 192.168.184.10/32             #源地址为192.168.184.10
acl MYLAN src 192.168.184.0/24    				#客户机网段
acl destinationhost dst 192. 168.184.20/32      #目标地址为192.168.184.20 
acl MC20 maxconn 20                             #最大并发连接20
acl PORT port 21                                #目标端口21
acl DMBLOCK dstdomain .qq.com                   #目标域,匹配域内所有站点
acl BURL url_regex -i ^rtsp:// ^emule://       	#以rtsp://. emule://开头的URL,-i表示忽略大小写
acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$   #以 .mp3、.mp4、.rmvb结尾的URL路径
acl WORKTIME time MTWHF 08:30-17:30             #时间为周一-至周五8:30~17:30"MTWHF"为每个星期的英文首字母

第一条插入
http_access deny host

方法二:

#启动对象列表管理
mkdir /etc/squid
vim /etc/squid/dest.list
192.168.184.10      #Squid服务器IP
192.168.184.0/24     #任意需要的网段

vim /etc/squid.conf
......
acl destinationhost dst "/etc/squid/dest.list"    #调用指定文件中的列表内容
http_access deny (或allow) destinationhost      #注意,如果是拒绝列表,需要放在http_access allow all 前面

systemctl restart squid

2、配置步骤

环境配置
主机	       操作系统	    IP地址	           	   软件、安装包、工具
Squid-Server	CentOS7	   192.168.92.13		squid-3.5.28.tar.gz
Web1	        CentOS7	   192.168.92.14				httpd
Web2         	CentOS7    192.168.92.15				httpd
客户机	        Windows	   192.168.92.100				 ——

(1)Squid-Server(192.168.80.72)

ptables -F
iptables -t nat -F

vim /etc/squid.conf
......
#第8行添加
acl destionhost dst 192.168.80.73/32	#选定控制对象
#32行添加
http_access deny destionhost				#注意,如果是拒绝列表,需要放在http_access allow all前面
#62行修改
http_port 3128
......

systemctl restart squid

(2)Web1 (192.168.80.73)、Web2 (192.168.80.74)

systemctl stop firewalld.service 
setenforce 0
yum -y install httpd
systemctl start httpd

(3)测试

浏览器(192.168.80.100)访问Web服务器 http://192.168.80.73 ,显示被访问被拒绝,访问http://192.168.80.74则可以访问。
客户机浏览器打开代理功能,代理服务器192.168.80.72,端口3128



http://192.168.80.73访问失败

http://192.168.80.73访问成功

二、Squid 反向代理

  • 如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 Web 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

在这里插入图片描述

1、工作机制

  • 缓存网页对象,减少重复请求
  • 将互联网请求轮训或按权重分配到内网Web服务器
  • 代理用户请求,避免用户直接访问Web服务器,提高安全

2、配置步骤

环境配置
主机	        操作系统		  IP地址		 软件、安装包、工具
Squid-Server	CentOS7		192.168.92.13	squid-3.5.28.tar.gz
Web1	        CentOS7		192.168.92.14	 	 httpd
Web2			CentOS7		192.168.92.15		 httpd
客户机			Windows		192.168.92.88	  ——

(1)配置Squid-Server(192.168.92.13)

iptables -F				#清空防火墙规则
iptables -t nat -F

vim /etc/squid.conf
......

60行修改,插入

http_port 192.168.92.13:80 accel vhost vport
cache_peer 192.168.92.14 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 192.168.92.15 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.xc.com
#表示对www.xc.com的请求

http_port 80 accel vhost vport 

 #squid从一个缓存变成了一个Web服务器使用加速模式,这个时候squid在80端口监听请求,
 同时和web server的请求端口(vhost vport)绑定,这个时候请求到了squid,squid是不用转发请求的,
 而是直接要么从缓存中拿数据要么向绑定的端口直接请求数据。accel	反向代理加速模式

在这里插入图片描述

vhost支持域名或主机名来表示代理节点
vport支持IP和端口来表示代理节点
parent代表为父节点
80HTTP_PORT
0ICP_PORT
no-query不做查询操作,直接获取数据
originserver指定是源服务器
round-robin指定 squid 通过轮询方式将请求分发到其中一台父节点
max_conn指定最大连接数
weight指定权重
name设置别名
systemctl stop httpd
systemctl restart squid

在这里插入图片描述

(2)配置web1、web2

systemctl stop firewalld.service 
setenforce 0

#后端web2节点服务器设置
yum install -y httpd
systemctl start httpd

在这里插入图片描述

web1(192.168.92.14)

echo "this is web1 have fun!!!" >> /var/www/html/index.html

在这里插入图片描述

web2(192.168.92.15)

echo "this is web2 Have a good time!!!" >> /var/www/html/index.html

在这里插入图片描述

客户机(192.168.92.88)的域名映射

修改 C:\Windows\System32\drivers\etc\hosts 文件
192.168.92.13 www.xc.com

#如没有权限需属性添加用户权限

在这里插入图片描述

(3)测试
客户机的代理配置

浏览器不开启代理访问  http://www.xc.com

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/734348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【我们一起60天准备考研算法面试(大全)-第八天 8/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

路径规划算法:基于混沌博弈优化的路径规划算法- 附代码

路径规划算法:基于混沌博弈优化的路径规划算法- 附代码 文章目录 路径规划算法:基于混沌博弈优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

Vue3的使用--002

Vue3包含vue2的语法,学习vue3就行。 前提要求, 安装大于node.js15.0。 创建Vue 项目 : npm init Vuelastest : 这一执行将会安装并执行create-vue, 他是Vue 官方的脚手架工具。你将会看到一些Typescript 和测试支持之类的可选功能提示&…

在VSCode里使用Jupyter?Notebook调试Java代码的详细过程

目录 什么是Jupyter Notebook?Jupyter Notebook主要优点环境准备下载 IJava创建conda虚拟环境搭建运行环境测试 之前使用的那台电脑有点旧了,稍微跑一下程序就报内存不够。本来想考虑入手一台带GPU的新电脑,在商品浏览里的时候,…

DynaSLAM代码详解(1) — RGBD模式DynaSLAM运行流程

目录 1.1 DynaSLAM和ORB-SLAM2文件对比 1.2 RGBD模式运行流程 论文翻译地址:动态SLAM论文(2) — DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes_几度春风里的博客-CSDN博客 1.1 DynaSLAM和ORB-SLAM2文件对比 DynaSLAM是一个建立在ORB-SLAM2基础上…

【Leetcode】707. 设计链表

单向链表 class ListNode:def __init__(self, val0, nextNone):self.val valself.next nextclass MyLinkedList:def __init__(self):self.dummy_head ListNode()self.size 0def get(self, index):if index < 0 or index > self.size:return -1current self.dummy_h…

【简单认识LVS+Keepalived负载均衡高可用群集】

文章目录 一、Keepalived高可用详解1、简介2、原理3、Keepalived体系主要模块及其作用&#xff1a; 二、LVSKeepalived 高可用群集部署实例1.配置NFS共享存储器2.配置节点web服务&#xff08;两台的配置相同&#xff09;&#xff08;1&#xff09;配置虚拟 IP 地址&#xff08;…

飞桨黑客松 OpenVINO™ 任务获奖者经验分享 | 基于OpenVINO™ 与PaddleOCR的结构化输出Pipeline...

点击蓝字 关注我们,让开发变得更有趣 作者 | 张一乔 排版 | 李擎 OpenVINO™ 1. 黑客松活动介绍 01 第四季飞桨黑客松(PaddlePaddle Hackathon Season 4)是由百度联合合作伙伴共同举办的开源深度学习框架类黑客松活动。本次活动旨在为全球开发者提供一个交流、合作和创新的机会…

Django_模型类详解(七)

目录 一、定义属性 字段类型 选项 二、查询集 两大特性 查询集的缓存 限制查询集 三、条件查询 条件运算符 1) 查询相等 2) 模糊查询 3) 空查询 4) 范围查询 5) 比较查询 6) 日期查询 F对象 Q对象 聚合函数 四、关联查询 通过对象执行关联查询 通过模型类执…

线程池介绍

1、什么是线程池 例子&#xff1a; 10年前单核CPU电脑&#xff0c;假的多线程&#xff0c;像马戏团小丑玩多个球&#xff0c;CPU需要来回切换。 现在是多核电脑&#xff0c;多个线程各自跑在独立的CPU上&#xff0c;不用切换效率高。 线程池的优势&#xff1a; 线程池做的工作…

七、VPN技术之密码学基础(密码体制、对称加密算法、非对称加密算法)

更多网络基础内容可见: 网络基础学习目录及各章节指引 7.1 密码学基础 7.1.1 基础概念 密码:对文本进行编码,使偷窥者无法识别的算法。是一套编码方案,一种特殊的报文编码和相应的解码方式的结合体。 加密之前的原始报文称为明文,使用密码之后的报文叫密文。一个简单的例…

elk高并发架构

1.前言 普通的elk架构只适合数据量小的情景&#xff0c;而且也不安全&#xff0c;在瞬时数据量大的情况下可能会导致logstash崩溃&#xff0c;从而导致数据的丢失&#xff0c;对于数据安全有较高要求&#xff0c;可以在架构中加入消息队列&#xff0c;既可以防止瞬时的大流量并…

有过JVM调优经验吗【面试题】

写作目的 JVM其实比较偏理论的&#xff0c;日常工作中很少遇到。但是面试他问&#xff0c;所以需要自己mock一下场景进行准备这个问题的回复。 本次分析的场景的元空间太小导致频繁FGC的问题。 源码&启动参数 gitee下载源码 启动-调优前 nohup java -XX:MetaspaceS…

【MySQL】SQL索引失效的几种场景及优化

MySQL中提高性能的一个最有效的方式是对数据表设计合理的索引。索引提供了高效访问数据的方法&#xff0c;并且加快查询的速度&#xff0c; 因此索引对查询的速度有着至关重要的影响。 使用索引可以快速地定位表中的某条记录&#xff0c;从而提高数据库查询的速度&#xff0c;…

C++之函数模板高级用法(一百五十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

两个好用到爆的Python模块,建议收藏!

在日常开发工作中&#xff0c;经常会遇到这样的一个问题&#xff1a;要对数据中的某个字段进行匹配&#xff0c;但这个字段有可能会有微小的差异。比如同样是招聘岗位的数据&#xff0c;里面省份一栏有的写“广西”&#xff0c;有的写“广西壮族自治区”&#xff0c;甚至还有写…

基于单片机的智能鞋柜的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;通过DHT11温湿度采集&#xff1b;通过按键设置逻辑处理&#xff1b;通过LED紫外线消毒&#xff1b;通过继电器控制风扇进行换气除湿&#xff1b;通过继电器控制加热片进行加热&#xff1b;整个电路以5v供电; 电路图 PCB 源代码 #i…

nodejs 读取xlsx 文件转json 格式(包含表格时间类型)

需求概要&#xff1a;从xlsx 文件中读取内容转化成想要的json 格式&#xff0c;用于web 读取数据 newDoc.xlsx文档内容大概&#xff1a; 本内容主要是更新前端公告内容&#xff0c; const xlsx require(node-xlsx) const fs require(fs) const moment require(moment)//转换…

双非本大二上岸大厂——念念不忘,必有回响

⭐️前言⭐️ 博主就读于一所普通的学校&#xff08;双非本&#xff09;&#xff0c;在大二下学期3月份开始网上投递简历&#xff0c;历时近百余天&#xff0c;投递简历500&#xff0c;面试近40余场&#xff0c;最终在6月份学期末&#xff0c;斩获了两个大厂offer&#xff08;北…

最小栈——力扣155

方法&#xff1a;辅助栈 这些函数中只有求最小值函数需要借助辅助栈 代码如下&#xff1a; class MinStack {stack<int> x_stack;stack<int> min_stack; public:MinStack() {min_stack.push(INT_MAX);}void push(int val) {x_stack.push(val);min_stack.push(…