实验五 部署 Squid 做正/反向代理
00 分钟
2024-6-19
Created
Jun 6, 2024 03:36 AM
Tags

实验一 标准正向代理

(一)环境准备

1.1 环境组成

  • 操作系统:CentOS Linux release 7.6.1810
  • 软件工具:
  • 关闭防火墙/SELINUX

1.2 资源配置

将客户端与服务端放在同一网络环境下。
设备
属性
虚拟机网卡
本机网卡
网卡对应 IP 地址
网关
C7 - 1
客户机 - Client
VMNET 3
ens33
192.168.33.10
192.168.33.20
C7 - 2
路由器 + 代理服务器
VMNET 5
ens33
192.168.33.20
ens34
192.168.99.20
C7 - 3
web 服务器
VMNET 5
ens33
192.168.99.30
192.168.99.20

(二)搭建部署

2.1 web 服务器

2.2 路由+代理服务器

(三)功能测试

3.1 测试机测试(图形)

设置→网络代理→设置→手动配置→输入代理IP端口→确定→访问网站查看服务器访问日志

3.2 字符界面测试

3.3 限制用户通过代理服务器下载的文件大小

3.4 Squid 缓存

二、透明正向代理

1. 实验规划

内网机
VMnet10 ens33 IP:192.168.10.11 GW:192.168.10.22
路由+代理服务器
VMnet10 ens33 IP:192.168.10.22
VMnet10 ens37 IP:192.168.11.22
web服务器
VMnet11 ens33 IP:192.168.11.33 GW:192.168.11.22

2. 修改squid配置文件

3. 测试

三、反向代理缓冲器

1. 实验规划

内网机
VMnet10 ens33 IP:192.168.10.11 GW:192.168.10.22
路由+代理服务器
VMnet10 ens33 IP:192.168.10.22
VMnet11 ens37 IP:192.168.11.22
web服务器1
VMnet11 ens33 IP:192.168.11.33 GW:192.168.11.22
web服务器2
VMnet11 ens33 IP:192.168.11.44 GW:192.168.11.22

2. 配置web服务器1&2

3. 路由器+代理服务器

4. 测试

四、squid中的访问控制

利用访问控制特性,可以控制在访问时根据特定的时间间隔进行缓存、访问特定站点或一组站点等

1. squid访问控制有两个要素

ACL元素和访问列表,访问列表可以允许或拒绝某些用户对此服务的访问

2. ACL元素类型

  • *src:**源地址(客户端IP地址)
  • *dst:**目标地址(服务器IP地址)
  • *srcdomain:**源域名(客户端名称)
  • *dstdomain:**目标域名(服务器名称)
  • *time:**一天中的时刻和一周内的一天
  • *url_regex:**URL规则表达式匹配
  • *urlpath_regex:**URL-path规则表达式匹配,省略协议和主机名
  • *proxy_auth:**通过外部程序进行用户验证
  • *maxconn:**单一IP的最大连接数

3. ACL格式

1、acl_element_name可以是任意一个在ACL中定义的名称
2、任何两个ACL元素不能用相同的名字
3、每个ACL由列表值组成
当进行匹配检测时,多个值由逻辑或运算连接
即任意一个ACL元素的值被匹配,则这个ACL元素即被匹配
4、并不是所有ACL元素都能使用防伪码列表中的全部类型
5、不同的ACL元素写在不同行中,squid将把它们组合在一个列表中

4. 常用访问条目

1、http_access:允许HTTP访问
2、no_cache:定义对缓存请求的响应。
访问列表的规则由一些类似'allow'或‘deny’的关键字构成,用以允许或拒绝向特定或一组ACL元素提供服务。
一个访问列表可以由多条规则组成
3、如果没有任何规则与访问请求匹配,默认动作将与列表中最后一条规则对应。
一个访问条目中所有规则(条件)将用逻辑与运算连接
4、http_access Action 声明1 AND 声明2 AND 声明 OR.
5、http_access Action 声明3
6、多个http_accesss声明间用或运算连接,但每个访问条目的元素间用与运算连接。
7、列表中的规则总是遵循由上而下的顺序
8、这些规则按照他们的排列顺序进行匹配检测,一旦检测到匹配的规则,匹配就立即结束。

5. ACL访问控制实例

1. 实例1

允许IP地址10.0.0.0/24以及192.168.10.0/24内的所有客户机访问代理服务器,并且允许在文件/etc/squid/guest列出的客户机访问代理服务器,除此之外的客户机将拒绝访问本地代理服务器
其中,文件/etc/squid/guest中的内容

2. 实例2

允许域名为kernel.com、linuxlc.com的两个域访问本地代理服务器,其他的域都将拒绝访问本地代理服务器

3. 实例3

使用正则表达式,拒绝客户机通过代理服务器访问包含有诸如“sexy”等关键字的网站

4. 实例4

拒绝客户机通过代理服务器访问文件中指定IP或者域名的网站,其中文件/etc/squid/ deny_ip中存放有拒绝访问的IP地址,文件/etc/squid/deny_dns中存放有拒绝访问的域名

5. 实例5

允许和拒绝指定的用户访问指定的网站,其中,允许客户1访问网站http://www.sina.com.cn,而拒绝客户2访问网站http://www.163.com

6. 实例6

允许所有的用户在规定的时间内(周一至周四的8:30到20:30)访问代理服务器,只允许特定的用户(系统管理员,其网段为:192.168.10.0/24)在周五下午访问代理服务器,其他的在周五下午一点至六点一律拒绝访问代理服务器
上一篇
Linux 基础知识 往期汇总
下一篇
<K8S> vol. 01 - kubernetes 组件