ACL访问控制、Squid 反向代理

一、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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于nginx和squid反向代理实验,我可以为您提供一些基本的指导和概念说明。 首先,nginx和squid都是常用的反向代理服务器软件。它们的主要功能是接收客户端请求,并将这些请求转发到后端的服务器上,然后将响应返回给客户端。这种反向代理的架构可以提供负载均衡、缓存、安全性等优势。 在进行实验之前,您需要确保已经安装了nginx和squid。安装方法可以参考官方文档或者相关的教程。 对于nginx,您可以通过修改nginx配置文件来配置反向代理。主要的配置项是`proxy_pass`,它指定了需要转发的后端服务器地址。您可以根据需要添加其他的配置项,如负载均衡策略、缓存设置等。 下面是一个简单的nginx反向代理配置示例: ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; } } ``` 在上面的示例中,所有请求都会被转发到`http://backend_server`这个后端服务器上。 对于squid,您可以通过编辑squid配置文件来配置反向代理。主要的配置项是`cache_peer`,它指定了需要转发的后端服务器地址。您可以根据需要添加其他的配置项,如缓存设置、访问控制等。 下面是一个简单的squid反向代理配置示例: ``` http_port 3128 http_access allow all cache_peer backend_server parent 80 0 no-query originserver acl our_sites dstdomain example.com http_access allow our_sites cache_peer_access backend_server allow our_sites ``` 在上面的示例中,squid监听在3128端口,所有请求都会被转发到`backend_server`这个后端服务器上。同时,针对example.com这个域名的请求会被允许访问。 请注意,以上只是简单的示例配置,实际的配置可能还涉及到其他方面的设置,如安全性、性能优化等。 希望以上信息能对您有所帮助!如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值