Squid代理服务器
1、squid代理:
缓存网页,减少重复请求,加快访问速度,隐藏真实ip
代理的分类:
传统代理:使用Internet和内网,客户端需明确指定代理服务器。
透明代理:使用于内网访问外网,指定代理服务器,但必须指定网关,网管配置iptables策略,将端口重定向到代理服务器端口。
2、squid和nat的区别:
NAT:工作在网络层,通过转换地址转发数据包,实现内外网之间通信。
应用代理:工作在应用层,通过缓存提供服务,不进行数据包转发,主要实现web缓存服务。
3、squid的安装
./configure --prefix=/usr/local/squid(安装目录) --sysconfdir=/etc(配置文件位置) --enable-linux-netfilter(支持内核过滤) --enable-linux-tproxy(支持透明模式) --enable-async-io=100 --enable-err-language=”Simplify_Chinese”(错误信息显示语言) --enable-underscore(允许URL中有下划线) --enable-poll(使用Poll()模式,提升性能) --enable-gnuregex(使用GNU正则表达式)
4、主配置文件/etc/squid.con的配置项:
http_port 3128 默认端口号:3128
cache_effective_user squid 指定squid的程序用户
cache_effective_group squid 指定账号的基本组
repy_body_max_size 10 MB 允许下载最大文件大小
maximum_object_size 4096 KB 允许缓存的最大对象
visible_hostname a.benet.com 指定主机名(名称随意)
5、squid的管理命令:
squid -k parse 检测语法
squd -z 初始化缓存目录
squid 启动squid
squid -k reconfigure 重新加载配置
关闭squid: kill 进程号(查看进程号命令:netstat -anpt | grep “squid”)
6、透明代理配置:
1)在/etc/squid.conf配置文件添加支持透明代理
http_port 192.168.1.1:3128 transparent
(192.168.1.1是内网网关)
2)添加iptables策略,将80号端口(HTTP)和443端口(HTTPS)重定向到3128
Iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 3128
Iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to 3128
7、squid的控制
由ACL和http_access两条命令实施,ACL定义规则,http_access应用规则。
格式: acl 名称 控制类型 控制内容
http_access allow|deny 名称1 名称2
控制类型:src 源地址 dst 目标地址
port 端口号 time 访问时间
dstdomain 目标域 maxconn 连接数url_grgex 目标URL地址 urlpath_regex URL路径(文件类型)
可以设置黑白明单以控制允许或拒绝访问的主机
例:建立针对目标地址的黑名单文件
mkdir /etc/squid
cd /etc/squid
vim ipblock.list --写入地址(61.135.167.36 125.39.127.25 60.28.14.0/24)
调用指定文件中的列表内容:
acl IPBLOCK dst “etc/squid/ipblock.list”
8、sarg是一款squid日志分析工具,采用html格式,详细列出站点信息时间、排名、连接次数、访问量,主配置文件为sarg.conf可设置字体大小、背景、颜色等。
Squid代理服务器应用示例
实验拓扑图:
实验要求:
(1)如上图要求配置网络,内部主机需要配置默认网关,外部linux不需要配置默认网关。
(2)在squid服务器上安装squid,并做相关的配置,启动squid服务,查看端口。
(3)搭建传统代理服务器,要求在内部linux服务器能够使用传统代理访问外部的web服务器。内部客户端最大允许下载的文件不能超过10MB,squid最大缓存的文件为4MB。内部客户端验证文件下载。
(4)修改squid的主配置文件,搭建一台透明代理服务器,结合iptables的重定向策略,开启路由转发。验证内部客户端能否使用透明代理访问外部的web服务器。
(5)修改squid的主配置文件,设置ACL访问控制,要求内部客户端192.168.1.0网段在周一至周五的9:00—17:00才能使用代理服务器上网,其他时间不允许上网,并且禁止下载.mp3,.avi,.rmvb的视频文件。针对某些目标地址建立黑名单,如61.135.167.36,125.39.127.25
修改squid服务器的时间,客户端验证是否能上网。
客户端验证mp3视频文件能否下载。
(6)在squid服务器上安装Squid日志分析软件sarg,进行相关的配置,并在客户端访问日志分析的网站。
步骤:
1、按要求配置网络,内部主机需要配置默认网关,外部linux不需要配置默认网关。(如下图)
2、在squid服务器上安装squid,并做相关的配置,启动squid服务,查看端口。
(1)解包并编译安装squid
(2)安装完成后创建链接文件,创建用户和组。
(3)修改squid的主配置文件(/etc/squid.conf)
(4)启动服务并查看端口号(依次输入以下命令)
squid -k parse 检查配置文件语法是否正确
squid -z 初始化缓存目录
squid 启动squid服务
然后查看端口号,服务是否启动
3、搭建传统代理服务器,要求在内部linux服务器能够使用传统代理访问外部的web服务器。内部客户端最大允许下载的文件不能超过10MB,squid最大缓存的文件为4MB。内部客户端验证文件下载。
(1)修改主配置文件/etc/squid.conf ,添加配置项(内部客户端最大允许下载的文件不能超过10MB,squid最大缓存的文件为4MB)
(2)重新加载服务
squid -k reconfigure
(3)开启网站服务器的httpd服务
(4)修改内部主机浏览器的设置,能够使用传统代理访问外部的web服务器。(注:本实验关闭了squid服务器的防火墙,如开启了防火墙请添加规则 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT)
(5)在网站服务器上的httpd服务网页目录上新建一个文件(大于10 MB)
在内部主机测试
4、修改squid的主配置文件,搭建一台透明代理服务器,结合iptables的重定向策略,开启路由转发。验证内部客户端能否使用透明代理访问外部的web服务器。
(1)修改squid的主配置文件/etc/squid.conf ,使其能支持透明代理。
(2)重新加载服务
squid -k reconfigure
(3)设置iptables的重定向策略
(4)开启路由转发功能,(/etc/sysctl.conf)
(5)关闭内部主机IE浏览器的局域网设置,并测试。
5、修改squid的主配置文件,设置ACL访问控制,要求内部客户端192.168.1.0网段在周一至周五的9:00—17:00才能使用代理服务器上网,其他时间不允许上网,并且禁止下 载.mp3,.avi,.rmvb的视频文件。针对某些目标地址建立黑名单,如 61.135.167.36 125.39.127.25
修改squid服务器的时间,客户端验证是否能上网。
(1)修改squid主配置文件/etc/squid.conf
(2)建立相应的ip地址名单
mkdir /etc/squid
cd /etc/squid
vim ipblock.list
(3)重新加载服务
squid -k reconfigure
(4)在内部主机上验证(因为squid服务器的时间满足要求,所以能访问)
可以修改squid服务器的时间,再次测试(注:如果删除了浏览器的数据还是能访问,就杀死squid进程再打开。)
6、在squid服务器上安装Squid日志分析软件sarg,进行相关的配置,并在客户端访问日志分析的网站。
(1)在squid服务器上建立yum仓库,使用yum方式安装
执行命令yum -y install gd 进行安装
(2)安装sarg,解包后编译安装
(3)配置
cd /etc/sarg/
vim sarg.conf
(4)运行
并启用httpd服务
(5)在内部主机验证,在IE浏览器上输入http://192.168.1.1/sarg/
文章参考微信公众号:L宝宝聊IT
上一篇: php操作redis命令及代码实例大全
下一篇: 为何韩信能多次以弱胜强?他都有哪些奇策?