Squid透明和反向代理

来源:互联网 发布:体彩助赢软件cpzyrj 编辑:程序博客网 时间:2024/04/29 00:25
ACL访问控制
ACL(Access Control List, 访问控制列表)
可以从客户机的IP地址、请求访问的URL/域名/文件类型、访问时间、并发请求数等各方面进行控制
应用访问控制的方式
定义acl列表
    acl 列表名称  列表类型  列表内容
针对acl列表记性限制
    http_access allow或deny 列表名


最基本的acl列表控制示例
禁止任何客户机使用代理服务
acl all src 0.0.0.0/0.0.0.0
http_access deny all


常用的acl列表类型
src            源ip
dst            目的ip
port           端口
srcdomain      源域名      |
dstdomain      目的域名    |解析域名会浪费不少时间
time           时间
maxconn        最大连接数
url_regex      url正则过滤
urlpath_regex  urlpath正则过滤


ACK列表定义示例
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$


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


ACL规则匹配顺序
访问控制规则的匹配顺序
没有设置任何规则时
>将拒绝所有客户端的访问请求
有规则但找不到相匹配的项时
将采用与最后一条规则相反的权限,即如果最后一条规则
是allow,那么就拒绝客户端的请求,否则允许该请求


透明代理
vi /etc/squid/squid.conf
http_port 192.168.10.1:3128 transparent
visible_hostname 192.168.10.1
acl innet src 192.168.10.0/24
acl all src 0.0.0.0/0.0.0.0
replay_body_max_seze 10480000 allow all
http_access allow innet
http_access deny all
access_log /var/log/squid/access.log


squid -k reconfig


iptables -t nat -A PREROUTING -i eth0 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
iptables -t nat -L


#至于内部dns指向可以把squid服务器同时做成缓存dns服务器,
内部用户指向这台squid内部接口即可




反向代理
http_port 200.168.10.1:80 vhost
cache_peer 192.168.10.2 parent 80 0 orginserver weight=5 max-conn=30
cache_peer 192.168.10.3 parent 80 0 orginserver weight=5 max-conn=30
cache_peer 192.168.10.4 parent 80 0 orginserver weight=5 max-conn=30
cache_peer 192.168.10.5 parent 80 0 orginserver weight=1 max-conn=8


squid可以自动判别后端服务器哪个属于激活状态 ,可以看作是集群




vi vi /etc/squid/squid.conf
http_port 200.168.10.1:80 vhost
visible_hostname 200.168.10.1
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_peer 192.168.10.2 parent 80 0 originserver


cache_peer server地址 服务器类型 http端口 icp端口  [可选项]
                                          (squid可能有多个,共用缓存,表示级别)

squid -k reconfig


反向代理虚拟主机映射
http_port 200.168.10.1:80 vhost
visible_hostname 200.168.10.1
cache_peer 192.168.10.2 parent 80 0 originserver name=a
cache_peer 192.168.10.2 parent 80 0 originserver name=b
cache_peer_domain a www.lamp.com
cache_peer_domian b www.web.com
cache_peer_access a allow all
cache_peer_access b allow all






缓存查看
1.通过/var/log/httpd/access.log
2.通过/var/spool/squid 下的tree 00来查看文件数,然后如果有缓存,则可以通过
strings 000000x来查看
3.客户端通过firefox的firebug来查看请求和响应头信息,其中有缓存信息看,从中可以明显的看到
缓存的squid服务器
原创粉丝点击