Squid代理服务器(传统代理和透明代理)

Squid代理服务器

技能展示:
了解代理服务的常见类型
学会构建传统代理,透明代理服务
学会配置Squid的访问控制策略

简介
学习Squid代理服务器的构建与控制。Squid是Linux系统中最常用的一款开源代理访问软件(官方网站为http://www.squid-cache.org),可以很好地实现HTTP和FTP,以及DNS查询.SSL等应用的缓存代理,功能十分强大。

重点
构建透明代理服务器
Squid服务的访问控制策略

理论讲解
Squid服务基础
本节将介绍缓存代理的工作机制,类型,以及Squid服务的安装和运行控制,主配置文件。
缓存代理概述
作为应用层的代理服务软件.Squid主要提供缓存加速,应用层过滤控制的功能。
1.代理的工作机制
当客户机通过代理来请求Web页面时,指定的代理服务器会先检查自己的缓存,如果缓存中已,经有客户机需要的页面,则直接将缓存中的页面内容反馈给客户机如果缓存中没有客户机要访问的页面,则由代理服务器向henet发送访问请求,获得返回的Web页面以后,将网页数据保存到缓存中并发送给客户机。如下图
在这里插入图片描述
HTTP代理的缓存加速对象主要是文字、图像等静态Web元素。使用缓存机制后,当客户机在不同的时候访问同-Web元素,或者不同的客户机访问相同的Web元素时,可以直接从代理服务器的缓存中获得结果,这样就大大减少了向Internet提交重复的Web请求的过程,提高了客户机的Webi问响应速度。
由于客户机的Wet访问请求实际上是由代理服务器来代替完成的,从而可以隐藏用户的真实IP地址,起到一定的保护作用。另一方面,代理服务器担任着类似“经纪人的角色,可以针对要访问的目标、客户机的地址、访问的时间段等进行过滤控制。
2.代理的基本类型
根据实现方式不同,代理服务可分为传统代理和透明代理两种常见的代理服务。
>传统代理:也就是普通的代理服务,首先必须在客户机的浏览器,00聊天工具,下载软件等程序中手动设置代理服务器的地址和端口,然后才能使用代理来访问网络,对于网页浏览器,访问网站时的域名解析请求也会发给指定的代理服务器。
> 透明代理:提供与传统代理相同的功能和服务,其区别在于客户机不需要指定代理服务器的地址和端口,而是通过默认路由,防火墙策略将Web访问重定向,实际仍然交给代理服务器来处理,重定向的过程对客户机来说是"透明"的,用户甚至并不知道自己在使用代理服务,所以称为透明代理,使用透明代理时,网页浏览器访问网站时的域名解析请求将优先发给DNS服务器。
实际应用中,传统代理多见于Internet环境,如为00程序使用代理可以隐藏本机真实P地址为下载工具使用多个代理可以规避服务器的并发连接限制,而透明代理多见于局域网环境,如在Linux网关中启用透明代理后,局域网主机无须进行额外设置就可以享受更好的上网速度。

基础知识
一.squid代理的作用和特定
1)squid代理的作用
代理程序
2)squid的特定
隐藏内部网络
安全性强
缓存用户访问历史数据
减少带宽资源占用
加快用户访问速度
2.常见的代理程序
1)squid
针对应用层实现
缓存用户历史数据
2)nginx
针对网站配置负载均衡
增加访问并发量
避免单点故障
3.squid的工作原理
1)客户端请求代理
客户端向squid代理发送查询请求
3)squid查询缓存
缓存保存用户数据直接返回客户端
缓存没有用户查询数据,squid请求目标服务器,缓存数据后返回客户端
4.代理的类型
1)传统代理
管理员需要给客户端手动配置代理服务器
配置工作量大,效率低
2)透明代理
管理员不需要手动给客户端配置代理服务器
防火墙端口映射自动配置代理
二.安装配置代理服务器
1.安装squid代理服务器
1)创建管理squid账户
[root@centos03 ~]# useradd -M -s /sbin/nologin squid
2)配置squid
[root@centos03 squid-3.4.6]#./configure --prefix=/usr/local/squid --sysconfdir=/etc – enable-linux-netfilter --enable-async-io-240 --enable-default-err-languge-Simplify_Chinese – disable-poll --enable-epoll --enable-gunregex
在这里插入图片描述

在这里插入图片描述
3)编译安装
[root@centos03 squid-3.4.6]# make && make install
在这里插入图片描述

4)修改squid目录的所有者
[root@centos03 ~]# chown -R squid:squid /usr/local/squid/
5)优化squid命令
[root@centos03 ~]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/
6)创建存储日志文件
[root@centos03 ~]# touch /usr/local/squid/var/logs/cache.log
2.检查squid配置文件和启动服务器
1)检查squid配置文件是否有错误
[root@centos03 ~]#squid -k parse
2)初始化缓存目录
[root@centos03 ~]# squid -z
3)启动squid服务
[root@centos03 ~]# squid
3.配置传统代理
在这里插入图片描述

1)修改主配置文件
[root@centos03 ~]# vim /etc/squid.conf
http_access allow all 允许所有人使用squid
http_port 3128 默认监听端口3128
cache_effective_user squid 管理squid用户
cache_effective_group squid 管理squid组
reply_body_max_size 10 MB 限制用户通过代理下载文件10M
2)检查主配置文件是否错误
[root@centos03 ~]# squid -k parse
3)启动squid服务
[root@centos03 ~]# squid
4)配置客户端设置代理
[root@centos02 ~]# vim /etc/profile
HTTP_PROXY=http://192.168.100.30:3128
HTTPS_PROXY=http://192.168.100.30:3128
FTP_PROXY=http://192.168.100.30:3128
NO_PROXY=192.168.100.10,192.168.100.50
export HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY
4.配置透明代理
在这里插入图片描述

1)开启代理服务器的路由功能
[root@centos03 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
在这里插入图片描述
2)配置透明代理
[root@centos03 ~]# vim /etc/squid.conf
http_port 3128 transparent 开启代理功能
3)安装防火墙
[root@centos03 ~]# yum -y install iptables-services 安装iptables防火墙
[root@centos03 ~]# iptables -F 清空所有防火墙规则
[root@centos03 ~]# iptables -L 查看防火墙规则
[root@centos03 ~]# iptables-save 保存防火墙
4)将网站映射到3128端口
[root@centos03 ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
[root@centos03 ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 21 -j REDIRECT --to 3128
[root@centos03 ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
三.squid的访问控制
在这里插入图片描述

1.访问控制的方式
1)使用访问控制列表
acl 访问控制列表名字 列表类型 列表内容
2)使用http_access调用访问控制列表
http_access allow/deny 访问控制列表
2.访问控制列表限制的类型
1)Src
源主机或者网络
2)dst
目标主机或者网络
3)Port
目标端口号
4)Dstdomain
目标域
5)time
访问时间
6)max connect
访问最大并发数
7)限制特定的目标网络
url_regex -j ^test:// ,i 不区分大小写
8)整个目标网址限制
Url path_regex -i .mp3$ ,不允许下载mp3文件
3.限制特定网络通过squid访问目标
1)写访问控制列表限制源网络
acl AA src 192.168.100.0/24
2)调用访问控制列表
http_access deny AA
4.通过定义列表名单限制主机
1)创建列表名当
[root@centos03 ~]# vim /etc/ipblock.list
192.168.100.50
2)定义访问控制列表
acl IPBLOCK src “/etc/ipblock.list”
3)调用访问控制列表
http access deny IPBLOCK

感谢观看,拜拜😊😄😁

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值