工作在应用层
主要提供缓存加速,应用层过滤控制的功能。
代理种类:1、传统代理 2、透明代理 3、反向代理
Squid代理/etc/squid/squid.conf 配置文件。
62 http_port 3128 默认监听的端口。若服务器有多个网络接口,但只希望在其中一个ip地址上提供服务,还可以同时指定ip地址, 例如: http_port 192.168.10.1:3128
Squid代理服务器使用内存资源比较多。
一、传统代理
客户端→squid代理→ Web端
客户端ip:192.168.233.128/24
squid代理服务器:192.168.233.130/24
Web端:192.168.233.129/24
首先1、squid代理服务器:192.168.10.1/24 配置
/etc/squid/squid.conf
http_access allow all //放在deny之前
http_port 3128 代理端口3128
visible_hostnamenginx 自己的主机名
在/etc/hosts 下写上自己的ip与主机名,否则日志中会报错。
/etc/init.d/squidstart 不要重启,否则时间是会很长。直接start
Squid -z
2、客户端:在火狐浏览器设置代理
填写服务器代理的ip地址。
3、测试访问web
4、验证代理服务器上的日志。
tail -f/var/log/squid/access.log
5、web服务端
6、开启缓存功能。
/etc/squid/squid.conf
Service squidrestart
二、透明代理
Squid服务器:
把这些写在前面。
[root@nginx ~]#/etc/init.d/squid start 不要restart,会很慢的。
squid –zX 重新初始话缓存,-X查看过程
iptables -t nat -APREROUTING -i eth0 -s 192.168.233.0/24 -p tcp --dport 80 -j REDIRECT --to-ports3128
iptables -t nat -APREROUTING -i eth0 -s 192.168.233.0/24 -p tcp --dport 443 -j REDIRECT--to-ports 3128
REDIRECT:重定向实现本机端口的重新定向,将内网访问过的都通过“ –to-ports 端口号” 的形式来指定映射的目标端口。
net.ipv4.ip_forward= 1 /etc/sysctl.conf 开启Ip转发。Sysctl -p
客户端:
把浏览器上的代理不要设置。
把网关设置成squid的Ip(是与squid同一网络中的)
设置好以后,重新启动服务即可。
/etc/init.d/networkrestart
U:up状态 G:gateway
客户端打开浏览器进行访问
最后在代理服务器上打开日志并检查。
同样,web上也有了访问日志了。但在web上显示的是squid的访问地址 192.168.0.138
在squid中可以进行限制,可以针对源地址与目标地址,访问的url路径,访问的时间等各种条件进行过滤。
源地址与目标地址的网段或是IP范围,主机名等。
squid -k parse 测试是否正确。
squid -k check
dstdomain:目标域,匹配域内所有站点
port:目标端口
url_regex -i^rtsp:// ^emule:// :目标资源的url地址,-i忽略大小写。
urlpath_regex -i\.mp3$ \.mp4$ \.rmvb$:以.rpm3,.mp4,等结尾的url
time:定义的时间,例如:MTWHF 08:30-17:30 周一至周五08:30-17:30
整个配置文件里是从上到下来读的,越写在前面的,优先级越高,权限也越大。
还可以建立对目标地址的名单
定义类型与调用文件中的列表内容。
acl ipaddr dst"/etc/squid/all.list"
acl yu-mingdstdomain "/etc/squid/deny.list"
设置acl访问权限
http_access allowipaddr
http_access denyyu-ming
每一条规则中,可以包含多个acl列表名,各个列表之间以空格分隔,为“与”的关系,表示必须满足所有acl列表对应的条件才会进行限制。
需要使用取反条件时,可以在acl列表前添加“!”符号。
http_access denymusic clients //禁止客户端下载mp3,mp4等文件。
http_access denyyu-ming clients //禁止客户端访问名单中的域名。
Squid:
1、没有任何规则时,squid服务将拒绝客户端请求。
2、有规则但找不到相匹配的项时,squid将采用与最后一条规则相反的权限。例如:最后一条规则是allow,就拒绝客户端的请求,否则允许该请求。
通常情况下,把最常用的控制规则放在阳前面,以减少squid的负载。在访问控制的总体策略上,建议采用“先拒绝后允许”或“先允许后拒绝”的方式,最后一条规则设为默认策略,设为
“http_access allow all”或“http_access deny all”。
本文出自 “silence” 博客,请务必保留此出处http://silencezone.blog.51cto.com/3613477/1940049
原文地址:http://silencezone.blog.51cto.com/3613477/1940049