第9章 SQUID代理服务器
教学内容:
■ 代理服务器概述
■ Squid安装和配置
■ Squid配置案例
教学目标:
■ 了解代理服务器工作原理
■ 理解Squid服务器配置选项
■ 掌握Squid服务器的安装和配置
教学重点:
■ Squid的安装和配置
■ Squid配置选项
教学难点:
■ 透明代理
一. 代理服器概述
1. 什么是代理服务器
代理服务器(Proxy Server)是指代理服务的双宿主主机,是个人网络和Internet服务商之间的中间代理机构,它负责转发合法的网络信息,对转发进行控制和登记。代理服务器作为连接数胎动的正确方法Internet(广域网)与Intranet(局域网)的桥梁
2. 代理服务器的功能
● 充当局域网与外部网络的连接出口
● 作为防火墙
● 网址过滤和访问权限限制
● 提高访问速度
3. 代理服务器的工作过程
(1) 客户机发送访问请求给代理服务器
(2) 代理服务器联系客户机请求的服务器,缓存客户访问内容
(3) 客户机访问代理服务器的缓存
4. 代理服务器的优缺点
(1) 优点
● 保护内部主机免受外部主机的攻击
● 提供高速的缓存功能
● 在应用网关上可以强制执行用户的身份认证
● 内容过滤和简化包过滤
● 具有完整的日志
(2) 缺点
● 支持的协议有限
● 不能防止数据驱动侵袭
● 建立了一个网络的服务瓶颈
5. Squid简介
● Squid是一个高性能的代理缓存服务器,它支持FTP、GOPHER和HTTP协议
● Squid支持SSL,支持访问控制
● Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户请求
● Squid代理服务器可以分为:普通代理服务器、透明代理服务器、反向代理服务器
二. Squid的安装和配置
1. 安装Squid手工布偶
(1)RPM包方式
#rpm -ivh squid-2.5.STABLE1-2.i386.rpm(1#CD)
(2)编译方式
#tar -xzvf squid-2.5.
#cd squid-2.5.STABLE
#./configure --prefix=/var/squid
--sysconfdir=/etc
--enable-arp-acl
--enable-linux-netfilter
--enable-pthreads
--enable-err-language="Simplify_Chine"
--enable-storeio=ufs,null
--enable-default-err-language="Simplify_Chine"
--enable-auth="basic"
--enable-baisc-auth-helpers="NCSA"
--enable-underscore
#make
#make install
相关文件:
/etc/f squid的主配置文件
/etc/squid/errors 报告错误使用的语言
/etc/squid/ Squid-MIB定义文件
/etc/f 定义MIME-TYPE
/etc/f MSNT认证的配置文件
/usr/sbin/squid Squid主程序
/usr/sbin/squidclient 统计显示摘要表的客户程序
/usr/lib/squid/*_auth Squid的各种认证库文件
2. Squid的配置
(1) Network Options(网络设置选项)
● http_port 端口号
监听客户请求的端口,默认3128
● icp_port 端口号
和其它squid发送和接收ICP查询时监听的端口,0表示禁止
● mcast_groups IP地址
指定一个多播组,可以接收多播形式的ICP查询,例:mcast_groups 239.128.16 224.0.1.20
● htcp_prot 端口号
同其它相邻的缓存服务器之间发送和接收HTCP查询时监听的端口,0:禁用
● tcp_outgoing_address IP地址
用于采用HTCP和CARP方式同其它服务器通信,默认255.255.255.255
● udp_incoming_address IP地址
接收其它缓存服务器的ICP数据报时使用的地址,默认0.0.0.0
● udp_outgoing_address IP地址
发送ICP数据报到其它缓存服务器时用的地址,默认255.255.255.0
(2) 多缓存服务器设置选项
健康保健● cache_peer hostname type http_port icp_port options
指定网络中其它的缓存服务器,默认为none。
Hostname:另一台缓存服务器的主机名
Type: parent/sibling /multicast(父/同级/多播)
http_port:目的服务器的http端口
icp_port:目的服务器的ICP端口
options:
– proxy-only:仅去获取数据,但不在本地缓存
– no-query: 不发送ICP查询给此主机
– default:默认的父服务器
– login urname:passwd:连接对方通过服务器用户名和密码
– no-netdb-exchange 代理服务器之间彼此不交换信息
– round-robin 当有多个代理服务器可用时,本地代理服务器采用轮转算法
● cache_peer_domain 服务器主机名 域名
用来限定查询相邻的缓存服务器的域
● dead_peer_timeout N conds
设置Squid在确定父(同)级缓存服务器不可用之前的等待时间
(3) 缓存大小设置选项
● cache_mem N(KB/MB/bytes,默认为bytes)
缓存内存大小
● cache_swap_low(percent,0-100)
缓存对象交换的最低点
● cache_swap_high(percent,0-100)
缓存对象交换的最高点
● maximum_object_size
缓存对象的最大大小
● minimum_object_size
雨用英语怎么说
缓存对象的最小大小
● maximum_object_size_in_memory
在内存中缓存的最大的对象大小
● ipcache_size 4096:
ip对应cache的大小为4096fqdncache_size 4096:
● fqdncache_size 4096
域名全称cache的大小为4096
(4) 日志文件路径及CACHE的目录设置选项
● memory_replacement_policy heap GDSF/heap LRU/LRU/heap LFUDA
内存替换策略
heap GDSF:双重大小贪婪法
LRU:默认,最近最少使用算法
heap LFUDA:最近最不常用被老化法
heap LRU:堆LRU
● cache_replacement_policy heap GDSF/heap LRU/LRU/heap LFUDA
缓存替换策略
● cache_dir 类型 路径 大小(M) 一级子目录 二级子目录
系统使用的存储类型
类型: UFS|AUFS,默认使用UFS,AUFS用于非同步的I/O设备
实例:cache_dir ufs /usr/local/squid/cache 25000 16 256
● cache_access_log /var/log/squid/access.log
access.log日志文件路径
● cache_log /var/log/squid/cache.log
缓存日志文件的目录和文件
● emulate_httpd_log on/off
激活仿真HTTP格式的日志
● mime_table /etc/f
mime文件路径
● pid_filename /var/ran/squid.pid
指定pid文件和路径
经典名曲● ftp_ur 用户名@域名
指定匿名FTP密码
● ftp_list_width 数字
指定FTP列表的文件名长度
● ftp_passive on/off
以被动模式(on)/主动模式(off)
● cache_dns_program /usr/lib/squid/
指定DNS查询程序路径
编译时指定:--disable-internal-dns option
● dns_children 数字
指定本地默认启动DNS查询进程数
● dns_namervers IP地址
DNS服务器地址
● diskd_program /usr/lib/squid/diskd
磁盘管理程序
● unlinkd_program usr/lib/squid/unlinkd
删除文件程序
● pinger_program /usr/lib/squid/
ping程序
编译时指定:--enable-icmp option
● redirect_program none
URL重点向程序
● redirect_children 数字
重点向进程数
● redirect_rewrites_host_heade on/off
重点向时重写包头(用加速器时勿用)
● auth_param 类型 program/children/credentialsttl/realm 值
用户认证配置选项
(5) 调整Cache的选项
● request_header_max_size 数字(KB)
最大http请求头
● request_body_max_size 过故人庄数字(KB纽扣菊)
最大http请求数据内容
● reply_body_max_size 数字(KB)
最大返回数据,可限制用户下载的数据大小
● reference_age 数字
LRU算法中指定LRU时间
● quick_abort_min 数字(KB)
断点续传最小值
● quick_abort_max 数字(KB)
断点续传最大值
● quick_abort_pct 数字(percent)
超过值认为续传成功
● negative_ttl 小说乡村春色数字 minutes/hours/conds
否定回答TTL
● positive_dns_ttl 数字 minutes/hours/conds
DNS肯定回答TTL
● range_offt_limit 数字 KB/MB/Bytes
请求SQUID预取数据的大小
(6) 定义超时的选项
● connect_timeout:SQUID等待客户请求的服务器回应的时间长度
● peer_connect_timeout:一个对等的缓存服务器的TCP连接超时时间
● client_lifetime:客户端同代理服务器TCP连接的最大时间长度