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小时制来表示。[星期]:可以使用这些关键字M(Monday星期一)、T(Tuesday星期二)、W(Wednesday星期三)、H(Thursday星期四)、F(Friday星期五)、A(Saturday星期六)和S(Sunday星期天)[时间段]:可以表示为10:00-20:00。例如:
aclworktime time MTWHF 9:00-18:00周一到周五的9点到18点
二 .squid 透明代理:
只要添加以下即可:
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
在做访问控制即可。