设为首页 收藏本站
查看: 1177|回复: 0

[经验分享] squid配置及应用

[复制链接]

尚未签到

发表于 2018-12-26 12:21:09 | 显示全部楼层 |阅读模式
一、Squid简介及作用
Squid是Linux下一个缓存Internet数据的代理服务器软件,其接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户想要下载一个主页时,可以向Squid发出一个申请,要Squid代替其进行下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份。当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。 
squid不仅可用在Linux系统上,还可以用在AIX、Digital Unix、FreeBSDNetBSDNextstepSCOSolaris等系统上。
Squid与Linux下其它的代理软件如Apache相比,下载安装简单,配置简单灵活,支持缓存和多种协议。用ipchains+Squid的解决方案,就可以获得通过缓存高
性能的同时能够无缝的访问Internet。
Squid代理服务器的作用
1.通过缓存的方式为用户提供web访问加速
2.对用户的web访问进行过滤控制
缓存代理服务器又分为普通代理服务器,透明代理服务器,和反向代理服务器。
普通代理服务即指标准的,传统的代理服务,需要客户机在浏览器中指定代理服务器的地址,端口。
透明代理服务器适合企业的网关主机,客户机不需要指定代理服务器地址,端口等信息,需要设置防火墙策略将客户机的web访问数据转交给代理服务器。
反向代理服务为INTERNET用户访问网络内网站点提供缓存加速,提高访问效率。

二、squid常用命令及其相关配置

1. Squid命令
在开启squid之前,你应该验证其配置文件是否正确
# squid -k parse
初始化cache目录.即建立缓存目录的存储格式,观察这个过程,请使用-X选项
# squid –zX
启动squid服务
# service squid start
重配置运行中的squid进程
# squid -k reconfigure
最安全的停止squid的方法是使用squid -k shutdown命令:
# squid -k shutdown

2.Squid 主要组成部分
服务名:squid
主程序:/usr/sbin/squid
配置目录:/etc/squid
主配文件:/etc/squid/squid.conf
监听tcp端口号:3128
默认访问日志文件:/var/log/squid/access.log

3.squid 常用配置选项(/etc/squid/squid.conf)
http_port 3128      #监听端口
cache_mem 64MB       #缓存占内存大小
maximum_object_size 4096KB      #最大缓存块
reply_body_max_size 1024000 allow all #限定下载文件大小
access_log /var/log/squid/access.log #访问日志存放的文件
visible_hostname proxy.test.xom #可见的主机名
cache_dir ufs /var/spool/squid 100 16 256
usf:缓存数据的存储格式
/var/spool/squid 缓存目录
100 : 缓存目录占磁盘空间大小(M)
16 :缓存空间一级子目录个数
256 :缓存空间二级子目录个数
cache_mgr webmaster@test.com #定义管理员邮箱
http_access deny all #访问控制

4.squid中的访问控制
使用访问控制特性,可以控制在访问时根据特定的时间间隔进行缓存、访问特
定站点或一组站点等等。 Squid 访问控制有两个要素:ACL 元素和 访问列表。
访问列表可以允许或拒绝某些用户对此服务的访问。
下面列出一些重要的 ACL 元素类型
src : 源地址 (即客户机IP地址)
dst : 目标地址 (即服务器IP地址)
srcdomain : 源名称 (即客户机名称)
dstdomain : 目标名称 (即服务器名称)
time : 一天中的时刻和一周内的一天
url_regex : URL 规则表达式匹配
urlpath_regex: URL-path 规则表达式匹配,略去协议和主机名
proxy_auth : 通过外部程序进行用户验证
maxconn : 单一 IP 的最大连接数
为了使用控制功能,必须先设置 ACL 规则并应用。ACL 声明的格式如下:
acl acl_element_name type_of_acl_element values_to_acl
注:
1. acl_element_name 可以是任一个在 ACL 中定义的名称。
2. 任何两个 ACL 元素不能用相同的名字。
3. 每个 ACL 由列表值组成。当进行匹配检测的时候,多个值由逻辑或运算换言之,即任一 ACL bbs.bitsCN.com元素的值被匹配,则这个 ACL 元素即被匹配。
4. 并不是所有的 ACL 元素都能使用访问列表中的全部类型。
5. 不同的 ACL 元素写在不同行中,Squid 将把它们组合在一个列表中。
我们可以使用许多不同的访问条目。下面列出我们将要用到的几个:
* http_access: 允许 HTTP 访问。这个是主要的访问控制条目。
* no_cache: 定义对缓存请求的响应。
访问列表的规则由一些类似 'allow' 或 'deny' 的关键字构成,用以允许或拒绝向特定或一组 ACL 元素提供服务。
注: 
1. 这些规则按照它们的排列顺序进行匹配检测,一旦检测到匹配的规则,匹配检测就立即结束。
2. 一个访问列表可以又多条规则组成。
3. 如果没有任何规则与访问请求匹配,默认动作将与列表中最后一条规则对应。
4. 一个访问条目中的所有元素将用逻辑与运算连接:http_access Action 声明1 AND 声明2 AND 声明 OR.http_access Action 声明3 多个 http_access 声明用或运算连接,但每个访问条目的元素间用与运算连接。
5. 请记住列表中的规则总是遵循由上而下的顺序。 

三、实验环境的搭建

1.试验设备:
客户机
Microsoft window xp , Microsoft window 7
www服务器
Microsoft window 2003
Squid代理服务器
[root@localhost ~]# uname -r
2.6.18-164.el5
[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
2.安装squid服务
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
[root@localhost ~]# cd /mnt/cdrom/Server/
[root@localhost Server]# rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm


四、实验案例
1.实现普通代理服务器
拓扑图:



配置信息squid服务器
[root@localhost ~]# vim /etc/squid/squid.conf
637 http_access allow all
920 http_port 192.168.2.101:3128 ##代理的ip地址
#http_port指令告诉squid在哪个端口侦听HTTP请求
2994 visible_hostname 192.168.2.101   ##出现错误时,返回的主机信息
[root@localhost ~]# squid -k parse ##检查配置文件
[root@localhost ~]# service squid start ##启动
测试
客户端配置和网络配置参数
打开IE浏览器—>工具—>Internet选项—>连接—>局域网设置—>

     




访问控制示例
1)禁止访问sina
acl sina dst www.sina.com.cn
http_access deny sina
2) 禁止来自某些IP地址的访问
在squid配置文件中添加以下acl名称及访问规则,并重新加载配置文件
acl enemy src 192.168.2.10/32
http_access deny enemy
3) 禁止在某些时段访问
acl Working_hours MTWHF 08:00-17:00
http_access allow Working_hours
http_access deny !Working_hours
4) 禁止某个代理客户建立过多连接
acl OverConnLimit maxconn 4
http_access deny OverConnLimit
5)禁止访问域名包含为google.com的网站
acl badurl url_regex -i google.com
http_access deny badurl
篇幅有限,这里不再多举例子了,我也是菜鸟一个,在这方面也要多努力学习。
2.实现透明代理服务器
拓扑图:


配置信息
打开数据的转发功能
[root@localhost ~]# vim /etc/sysctl.conf
7 net.ipv4.ip_forward = 1       ##1代表打开,0代表关闭
[root@localhost ~]# sysctl –p ##生效
[root@localhost ~]# vim /etc/squid/squid.conf
920 http_port 192.168.2.101:3128 transparent ##透明代理
[root@localhost ~]# squid -k parse
[root@localhost ~]# service squid restart
添加iptables规则
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -p udp --dport 53 -o eth1 -j MASQUERADE
[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j REDIRECT --to-ports 3128
测试
客户端网络配置参数



3、反向代理服务
拓扑图:


配置信息
[root@localhost ~]# vim /etc/squid/squid.conf
920  http_port 192.168.101.26:80 vhost   ##反向代理
1185 cache_peer 192.168.2.201 parent   80   0 originserver

测试
客户端网络配置参数





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-656081-1-1.html 上篇帖子: RHCE培训笔记——Squid 下篇帖子: squid 提高命中率
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表