squid透明代理 DNS劫持示例
squid代理与缓存实践(一)

squid代理与缓存实践(⼀)第1章 Squid介绍1.1 缓存服务器介绍缓存服务器(英⽂意思cache server),即⽤来存储(介质为内存及硬盘)⽤户访问的⽹页,图⽚,⽂件等等信息的专⽤服务器。
这种服务器不仅可以使⽤户可以最快的得到他们想要的信息,⽽且可以⼤⼤减少服务端⽹络传输的数据量。
缓存服务器往往也是代理服务器。
对于⽹站的⽤户来说,缓存服务器和代理是不可见的,即在⽤户看来所有的⽹站信息都来⾃其正在访问的⽹站,⽽实际上可能是缓存服务器在提供访问数据。
⽬前国内互联⽹公司常⽤的缓存服务器有:squid,varnish(⼏乎绝迹),nginx,ats。
squid作为缓存和代理服务器的历史⼗分的悠久,本章我们主要讲述squid服务,尽管不少⼈谈及其他软件的缓存机制⽐squid如何优异,但我们还是要⾸先掌握这个⽼牌的开源cache软件,因为它经历的历程实在是太悠久了,等⼤家掌握了squid服务后,其他的软件就不在话下了。
如果再有时间,可以测试下varnish,nginx,squid三者之间的性能对⽐,⽽不是轻易的听信于他⼈的说法,别⼈说好,只能代表他个⼈的观点,我们⾃⼰⽤事实证明,才是学习和⼯作的真谛。
国内基本上90%以上的商业CDN公司,象国内的CDN基本都在⽤squid,象蓝汛,⽹宿,帝联,sina在⽤ats。
Squid官⽅:1.2 Web缓存相关概念1.2.1 cache命中cache命中是在cache server 每次从它的缓存⾥满⾜客户端HTTP请求时发⽣。
cache命中率,是所有客户端HTTP请求中命中的⽐例。
Web缓存典型的cache命中率在30%到60%之间。
另⼀个相似的度量单位叫做字节命中率,描绘了cache提供服务的数据容量(字节数),如何提升cache命中率?1)apache nginx 可以expries,cache-control缓存头2)动静分离,静态化,对静态⾛CDN3)mysql cache让缓存靠前4)4XX,5XX之类错误页⾯,死链不缓存。
RHEL5Squid透明代理服务器配置过程解析-电脑资料

RHEL5Squid透明代理服务器配置过程解析-电脑资料一、环境及操作平台xp――(eth1) AS5 (eth0)――Internet192.168.1.0/24 10.0.0.0/8Linux AS5 + squid-2.6(RPM)二、安装安装AS5自带的squid-2.6 rpm包三、配置route add default gw 10.100.100.254 //10.100.100.254 连接Internet Router 地址,添加默认网关,。
1、squid主配文件:/etc/squid/squid.confa、http_port 3128 transparent //启用透明模式b、cache_dir ufs /var/spool/squid 1000 16 256c、cache_mem 96Md、visible_hostname localhoste、http_access allow all以上为基本配置2、iptales 配置#!/bin/bash#ip.shecho '1' >/proc/sys/net/ipv4/ip_forward //启用ip forward IPT=/sbin/iptables################################Clear ip rules#####################$IPT -F -t filter$IPT -X -t filter$IPT -Z -t filter$IPT -F -t nat$IPT -Z -t nat$IPT -X -t nat################################Defaultpolicy#####################$IPT -P FORWARD DROP$IPT -P INPUT DROP$IPT -P OUTPUT DROP################################Userrules##########################$IPT -t filter -A INPUT -s 127.0.0.1 -j ACCEPT$IPT -t filter -A INPUT -s 10.10.10.254 -p tcp ――dport 22 -j ACCEPT$IPT -t filter -A OUTPUT -d 10.10.10.254 -p tcp ――sport 22 -j ACCEPT$IPT -t filter -A INPUT -s 192.168.1.0/24 -p icmp ――icmp-type 8 -j ACCEPT$IPT -t filter -A OUTPUT -d 192.168.1.0/24 -p icmp ――icmp-type 0 -j ACCEPT$IPT -t filter -A INPUT -s 192.168.1.0/24 -j ACCEPT$IPT -t filter -A INPUT -i eth0 -j ACCEPT$IPT -t filter -A OUTPUT -d 192.168.1.0/24 -j ACCEPT$IPT -t filter -A OUTPUT -o eth0 -j ACCEPT$IPT -t filter -A FORWARD -s 192.168.1.0/24 -i eth1 -o eth0 -j ACCEPT$IPT -t filter -A FORWARD -i eth0 -o eth1 -j ACCEPT$IPT -A FORWARD -m state ――state ESTABLISHED,RELATED -j ACCEPT$IPT -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT ――to-source 10.10.10.249$IPT -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -p tcp ――dport 80 -j REDIRECT ――to-ports 3128四、启动squid1、# squid -k parse //检测squid语法2、# squid -z //初始化squid,建立缓存3、# /etc/init.d/squid start4、# ps -ef|grep squid五、客户端配置XP上配置网关、DNS ,无须配置代理,电脑资料《RHEL5 Squid透明代理服务器配置过程解析》(https://www.)。
Squid代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

Squid代理服务器的应⽤(传统代理、透明代理、ACL控制列表、sarg⽇志分析、反向代理)⼀、Squid代理服务器的概述squid 作为⼀款服务器代理⼯具,可以缓存⽹页对象,减少重复请求,从⽽达到加快⽹页访问速度,隐藏客户机真实IP,更为安全。
Squid主要提供缓存加速、应⽤层过滤控制的功能1、squid代理的⼯作机制代替客户机向⽹站请求数据,从⽽可以隐藏⽤户的真实IP地址将获得的⽹页数据(静态 web元素)保存到缓存中并发给客户机,以便下次请求相同的数据时快速响应当我们客户机通过squid代理去访问web页⾯时,指定的代理服务器会先检查⾃⼰的缓存,若是缓存中有我们客户机需要的页⾯,那么squid 服务器将直接把缓存中的页⾯内容返回给客户机如果缓存中没有客户端请求的页⾯,那么squid代理服务器就会向internet发送访问请求,获得返回的web页⾯后,将⽹页的数据保存到缓存中并发送给客户机。
由于客户机的web访问请求实际上是squid代理服务器来代替完成的,所以隐藏了⽤户的真实IP地址,从⽽起到⼀定的保护作⽤。
另⼀⽅⾯,squid也可以针对要访问的⽬标、客户机的地址、访问的时间段进⾏过滤控制。
2、squid代理的基本类型2.1 传统代理:适⽤于internet,需在客户机指定代理服务器的地址和端⼝2.2 透明代理:客户机不需指定代理服务器的地址和端⼝,⽽是通过默认路由、防⽕墙策略将web访问重定向给代理服务器处理2.3 反向代理:如果Squid反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的web服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存(静态)在本地,供下⼀个请求者使⽤根据实现的⽅式不同,基本可以分为传统代理和透明代理两种⽅式:传统代理:也就是普通的代理服务,需要我们客户端在浏览器、聊天⼯具等⼀些程序中设置代理服务器的地址和端⼝,然后才能使⽤代理来访问⽹络,这种⽅式相⽐较⽽⾔⽐较⿇烦,因为客户机还需⼿动指定代理服务器,所以⼀般⽤于Internet环境。
如何使用Squid进行代理服务器管理

如何使用Squid进行代理服务器管理Squid 是一种优秀的代理服务器软件,支持 HTTP、HTTPS、FTP 和其他常见的网络协议,可以利用它为公司或组织提供代理服务,加强网络安全和管理。
本文将介绍如何使用 Squid 进行代理服务器管理。
一、安装和配置 Squid首先,需要在服务器上安装 Squid,通常使用包管理器可以快速完成这个过程。
安装好后,需要对 Squid 进行配置。
配置文件通常在 /etc/squid/squid.conf 中,可以通过编辑该文件来定制 Squid 的行为。
在配置文件中,需要配置 Squid 可以缓存的对象类型、缓存的大小、缓存的存储位置等信息。
可以使用 acl 命令设置访问控制列表,以确保只有可信任的客户端可以使用 Squid。
此外,还可以通过许多其他选项来自定义 Squid 的行为,比如设置日志级别、启用 SSL 支持等。
二、监控和维护 Squid一旦 Squid 被成功配置,需要监控和维护它,以确保它一直运行,并且能够有效地处理来自客户端的请求。
以下是一些常见的监控和维护任务:1. 定期检查Squid 的访问日志,以了解哪些客户端正在使用它,以及它们正在请求什么类型的内容。
这些信息有助于发现任何可能的安全风险,并确定 Squid 是否可以被优化。
2. 确保 Squid 控制台(通常在端口3128上)只能通过安全的方式进行访问。
这可以通过限制访问控制列表中的 IP 地址来实现,也可以使用 SSL 证书来加密访问。
3. 定期检查 Squid 缓存的大小和使用情况,以确保它们被充分利用,并且没有存储不必要的内容。
如果缓存充满了,可以考虑增加缓存大小或调整缓存策略。
4. 如果 Squid 经常崩溃或出现错误,需要检查系统日志以了解可能的原因,并尝试重新配置 Squid 以及更新相关软件包。
三、使用 Squid 进行扩展Squid 支持许多插件和扩展,可以增强其功能或添加新的特性。
利用squid配置下级透明代理

利用squid配置下级透明代理[摘要]代理服务是目前共享上网的主要方法之一,以一个实际例子向读者介绍了将Linux系统下的squid配置成已有代理服务的下级代理,进而配置成普通代理、透明代理。
[关键词]下级代理普通代理透明代理端口转发Linux squid笔者在一次实践教学活动中,需要向学生讲述Linux系统代理服务的配置,但学校internet出口是一个adsl连接,通过一台代理服务器(使用Windows的ISA)让相关部门共享上网。
网络管理员考虑到全校网络安全及带宽的因素,一般情况下不允许学生的实践场所上网,为了让学生实际感受代理服务配置效果,我们当然想到了下级代理即将教师机配置为代理服务器,学生通过教师机代理上网,体会代理服务的效果;学生还可以将自己的计算机配置成教师机的下级代理服务器;同时也可以进一步将下级代理配置成为透明代理。
这样在普通的校园网环境下,就能让学生亲手实现多级普通代理,透明代理。
一、教师机的普通代理配置要让教师机成为校园网代理服务器的下级代理,首先要让网络管理员对教师机授予使用代理服务器上网的权限,然后通过下面三个步骤即可完成该配置。
1.编辑squid配置文件#vi /etc/squid/squid.conf2. 激活squid建立缓存目录的存储格式,并启动squid服务#squid -z//只需在第一次启动squid服务之前,或更改了缓存设置后执行#service squid start3. 配置客户端在客户端浏览器中设置代理服务器及代理端口即可。
二、透明代理配置客户端只需设置合适的网关,不需要在浏览器上面进行任何配置,就可以实现通过代理服务器上网,一般用squid+nat端口转发来实现,其原理是:当用户经过NAT服务器来连接Internet时,假如要访问的80端口(也就是WWW服务),那么就将这个要求交给代理服务来工作,这样就达到代理服务器的功能。
那么要怎么配置呢?只要以下4个步骤即可:1. 配置代理主机:# vi /etc/squid/squid.conf在该配置文件中加入以下内容:# service squid restart2. 配置主机的端口映射:再来让我们到代理主机(也是NAT主机)上面看看,因为需要将客户对80这个端口的请求交给代理服务的3128端口来处理,所以必须要执行下面的命令:#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports 3128注意一下,那个eth0是你的代理主机对内的网卡,至于192.168.62.0/24 则是你的内部网络号,请依照你的主机实际状态来配置!3. 配置转发#echo 1 > /proc/sys/net/ipv4/ip_forward4. 配置客户端将另外一台计算机作为客户机进行测试,需要将网关指向设置透明代理的服务器,清除客户端的浏览器原来的代理设置(如果有的话)。
Squid3.0反向代理+DNS轮询实现负载均衡

Squid3.0反向代理+DNS轮询实现负载均衡系统拓朴图:●一台DNS 服务器:操作系统Freebsd,软件BIND 9.5,IP 192.168.76.222 ;●三台Squid 服务器:操作系统Linux AS 4,软件Squid 3.0,相应的IP 如下:Squid1:192.168.76.223Squid2:192.168.76.224Squid3:192.168.76.225●三台WEB 服务器:操作系统Linux AS 4,应用软件Tomcat 5.0+Mysql,相应的IP 地址如下:webServer1:210.82.118.195webServer2:192.168.76.226webServer1:192.168.76.227应用软件的安装和配置配置DNS 服务器软件利用Freebsd 自带的bind 9.5 。
然后针对该系统配置bind,首先修改bind 的配置文件/etc/namedb/named.conf,在文件中添加zone ""{type master;file "master/ ";};再在/etc/namedb/master 目录下添加 文件,该文件的内容如下:$TTL 3600@ IN SOA search. . root. . (20080807 ; Serial3600 ; Refresh900 ; Retry3600000 ; Expire3600 ) ; MinimumIN NS .1 IN PTR .wenjin IN A 192.168.76.223wenjin IN A 192.168.76.224wenjin IN A 192.168.76.225这样当用户请求的时候,DNS 通过轮询机制将 的域名解析为192.168.76.223、192.168.76.224 和192.168.76.225 其中之一。
Squid代理服务的配置与应用(ppt 43页)

一天中的时刻和一周内的一天
URL规则表达式匹配
略去协议和主机名的URL规则表达式匹配段,语法为:[星期] [时间段]。 [星期]:可以使用这些关键字M(Monday星期一)、T(Tuesday星期二)、W(Wednesday星
如果系统还没有安装Squid服务,可将Red Hat Enterprise Linux 5第2张安装盘放入光驱,加载光驱后在光 盘的Server目录下找到Squid的RPM安装包文件squid2.6.STABLE6-3.el5.i386.rpm,使用下面的命令安装Squid。
rpm -ivh /mnt/Server/squid-2.6.STABLE6-3.el5.i386.rpm
测试用户认证
① 在服务器中使用命令 “/etc/init.d/squid restart” 重启Squid服务。
② 在客户端的Web浏览器中 配置好代理服务器的IP地 址和端口号。
③ 访问任意网站,这时Web 浏览器会弹出输入用户名 和口令的对话框。
④ 输入正确的用户名和口令, 就能连上Internet了。
11.1代理服务概述
• 代理服务器简介 • 代理服务器的原理
代理服务器简介
代理服务器是目前网络中常见的服务器之一,它可以提供文件 缓存、复制和地址过滤等服务,充分利用有限的出口带宽,加快 内部主机的访问速度,也可以解决多用户需要同时访问外网但公 有IP地址不足的问题。同时可以作为一个防火墙,隔离内网与外 网,并且能提供监控网络和记录传输信息的功能,加强局域网的 安全性等。它的主要作用有以下几点。 1.共享网络 2.加快访问速度,节约通信带宽 3.防止内部主机受到攻击 4.限制用户访问,完善网络管理
11.7启动和停止代理服务
Squid代理配置

Squid透明代理手记1,首先从下载squid-2.6.STABLE10-20070315.tar.gz最新版2,解压配置编译参数:./configure --prefix=/usr/local/squid #指定squid安装目录--mandir=/usr/share/man #指定man的安装目录--enable-async-io=20 #采用同步io提高性能,负载高可设大点--disable-icmp #禁止icmp协议代理(默认不允许)--enable-delay-pools #允许延迟限止带宽--enable-cache-digests #允许缓存摘要,可以加快请求缓冲内容的速度(集群用)--enable-snmp #允许snmp协议支持(如用mrtg进行流量监控等)--disable-ident-lookups #禁止使用RFC931识别--enable-epoll #支持epoll的IO模式,2.6以上内核才具有--enable-basic-auth-helpers="NCSA" #允许带密码验证,NCSA 风格的用户名和密码档--enable-linux-netfilter #允许透明代理--enable-arp-acl #允许基于MAC地址的存取过滤--enable-err-language="Simplify_Chinese" #支持的错误语言--enable-default-err-language="Simplify_Chinese" #指定默认的错误语言3,编译安装:make && make install4,添加squid启动用户和组:groupadd squiduseradd -g squid squid -s /sbin/nologin #根据cache_effective_user指定缓冲管理的用户mkdir var/cache #根据cache_dir指定chown -R squid:squid /usr/local/squid #更改目录所有者和组为squid连同子目录5,配置squid.conf首先生成干净的配置文件:mv squid.conf squid.conf.bakcat squid.conf.bak | grep -v "#" | grep -v "^$" > squid.conf#定义服务器地址和端口(做Proxy时最好用lan的ip来设定绑定端口,transparent表示支持透明代理)http_port 192.168.1.253:3128 transparent#定义服务器的名字visible_hostname ProxyServer#定义管理员邮件地址(在访问发生错误时,visible_hostname和cache_mgr这两个选项的值显示在错误提示页面内的相关位置)cache_mgr webmaster@#定义缓存内存空间cache_mem 32MBcache_swap_low 90cache_swap_high 95#定义缓冲最大值的内容maximum_object_size 4096 KB#定义缓存目录cache_dir ufs /usr/local/squid/var/cache 200 16 256#定义不缓冲的内容hierarchy_stoplist cgi-bin ?hierarchy_stoplist -i ^https:\\ ?acl QUERY urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgiacl denyssl urlpath_regex -i ^https:\\no_cache deny QUERYno_cache deny denysslipcache_size 1024ipcache_low 90ipcache_high 95fqdncache_size 1024#日志access_log /usr/local/squid/var/logs/access.log squidcache_log /usr/local/squid/var/logs/cache.log#cache_store_log /usr/local/squid/var/logs/store.logcache_store_log none#Dns服务器dns_nameservers 202.96.128.86 61.144.56.101#缓冲存取用户和组cache_effective_user squid squid#定义ACL#sexurl.txt列出要过滤网站地址的关键字,每个关键字占一行,如(取sina)即可#maclist.txt列出允许上网的主机的MAC地址,每个地址占一行,如00:50:56:C0:00:08acl all src 0.0.0.0/0.0.0.0 #定义所有的地址acl allow_lan src 192.168.1.0/24 #允许局域网lan访问的acl acl sexurl url_regex "/usr/local/squid/sexurl.txt" #定义色情网站过滤acl virurl url_regex "/usr/local/squid/virurl.txt" #定义病毒网站过滤#acl allowedmac arp "/etc/squid/maclist.txt"#定义访问策略http_access deny sexurl #拒绝色情网站http_access deny virurl #拒绝病毒网站http_access allow allow_lan #允许局域网ip访问http_access deny all #拒绝其它未定义的规则#http_access allow allowedmac#定义可缓冲的文件名:5,运行SQUID:sbin/squid -z #初始化生成缓冲目录sbin/squid -NCd1 #前台运行(显示很多运行日志)squid #直接运行bin/RunCache & #不间断运行启动步骤:squid -zsquid -NsYD /usr/local/squid/conf/squid.conf > squid.out 2>&1监控缓冲日志:tail -f /usr/local/squid/var/logs/access.log------------------------------------------------------------------------------------------6,操作系统优化:(1)加大系统的文件描述符限制:ulimit -n默认为1024增大为65536:ulimit -n 65536查看所有的系统限制:ulimit -a(2)加速回收TIME_WAIT的sockets:sysctl -a|grep net.ipv4.tcp_twsysctl -w net.ipv4.tcp_tw_reuse=1sysctl -w net.ipv4.tcp_tw_recycle =1(3)加大临时端口的范围(默认是1024-4999):echo "1024 40000" > /proc/sys/net/ipv4/ip_local_port_range(4)如果还做NAT的话,增加NAT表的限制:echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max----------------------------------------------------------------------------------7,squidclient使用简介:查看帮助:./squidclient -h 192.168.1.123 -p 3128 mgr:/usr/local/squid/squidclientsquidclient -h 192.168.1.123 -p 3128 mgr:client_list //查看客户端列表squidclient -h 192.168.1.123 -p 3128 mgr:objects //取得已缓存的列表squidclient -h 192.168.1.123 -p 3128 mgr:info //取得运行状态经验技巧:打开一个网址,访问一下,看看有没有Cache到squidclient -h 192.168.1.123 -p 3128 mgr:objects | grep GET | grep 统计cache到的总数哈:squidclient -h 192.168.1.123 -p 3128 mgr:objects | grep GET | wc -l---------------------------------------------------------透明代理:iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128-----------------------------------------------------------------------------------错误FAQ:FATAL: ipcache_init: DNS name lookup tests failed.有3种方法解决这个问题1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
squid透明代理DNS劫持示例
squid透明代理+DNS劫持示例
DNS上的设置:
假设主DNS是1.1.1.1,辅DNS是2.2.2.2; DNS上做:
1.因为可能添加很多域名,所以做好在named.conf里添加这行:
include "hijack.list"
2.hijack.list里包含类似如下的内容:
主DNS上为:
zone "" {
type master; #在从DNS上相应地是slave
file "mon"; #每个添加的域名都包含相同的文件
allow-transfer { 2.2.2.2; }; #从DNS的IP
};
辅DNS上相应地是:
zone "" {
type slave;
file "mon";
masters { 1.1.1.1; };
};
mon的内容如下:
$TTL 180
@ IN SOA . . (
2009090403 ; serial
3600 ; refresh
900 ; retry
360000 ; expire
3600 ) ; minimum
@ IN NS .
@ IN NS .
@ IN A 150.164.100.65
* IN A 150.164.100.65
@ IN A 150.164.100.66
* IN A 150.164.100.66
@ IN A 150.164.100.67
* IN A 150.164.100.67
有很多机器时可依次添加.
SQUID里的主要设置:
给squid用的DNS不能是上面配置的DNS,否则会出现回环. 需要给squid别的能正常
解析的DNS,或者在此DNS上面配置不同的view,此view只配置hint记录就行;
http_access allow all
http_port 80 transparent # 表示透明代理
cache_dir null /tmp
#logformat
squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %
mt
access_log syslog: squid。