1.什么是squid服务?
提供的代理服务(缓存服务),可以缓存用户访问过的数据,当用户下次访问同样的数据时,squid代理可以从缓存中提取数据,可以直接访问,提高了访问速度和降低了对带宽的使用。
2.应用的环境
公司现有100个用户需要全部上网,通过路由交换可以可以实现,也可以每人一个IP地址,通过以上方式上网不能缓存用户访问过的数据。
3.squid代理的方式有三种:
普通代理:客户端必须在自己的浏览器里指定代理服务器的ip地址和代理服务监听的端口号,才能够通过代理服务器上网,代替局域网内的所有客户端上网。
透明代理:客户端不需要在自己的浏览器里指定代理服务器的ip地址和代理服务监听的
反向代理:代替公网客户端访问私网的服务器。
4.squid通过什么限制客户端通过自己访问什么样的资源?
通过ACL(访问控制列表)来限制客户端 通过自己访问资源。
*acl要先定义后调用,但可以只定义不调用
*调用acl时遇到匹配就执行,后边的就不查看了
*所以在调用acl时,要把要小范围的放在大范围的上边
5.squid优点:
1)通过缓存增加访问速度。
2)提供用私有IP访问internet的方法。
3)提高网络的安全性。
4)方便对用户的管理。
6.squid缺点:
1)产生单点故障。
2)当同时访问时网络比较慢。
7.进程名 squid
进程所有者/组 squid
端口号 3128
数据传输协议 tcp
实验(一)
实验目的:搭建普通代理
实验环境:3台服务器
pc1 主机名:localhost IP地址:192.168.1.10 内网客户机
pc2 主机名:fanlj 代理服务器 (eth0连接内网IP地址192.168.1.254,eth1连接外网IP地址1.1.1.254)
pc3 主机名:fanxiaohui IP地址:1.1.1.1 外网web服务
实验要求:
PC2代理内网用户PC1可以访问外网的WEB服务。
搭建实验环境分别安装以上要求进行搭建,并且在pc2上测试是否可以ping通1.1.1.254和1.1.1.1。
在外网WEB创建一个网页index.html,内容是1.1.1.1
在PC2上测试是否可以访问WEB的内容
在PC2上部署squid代理,可以代替内网用户PC1的用户可以访问PC3WEB的内容
1.查看软件包是否安装,如果没有安装,就安装squid软件包。
2.修改主配置文件,http_port访问squid端口为3128,cache_dir为缓存存放的目录,ufs为目录的固定格式,/var/spool/squid为存放的位置,100为缓存的大小,16为/var/spool/squid目录下有16个目录,256为在16个目录下有256个子目录,cache_mem为拿出实际物理内存32M做高速缓存,visible_hostname为主机名,当系统的主机名和hosts文件中127.0.0.1中的主机名不一致时,必须在squid配置文件中要指明主机名,默认squid服务就代替私ip地址通过自己上网。
3.重新启动squid服务,并且查看/var/spool/squid目录下是否有16个目录。
查看端口和进程
4.在客户端PC1测试,客户端必须在自己的浏览器中指定代理 服务器的IP地址和代理服务监听的端口 。
在客户端浏览器上选择编辑---首选项----高级----网络---设置----手动配置代理指向自己本网段squid代理的IP地址和端口为3128.
5.在代理服务器上查看有那些客户端访问过1.1.1.1
普通代理缺点:
客户端必须在自己浏览器中指定代理服务器的IP地址。
实验(二)
实验目的:配置透明代理
透明代理优点:客户端不需要在自己的浏览器里指定代理服务器的ip地址和代理服务监听的,只要把网关指定代理服务器的私网接口的IP地址就可以上网。
实验要求:客户端不在自己的浏览器中指定代理的接口和IP地址就可以上网。
配置squid透明代理的前题条件?
企业的网关(共享接入Internet)
防火墙服务必须和代理服务运行在一台服务器上
需要设置防火墙策略(将客户机的Web访问数据转交给代理服务程序处理)
1、把客户端访问网站的请求包,发个代理服务器
2、在代理服务器上运行防火墙服务,编写防火墙规则,把本机接收到的访问web的请求转交给本机的代理服务
iptables -t 表名 管理选项 链名 匹配条件 -j 处理动作
表名(不同的表有不同的功能)
filter 数据包过滤
mangle 给数据包打标记
nat 给数据包做转换(源地址 \ 目的地址\ 端口)
raw 跟踪数据包状态
管理选项
-L 查看
-D 删除
-A 添加
-F 清空
链 (数据包传输的方向 以防火墙本机为参照物)
INPUT 进入防火墙的数据包
OUTPUT 从防火墙本机出去的数据包
FORWARD 经过防火墙的数据包
POSTROUTING 路由后
PREROUTING 路由前
匹配条件
-i 指定数据包从那个物理接口进入
-s 指定数据包的来源地址
-p 指定数据传输协议
--dport 指定数据包的目标端口
处理动作
DROP 丢弃
REJECT 拒绝
DNAT 目标地址转换
SNAT 源地址转换
REDIRECT 端口状态
3.在客户端测试,打开客户端浏览器输入http://1.1.1.1
实验(三)squid反向代理
反向代理: 代替公网客户端访问私网的服务器。
实验目的:配置squid的反向代理
实验要求:公网用户要访问私网的服务器的内容。
实验环境:3台服务器
pc1 主机名:localhost IP地址:192.168.1.10 内网web服务器
pc2 主机名:fanlj 代理服务器 (eth0连接内网IP地址192.168.1.254,eth1连接外网IP地址1.1.1.254)
pc3 主机名:fanxiaohui IP地址:1.1.1.1 外网client(用户)
环境分析:外网用户要访问内网web服务器必须通过代理服务器来访问,代理服务器必须监听80端口才能使外网访问内网,所以代理服务器上的httpd访问必须停止,如果代理服务器上有httpd服务,那么外网只能访问代理上的web服务。
1.修改主配置文件,使代理服务器做反向代理。cache_peer为真正后端服务器的地址,parent代理服务器和实现web服务器的关系,80代表访问的端口,0代表与其他代理服务器通信的接口,originserver代表提供服务器的真正主机。
2.代理服务器停止防火墙和查看80端口是否被占用,如果占用被释放,从新启动squid服务。
3.在web服务器端192.168.1.10做一个网页页面,并查看 httpd是否开启
4.公网用户查看是否可以访问web服务器。
实验(四)基于域名和端口的虚拟主机的访问。
实验目的(一):当外网用户访问www.tarena.com,内网服务器端显示wwwpage页面,(http://www.tarena.com显示wwwpage)
用户访问bbs.tarena.com ,内网服务器端显示bbspage页面(http://bbs.tarena.com 显示bbspage)。
1.在内网服务器创建两个文件夹用来存放页面分别为:wwwpage和bbspage
2.在内网服务器上创建基于域名的虚拟主机,使外网用户访问不同地址时显示不同的页面。
3.测试自己访问是否可以解析
4.在squid服务器上配置DNS服务用来解析www.tarena.com和bbs.tarena.com.
5.在外网客户端上测试查看是否可以访问www.tarena.com 和bbs.tarena.com
本文出自 “脚踏实地向前行” 博客,请务必保留此出处http://343614597.blog.51cto.com/7056394/1691703
原文地址:http://343614597.blog.51cto.com/7056394/1691703