squid代理

Squid  传统代理:

以下介绍它的第一个作用:正向代理

正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理

作用:可以共享上网,也可以缓解服务器的访问压力隐藏了客户端的信息

代理机上要为双网卡;eth0 (192.168.1.104)链接外网,eth1 (192.168.2.105)链接内网

安装squid

squid -z//初始化缓存空间

取得squid运行状态信息:squidclient -p 8080 mgr:info

取得squid内存使用情况:squidclient -p 80mgr:mem

取得squid的磁盘使用情况:squidclient -p 8080 mgr:diskd

vi squid.conf

其中允许大于拒绝

添加:

acl  sun (可以自己命名) src 192.168.2.0/24 表示允许这个网段走代理

http_access   sun  allow表示允许上面走代理的网端链接http

http_port  3128 代理端口

打开高速缓存:

cache_dir ufs /var/spool/squid 100 16 256 表示 缓存目录ufs/var/spool/squid)最大缓存为100 M 一级缓存目录为16个二级为256

####这里要加速,可以将缓存目录挂在内存上##

在客户端浏览器设置代理

http proxy ip (设置内网IP)端口为squid设置的端口3128

如果要拒绝代理端访问某个网站

先允许其代理访问这个网站

acl  sunbo   dst  www.qq.com(也可以是要访问的IP

然后再拒绝

http_access deny sunbo这里特别要注意位置,放在http_access allow之前

acl规则限制配置

# deny news #过滤所有url中含有news的网站

acl news  url_regex -i news  

#过滤URL中出现news关键字

http_accessdeny news

# deny video #过滤主流的视频网站

acl videodstdomain .youku.com .56.com .tudou.com .qiyi.com

http_accessdeny video

acl worktimetime MTWHF 9:00-12:00

http_accessdeny !worktime #9:00-12:00这段时间外不可以访问

time ACL允许你控制基于时间的访问,时间为每天中的具体时间,和每周中的每天。日期以单字母来表示,见如下表。时间以24小时制来表示。[星期]:可以使用这些关键字MMonday星期一)、TTuesday星期二)、WWednesday星期三)、HThursday星期四)、FFriday星期五)、ASaturday星期六)和SSunday期天)[时间段]:可以表示为10:00-20:00。例如:

aclworktime time MTWHF 9:00-18:00周一到周五的9点到18


二 .squid 透明代理:

透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。它的实现是客户端要的网关要设置成代理服务器的内网ip,还要注意dns的设置。

只要添加以下即可:

http_port 3128 transparent

cache_dir ufs /var/spool/squid 100 16 256

 设置squid.conf中透明代理的相关选项,如下所示:

/sbin/iptables -t nat -A POSTROUTING  -s 192.168.2.0/24 -j SNAT --to-source 192.168.1.104

#####也可以指定动态地址伪装,但是比较耗资源#######
iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24
(也可以不指定)-i eth0(不指定也可以) --dport 80 -j REDIRECT --to-ports 3128

在做访问控制即可。








你可能感兴趣的:(squid)