代理服务器的作用与工作流程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WEB 自缓冲加速
数据走向: 访问者=>192.168.1.1:80=>127.0.0.1:80 http_port 80 vport vhost
httpd_accel_host 127.0.0.1 httpd_accel_port 80 测试
把http服务器给停了,通过SQUID缓存可以看到页面
http_access deny baduser http_access deny normal media_url http_access deny nomal !netime http_access allow advance http_access allow normal http_access allow all
配置代理监听80
httpd_port 80 vport vhost
配置WEB监听
httpd_accel_host ip WEB的IP httpd_accel_port 80 加速服务的端口,如果后台
apache为80端口,这里就为80端口
cache_peer webip parent 80Baidu Nhomakorabea0 no-query originserver
auth_param basic children 5 指定认证程序的进程数
auth_param basic realm My Proxy Caching Domain 浏览器显示输入用户/密码对话框时的领域内容
auth_param basic credentialsttl 2 hours 基本的认证有效时间
代理服务器
本章目标
代理服务器的作用 代理服务器的工作流程 代理服务器的类型 配置代理服务器
概述
代理服务器可以代表其它计算机传送数据 包或信息.
作用
共享网络,不受公有IP的限制 加快访速度 防止内部主机受到攻击 限制用户访问,完善网络管理
ACL 访问控制列表 ARL 访问权限列表
代理原理 代理配置
总结
外部认证程序 NCSA 2.5版本开始,NCSA认证包含在了basic中, 而非以前单独的认证模块 PAM LDAP SMB SASL
配置验证squid.conf
auth_param basic program /usr/lib/squid/ncsa_auth /var/squid/etc/password 该选项指出了认证方式(basic)、认证程序(ncsa_auth)和 密码文件
ACL
语法:
acl aclname acltype string
acltype
src/dst srcdomain/dstdomain time url_regex urlpath_regex port proto proxy_auth maxconn
ACL规则
acltype可以是任一个在ACL中定义的名称; 任何两个ACL条目不能用相同的名字; 每个ACL由列表值组成,当进行匹配检测的时候,多
方案一
192.168.0.1-10为高级用户,上网没有限制 192.168.0.11-192.168.0.200为普通用户 普通用户要求上班时间9:00-18:00可以上
网,其余时间不能上网,普通用户不能下 载exe mp3 wma rm 等结尾的文件。 普通用户要求通过身份验证,高级不用验 证。
----------------------------------#cache_peer_domain cache-host domain [domain ...] cache_peer_domain web1 web1.up.com cache_peer_domain web2 web2.up.com cache_peer_domain web3 web3.up.com ------------------------cache_peer_access web1 allow ok cache_peer_access web2 allow ok cache_peer_access web3 allow ok # cache_peer_access cache-host allow|deny [!]aclname ...
高级控制
acl advance arp 00:01:02:1f:2c:3e acl sina dstdomain ok.sina.com.cn acl qq dstdomain .tencent.com.cn acl conn5 maxconn 5
验证
控制所有登录并检查访问用户的合法性.让合法用户以 合法的权限访问网络资源
acl normal proxy_auth REQUIRED http_access normal auth_user 普通用户需要通过认证才能访问Internet
建立帐号文件
htpasswd -C /var/lib/squid/ncsa_auth pg 测试验证
squid restart 客户端上配置浏览器 访问任意网站,弹出验证框
什么时候使用代理
SQUID
Squid是Linux下一个缓存Internet数据的代理服务器 软件,其接收用户的下载申请,并自动处理所下载的 数据。
Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS协议, 暂不能代理POP3、NNTP等协议。
Squid可以工作在很多操作系统中,如AIX、Unix、 FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、 SCO、Solaris、OS/2等。
访问列表可以由多条规则组成;
如果没有任何规则与访问请求匹配,默认动作将与列表 中最后一条规则对应;
一个访问条目中的所有元素将用逻辑与运算连接,如下 所示: http_access Action 声明1 AND 声明2 AND 声明 OR http_access Action 声明3
多个http_access声明间用或运算连接,但每个访问条目的 元素间用与运算连接;
Squid能够缓存任何数据吗?不是的。象缓存信用卡 帐号、可以远方执行的scripts、经常变换的主页等 是不合适的也是不安全的。
工作流程
配置SQUID
安装包 /etc/squid/squid.conf
squid 配置文件
http_port 192.168.0.11:3128 cache_mem 300MB cache_dir ufs /var/spool/squid 1000 16 255 cache_effective_user squid cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log visible_hostname cache_mgr
个值由逻辑或运算连接,换句话说,任一ACL元素的 值被匹配,则这个ACL元素即被匹配; 并不是所有的ACL元素都能使用访问列表中的全部类 型; 不同的ACL元素写在不同行中,Squid将这些元素组合 在一个列表中。
ARL
http_access 语法
http_access allow/deny [!]aclname
cache_peer 127.0.0.1 parent 80 0 no-query originserver
一台代理&多WEB
# cache_peer hostname type http-port icp-port [options]
cache_peer 192.168.1.2 parent 81 0 originserver weight=1 name=web1 cache_peer 192.168.1.3 parent 82 0 originserver weight=1 name=web2 cache_peer 192.168.1.4 parent 83 0 originserver weight=1 name=web3
表中的规则总是遵循由上而下的顺序。
禁止缓存
acl QUERY urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgi
acl denyssl urlpath_regex -i ^https:\\ cache deny QUERY cache deny denyssl
客户端要正确配置DNS,网关
SQUID反向代理
Squid反向代理单个后台WEB服务器
WEB服务器和反向代理服务器是两台单独的机 器(一般的反向代理应该有两块网卡分别连接 了内外部网络)
如果WEB服务器和反向代理服务器是同一台机 器
Squid反向代理多个后台WEB服务器
一台WEB&一台代理
ARL规则
根据访问控制列表允许或禁止某一类用户 访问。如果某个访问没有相符合的项目, 则默认为应用最后一条项目的“非”。比 如最后一条为允许,则默认就是禁止。通 常应该把最后的条目设为“deny all”或 “allow all”来避免安全性隐患。
ARL规则
这些规则按照它们的排列顺序进行匹配检测,一旦检测 到匹配的规则,匹配检测就立即结束;
透明代理
squid主配文件:/etc/squid/squid.conf
http_port 3128 transparent //启用透明模式
启用ipforward vim /etc/sysctl.conf
配置防火墙 iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp - -dport=80 -j REDIECT - -to-ports 3128 service iptables save
acl advance 192.168.0.2-192.168.0.10/32 acl normal src 192.168.0.11-192.168.0.200/32 acl baduser src 192.168.0.100/32 acl media_url urlpath_regex -i \.mp3$ \.rm$ \.wma$ \.exe$ acl nettime time MTWHF 9:00-12:00 13:30-18:00 acl all src 0.0.0.0/0