普通代理服务器的配置:
# http_port 3128 (或者下面一种写法)
# http_port 192.168.50.38:3128
cache_mem 64 MB
设置PROXY SERVER可使用多少内存作为高速缓存,一般要设置为物理内存的1/3
reply_body_max_size 10 MB allow all
禁止下载超过10M的文件
maximum_object_size 4096 KB
指定多大的文件可以被保存到磁盘中
access_log /var/log/squid/access.log squid
visible_hostname proxy.benet.com
cache_dir ufs /var/spool/squid 100 16 256
设置高速缓存目录和高速缓存可以使用的硬盘空间,100表示最大可使用100MB,16表示第一层子目录最多可以有16个,256表示每个第一层子目录下最多可以有256子目录
http_access allow all
透明代理:适用于企业的网关主机(共享接入Internet)中客户机不需要指定代理服务器地址、端口等信息需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理
配置透明代理
前提:
客户机的Web访问数据要能经过防火墙,代理服务构建在网关(防火墙)主机中
配置要求:
代理服务程序能够支持透明代理,设置防火墙规则,将客户机的Web访问数据自动重定向给代理服务程序处理
ACL(Access Control List,访问控制列表)
可以从客户机的IP地址、请求访问的URL/域名/文件类型、访问时间、并发请求数等各方面进行控制。
配置文件:
http_port 3128 transparent
应用访问控制的方式
定义acl列表
acl 列表名称列表类型列表内容…
针对acl列表进行限制
http_access allow或deny 列表名……
acl all src 0.0.0.0/0.0.0.0
http_access deny all
常用的acl列表类型
src
dst
port
srcdomain
dstdomain
time
maxconn
url_regex
urlpath_regex
ACL列表定义示例
Acl LAN1 src 192.168.1.0/24
acl PC1 src 192.168.1.66/32
acl Blk_Domain dstdomain .qq.com .kaixin001.com
acl Work_Hours time MTWHF 08:30-17:30
acl Max20_Conn maxconn 20
acl Blk_URL url_regex -i ^rtsp:// ^mms://
acl Blk_Words urlpath_regex -i sex adult
acl RealFile urlpath_regex -i \.rmvb$ \.rm$
对ACL列表进行访问控制
http_access deny LAN1 Blk_URL
http_access deny LAN1 Blk_Words
http_access deny PC1 RealFile
http_access deny PC1 Max20_Conn
http_access allow LAN1 Work_Hours
配置反向代理
192.168.7.2(公网客户端)
192.168.7.1(公网接口)(squid代理开启内核路由转发功能)192.168.6.1(内网接口)192.168.6.2(内网客户端网关指向192.168.6.1)
在内网的web服务上做基于域名的虚拟主机模拟多台WEB服务器
Squid代理服务器的配置
cache_peer Web服务器地址服务器类型 http端口 icp端口 [可选项]
cache_peer 指定真正WEB服务器的位置
parent 服务器类型对应到目标主机的缓存级别,上游Web主机一般使用“parent”(父服务
器)
icp端口用于连接相邻的ICP(Internet Cache Protocol)缓存服务器(通常为另一台Squid主机),如果没有,则使用0;
originserver 表示该服务器作为提供Web服务的原始主机,
weight=n”指定服务器的优先权重,n为整数,数字越大优先级越高(缺省为1);
max-conn=n”指定反向代理主机到该web服务器的最大连接数。
1、安装好squid后配置文件在/usr/local/squid/etc目录中,删除原有的squid.conf配置文件,新建squid.conf文件,只输入以下内容:http_port 80 transparent
http_access allow all
2、注意,以上是squid2.6及以后版本的配置,如果是2.6以前版本的squid,配置如下:
http_port 80
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
3、/usr/local/squid/sbin目录下的squid为运行文件。
第一次运行时,先运行squid -z创建缓存文件夹。缓存文件夹在/usr/local/squid/var下创建,因此创建缓存前还需运行chmod 777 /usr/local/squid/var给该文件夹权限。
再运行squid -d 1开启squid即可。
如果要关闭squid,运行squid -k shutdown则是安全关闭。
注意,如果没有将新装的squid配置成环境变量的话,尽量在sbin目录下运行./squid,以免运行了服务器上已有的旧squid。
4、设置一个DNS服务器,将所有域名解析指向到需要被代理的服务器的IP,例如使用Bind,WinMyDns软件。将squid所在服务器的DNS设置成该DNS服务器。
5、将被代理的服务器所有域名解析到squid所在服务器,这时该服务器即可作为中转。
squid的使用是最简单的。。。它有正向代理和反向代理,正向代理又有标准正向代理、ACL访问控制、透明正向代理。
举个标准正向代理的配置使用如下:
16.3.1 标准正向代理
Squid服务程序软件包在正确安装并启动后默认就已经可以为用户提供标准正向代理模式服务了,而不需要单独再去修改配置文件或者其他 *** 作,咱们可以立即在Windows7系统的客户端主机上面打开任意一款浏览器,然后点击Internet选项标签,如图16-4所示:
[root@linuxprobe ~]# systemctl restart squid
[root@linuxprobe ~]# systemctl enable squid
ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'
用户要想使用Squid服务程序提供的标准正向代理模式服务就必须在浏览器中填写服务器的IP地址以及端口号信息,因此咱们还需要依次点击连接标签后点击局域网设置选项,如图16-5与图16-6所示填写服务器信息后保存退出配置向导。
用户只需要在浏览器中简单的填写配置信息就可以开始享用Squid服务程序提供的代理服务了,此时作为一个网卡为仅主机模式(Hostonly)的虚拟机,开始也奇迹般的能够上网浏览了,这一切都是托代理服务器转发的功劳哦
如此公开而没有密码验证的代理服务终归觉得不放心,万一有其他人也来“蹭网”咱们的代理服务怎么办呢?Squid服务程序默认的会占用3128、3401与4827等端口号,咱们可以将默认占用的端口号修改成其他值,这样应该能起到一定的保护作用吧~同学们都知道在Linux系统配置服务程序就是在修改该服务的配置文件,因此直接在/etc目录中找到和squid服务程序同名目录中的配置文件,把其中http_port参数后面原有3128修改为10000,这样即是将Squid服务程序的代理服务端口修改成了新值,当然最后不要忘记再重启下服务程序哦~:
[root@linuxprobe ~]# vim /etc/squid/squid.conf
………………省略部分输出信息………………
45 #
46 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
47 #
48
49 # Example rule allowing access from your local networks.
50 # Adapt localnet in the ACL section to list your (internal) IP networks
51 # from where browsing should be allowed
52 http_access allow localnet
53 http_access allow localhost
54
55 # And finally deny all other access to this proxy
56 http_access deny all
57
58 # Squid normally listens to port 3128
59 http_port 10000
60
http_port 10000
………………省略部分输出信息………………
[root@linuxprobe ~]# systemctl restart squid
[root@linuxprobe ~]# systemctl enable squid
ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'
同学们有没有突然觉得这一幕似曾相识?在前面的第十章10.5.3小节咱们学习过基于端口号来部署httpd服务程序的虚拟主机功能,当时在编辑完配置文件后重启服务程序时被直接提示报错了,虽然现在重启服务程序并没有直接报错,但其实客户并不能使用代理服务呢,SElinux安全子系统认为Squid服务程序使用3128端口号是理所应当的,默认策略规则中也是允许的,但现在却在尝试使用新的10000端口号,这是原本并不属于Squid服务程序应该使用的系统资源,因此咱们需要手动把新的端口号添加到squid服务程序在SElinux域的允许列表中即可:
[root@linuxprobe ~]# semanage port -l | grep -w -i squid_port_t
squid_port_t tcp 3128, 3401, 4827
squid_port_t udp 3401, 4827
[root@linuxprobe ~]# semanage port -a -t squid_port_t -p tcp 10000
[root@linuxprobe ~]# semanage port -l | grep -w -i squid_port_t
squid_port_t tcp 10000, 3128, 3401, 4827
squid_port_t udp 3401, 4827
不过我建议你查看下这篇文档http://www.linuxprobe.com/chapter-16.html#1631,很详细的讲了所有squid的使用配置。肯定有你要的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)