Squid代理服务器

一、squid服务理论:

缓存代理加速web站点的访问速度

代理的好处:提高web访问速度、隐藏客户机的真实IP地址

代理的基本类型:

传统代理:可以为互联网也可以为局域网主机提供代理

透明代理:只为局域网提供代理,需配置在网关主机上

二、安装及运行控制:

Squid基于硬盘存放缓存数据,工作在应用层,提供HTTPFTP缓存

编译安装squid

./configure --prefix=/usr/local/squid --sysconfdir=/etc  --enable-arp-acl  --enable-linux-netfilter  --enable-linux-tproxy  --enable-async-io=100  --enable-err-language=”Simplify_Chinese”  --enable-underscore  --enable-poll --enable-gnuregex  &&  make  && make  install

--prefix=/usr/local/squid                 安装目录

--sysconfdir=/etc                       单独将配置文件修改到其他目录

--enable-arp-acl                        可以在规则中设置直接通过客户端MAC       

                                     进行管理,防止客户端使用IP欺骗。

--enable-linux-netfilter                               使用内核过滤

--ebable-linux-tproxy                                   支持透明模式

--enable-async-io=                                    异步I/O,提升存储性能

--enable-err-language=”Simplify_Chinese”   错误信息的显示语言

--enable-underscore                     允许URL中有下划线

--enable-poll                           使用poll()模式,提升性能

--enable-gnureges                       使用GNU正则表达式

创建链接文件、创建用户和组

ln    -s    /usr/local/squid/sbin/*    /usr/local/sbin

useradd   -M  -s  /sbin/nologin    squid

chown   -R  squid:squid /usr/local/squid/var

传统代理

修改squid的配置文件(/etc/squid.conf

http_port   3128    代理服务默认端口  TCP 3128

去掉cache_dir前的#号(磁盘占用大小、一级子目录数、二级子目录数)

手动添加:

cache_effective_user   squid     指定squid的程序用户

cache_effective_group  squid     指定账号的基本组

visible_hostname  主机名

Squid的运行控制

squid   -k   parse    配置文件语法检查

squid                 启动squid服务

squid  -k kill  停止服务    squid  启动服务)   重启服务

注:防火墙

iptables   -I   INPUT  -p   tcp   --dport   3128   -j  ACCEPT

service   iptables  save

透明代理 

配置squid支持透明代理:

vi   /etc/squid.conf

http_port 192.168.1.1:3128  transparent

squid  -k kill  停止服务    squid  启动服务)   重启服务

设置iptables的重定向策略:

iptables  -t  nat -I   PREROUTING  -i eth0  -s  192.168.1.0/24  -p tcp --dport  80 -j   REDIRECT   --to 3128

iptables  -t  nat -I   PREROUTING  -i eth0  -s  192.168.1.0/24  -p tcp --dport  443 -j   REDIRECT   --to 3128

service  iptables   save

ACL访问控制

格式: acl 列表名称列表类型列表内容

  常用的访问控制列表类型:

src                       IP地址、网段、IP地址范围

dst                      目标IP地址、网段、主机名

port                    目标端口

dstdomain        目标域,匹配域内所有站点

time          MTWHTFAS   (星期日-------星期六)

maxconn           每个客户机的并发连接数

url_regex          目标资源的URL地址,-i表示忽略大小写

urlpath_regex  目标资源的整个URL路径,-i表示忽略大小写

 



执行访问控制时,squid将按照各条规则的顺序依次进行检查,如果找到一条相匹配的规则就不再向后搜索

1、没有设置任何规则时:squid将拒绝客户端的请求

2、有规则但找不到相匹配的项:squid将采用与最后一条规则相反的权限,即

   如果最后一条规则是allow,就拒绝客户端的请求,否则允许该请求