欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Squid代理服务器

程序员文章站 2023-02-02 18:12:12
1、squid代理: 缓存网页,减少重复请求,加快访问速度,隐藏真实ip 代理的分类: 传统代理:使用Internet和内网,客户端需明确指定代理服务器。 透明代理:使用于内网访问外网,指定代理服务器,但必须指定网关,网管配置iptables策略,将端口重定向到代理服务器端口。 2、squid和na ......

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代理服务器应用示例

实验拓扑图:

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不需要配置默认网关。(如下图)

Squid代理服务器

Squid代理服务器

Squid代理服务器

2、在squid服务器上安装squid,并做相关的配置,启动squid服务,查看端口。

(1)解包并编译安装squid

Squid代理服务器

(2)安装完成后创建链接文件,创建用户和组。

Squid代理服务器

(3)修改squid的主配置文件(/etc/squid.conf)

Squid代理服务器

(4)启动服务并查看端口号(依次输入以下命令)

squid  -k  parse         检查配置文件语法是否正确

squid  -z                初始化缓存目录

squid                    启动squid服务

然后查看端口号,服务是否启动

Squid代理服务器

3、搭建传统代理服务器,要求在内部linux服务器能够使用传统代理访问外部的web服务器。内部客户端最大允许下载的文件不能超过10MB,squid最大缓存的文件为4MB。内部客户端验证文件下载。

(1)修改主配置文件/etc/squid.conf ,添加配置项(内部客户端最大允许下载的文件不能超过10MB,squid最大缓存的文件为4MB)

Squid代理服务器

(2)重新加载服务

squid  -k  reconfigure

(3)开启网站服务器的httpd服务

Squid代理服务器

(4)修改内部主机浏览器的设置,能够使用传统代理访问外部的web服务器。(注:本实验关闭了squid服务器的防火墙,如开启了防火墙请添加规则 iptables  -I  INPUT  -p  tcp  --dport  3128  -j  ACCEPT

Squid代理服务器

Squid代理服务器

Squid代理服务器

Squid代理服务器

(5)在网站服务器上的httpd服务网页目录上新建一个文件(大于10 MB)

Squid代理服务器

Squid代理服务器

在内部主机测试

Squid代理服务器

4、修改squid的主配置文件,搭建一台透明代理服务器,结合iptables的重定向策略,开启路由转发。验证内部客户端能否使用透明代理访问外部的web服务器。

(1)修改squid的主配置文件/etc/squid.conf ,使其能支持透明代理。

Squid代理服务器

(2)重新加载服务

squid  -k  reconfigure

(3)设置iptables的重定向策略

Squid代理服务器

(4)开启路由转发功能,(/etc/sysctl.conf)

Squid代理服务器

Squid代理服务器

(5)关闭内部主机IE浏览器的局域网设置,并测试。

Squid代理服务器

Squid代理服务器

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 

Squid代理服务器

(2)建立相应的ip地址名单

mkdir /etc/squid

cd /etc/squid

vim ipblock.list

Squid代理服务器

(3)重新加载服务

squid -k  reconfigure

(4)在内部主机上验证(因为squid服务器的时间满足要求,所以能访问)

Squid代理服务器

可以修改squid服务器的时间,再次测试(注:如果删除了浏览器的数据还是能访问,就杀死squid进程再打开。)

Squid代理服务器

Squid代理服务器

6、在squid服务器上安装Squid日志分析软件sarg,进行相关的配置,并在客户端访问日志分析的网站。

(1)在squid服务器上建立yum仓库,使用yum方式安装

Squid代理服务器

Squid代理服务器

执行命令yum  -y install  gd  进行安装

(2)安装sarg,解包后编译安装

Squid代理服务器

(3)配置

cd  /etc/sarg/

vim sarg.conf

Squid代理服务器

Squid代理服务器

Squid代理服务器

(4)运行

Squid代理服务器

并启用httpd服务

Squid代理服务器

(5)在内部主机验证,在IE浏览器上输入http://192.168.1.1/sarg/

Squid代理服务器

Squid代理服务器

文章参考微信公众号:L宝宝聊IT