squid透明代理 DNS劫持示例
- 格式:doc
- 大小:22.50 KB
- 文档页数:3
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透明代理服务器配置过程解析-电脑资料一、环境及操作平台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代理服务器的概述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 是一种优秀的代理服务器软件,支持 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配置下级透明代理[摘要]代理服务是目前共享上网的主要方法之一,以一个实际例子向读者介绍了将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轮询实现负载均衡系统拓朴图:●一台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透明代理手记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)ClientA发出资源请求,根据客户端上的代理服务配置设置,将请求发送到代理服务器。
(2)然后由代理服务器代表客户端发出请求,假如代理服务器将请求发给了一个web主机(3)Web主机将资源返还给代理服务器(4)代理服务器将资源返还给客户端,并将内容存储在缓存中(5)ClientB请求与ClientA相同的资源,和ClientA一样,也会将请求发送到代理服务器(6)代理服务器已有该资源内容,所以代理服务器直接将资源内容发送给客户端ClientB。
由此可以看出,代理服务器是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
而且,大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。
二、代理服务器的功能代理服务器的功能不止是可以进行缓存,还有很多其他的功能:(1)连接Internet与Intranet 充当firewall(防火墙):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置 IP地址过滤,限制内部网对外部的访问权限;另外,两个没有互联的内部网,也可以通过第三方的代理服务器进行互联来交换信息。
(2)设置用户验证和记账功能,可按用户进行记账,没有登记的用户无权通过代理服务器访问internet,并对用户的访问时间、访问地点、信息流量进行统计。
(3)对用户进行分级管理,设置不同用户的访问权限,对外界或内部的ip地址进行过滤,设置不同的访问权限。
squid+iptables透明代理Squid与Linux下其它的代理软件如Apache、Socks、TIS FWTK 和delegate相比,下载安装简单,配置简单灵活,支持缓存和多种协议。
用ipchains+Squid的解决方案,就可以获得通过缓存高性能的同时能够无缝的访问Internet。
Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。
也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。
对于Web用户来说,Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Internet的速度,提高客户机的访问命中率。
Squid不仅支持HTTP协议,还支持FTP、gopher、SSL和WAIS等协议。
和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O 驱动的进程来处理所有的客户端请求。
Squid将数据元缓存在内存中,同时也缓存DNS查寻的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。
Squid支持SSL,支持访问控制。
由于使用了ICP,Squid能够实现重叠的代理阵列,从而最大限度的节约带宽。
Squid由一个主要的服务程序Squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。
当Squid启动以后,它可以派生出指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。
Squid的另一个优越性在于它使用访问控制清单(ACL)和访问权限清单(ARL)。
访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。
如何设置路由器透明代理在日常使用互联网时,我们经常遇到一些限制或过滤,如网络封锁、内容过滤等。
而使用透明代理可以帮助我们绕过这些限制,访问被封锁或过滤的网站。
本文将介绍如何设置路由器透明代理,以便轻松实现无阻碍上网。
一、什么是透明代理?透明代理是指在无需用户主动设置代理服务器的情况下,路由器自动将用户的网络请求转发给代理服务器进行中转处理。
用户无需进行任何配置,就可以实现代理的效果。
二、准备工作在设置路由器透明代理之前,我们需要准备以下工作:1. 一台可以连接互联网的路由器。
2. 一台具备代理功能的计算机或服务器,作为代理服务器。
3. 了解路由器的管理界面地址、用户名和密码。
三、设置代理服务器1. 在一台计算机或服务器上安装代理服务器软件,例如Shadowsocks、Squid等。
2. 配置代理服务器的监听端口、密码等参数,确保代理服务器正常运行。
四、进入路由器管理界面1. 打开浏览器,输入路由器的管理界面地址,并使用正确的用户名和密码登录。
2. 进入路由器的管理界面后,找到“网络设置”或类似的选项。
五、设置DHCP1. 在路由器的管理界面中,找到“DHCP服务器”或类似的选项。
2. 打开DHCP服务器设置,将主机名配置为代理服务器的IP地址。
六、设置DNS1. 在路由器的管理界面中,找到“网络设置”或类似的选项。
2. 找到DNS设置,将DNS服务器配置为代理服务器的IP地址。
七、设置防火墙1. 在路由器的管理界面中,找到“防火墙设置”或类似的选项。
2. 添加规则,将所有出口流量转发到代理服务器的IP地址。
到此,通过设置路由器的透明代理,我们已经完成了所有的步骤。
现在,所有通过该路由器的设备都会自动连接到代理服务器,实现透明代理的效果。
需要注意的是,在设置透明代理之后,路由器的所有设备都将经过代理服务器进行网络请求,带来的一个显著影响是网络速度会受到一定的影响。
因此,我们应该选择一台具备足够带宽和性能的代理服务器。
Linux中怎么设置透明代理用户的浏览器不需要任何代理设置就能使用我的Squid cache代理服务器上网?此时你就需要使用透明代理,那么Linux中怎么设置透明代理呢?今天店铺与大家分享下Linux中设置透明代理的具体操作步骤,有需要的朋友不妨了解下。
Linux中设置透明代理方法透明模式的特点就是对用户是透明的(Transparent),即用户意识不到防火墙的存在。
要想实现透明模式,防火墙必须在没有IP地址的情况下工作,不需要对其设置IP地址,用户也不知道防火墙的IP地址。
透明模式的防火墙就好象是一台网桥(非透明的防火墙好象一台路由器),网络设备(包括主机、路由器、工作站等)和所有计算机的设置(包括IP地址和网关)无须改变,同时解析所有通过它的数据包,既增加了网络的安全性,又降低了用户管理的复杂程度。
防火墙使用透明代理技术,这些代理服务对用户也是透明的,用户意识不到防火墙的存在,便可完成内外网络的通讯。
当内部用户需要使用透明代理访问外部资源时,用户不需要进行设置,代理服务器会建立透明的通道,让用户直接与外界通信,这样极大地方便了用户的使用。
一般使用代理服务器时,每个用户需要在客户端程序中指明要使用代理,自行设置Proxy参数(如在浏览器中有专门的设置来指明HTTP或FTP等的代理)。
而透明代理服务,用户不需要任何设置就可以使用代理服务器,简化了网络的设置过程。
透明代理与透明模式都可以简化防火墙的设置,提高系统安全性。
但两者之间也有本质的区别:工作于透明模式的防火墙使用了透明代理的技术,但透明代理并不是透明模式的全部,防火墙在非透明模式中也可以使用透明代理。
那么下边我们就通过示例让大家明白透明代理、传统代理及ACL 控制的效果:实验环境(略加修改,因为当测试网站在同一网段就没有必要验证了):地址规划:Squid 代理:eth0:192.168.10.1eth1:173.16.16.173测试网站:173.16.16.2客户机:192.168.10.10实验描述:在squid主机上,构建squid为客户机访问各种网站提供代理服务;在客户机上,指定squid作为web访问代理,以隐藏自己的真实IP地址。
SQUID代理服务器参考文档SQUID代理服务器是一个开源的HTTP代理服务器,广泛用于网络代理、缓存和反向代理。
它被设计为高性能和低资源消耗,并且经过了数十年的开发和测试。
SQUID代理服务器可以在多种操作系统上运行,如Linux、FreeBSD、Solaris等。
下面是SQUID代理服务器的一些重要功能和配置选项的参考文档。
1.安装和启动SQUID代理服务器:- 启动和停止:可以使用systemctl、service或/etc/init.d等命令来启动、停止或重新加载SQUID服务。
2.基本代理设置:- acl:访问控制列表(ACL)用于定义哪些客户端可以使用代理服务器。
你可以根据客户端的IP地址、域名等来定义ACL。
3.缓存设置:- cache_dir:cache_dir指令用于定义SQUID使用的缓存目录和存储容量。
你可以指定多个缓存目录,并控制每个目录的大小。
- cache_mem:cache_mem指令用于定义SQUID使用的内存缓存大小。
你可以指定一个合适的大小来加速访问速度。
- refresh_pattern:refresh_pattern指令用于定义SQUID如何更新缓存的内容。
你可以使用正则表达式来匹配URL,并设置刷新频率。
4.网络设置:- tcp_outgoing_address:tcp_outgoing_address指令用于定义SQUID代理服务器发送请求时使用的IP地址。
你可以根据需要配置多个IP地址。
- icp_port:icp_port指令用于定义SQUID代理服务器监听的ICP (Internet Cache Protocol)端口,默认为3130。
ICP用于SQUID之间的缓存协作。
5.访问日志和错误日志:- cache_log:cache_log指令用于定义SQUID记录缓存日志的位置和级别。
你可以将其配置为记录详细的缓存操作信息。
6.SSL和HTTPS代理:- ssl_bump:ssl_bump指令用于配置SQUID代理服务器进行HTTPS 连接的中间人攻击。
1、在LINUX服务器上实现代理功能!
2、在LINUX服务器上实现透明代理
注:做这个实验的时候不要在LINUX服务器上启用路由转发功能,否刚你会发现启不启用代理都能连到外网WEB服务器,把路由转发功能关掉之后启用代理才能上网,因为你的数据包并不是直接通过代理转发出去的,而是代理服务器代你去到外网拿数据包,所以不需要转发功能!
第一个实验:实现代理
1、分别在PC1上、LINUX服务器上和外网WEB服务器上配置IP
在PC1上配置IP:
在LINUX服务器上配置IP:
外网WEB服务器的IP:
2、在LINUX服务器上实装squid软件包(第二张光盘)
3、配置主配置文件vi /etc/squid/squid.conf
4、启动服务:
5、在外网服务器上启动网页服务
6、在内网客户端上配置代理:
7、测试:在客户端输入外网WEB的IP,能访问说明成功!
第二个实验:启用透明代理,即不需要在客户端做任何的配置,并不需要指向代理,也能上网!
1、在原来配置的基础上,加入下面四句:
httpd_accel_host virtual
http_accel_port 80
httpd_accel_with_proxy on
httpd_accel_users_host_header on
2、改动上面的配置后重启服务:
2、把端口作转向,把所有的发往80端口的转为3128,这样代理就会接收这个数据包并代
替去外网拿网页
3、做SNAT把内网的请求发到外网去
4、做测试,现在在客户端不需要任何的配置,只需要把网关指向服务器内网就可以了!。
Squid+iptables的透明代理配置-CIN的日志-网易博客Squid+iptables的透明代理配置默认分类 2008-02-24 01:37 阅读57 评论0字号:大中小Squid+iptables的透明代理配置Firer20002003-06-27硬件环境:兼容机双网卡软件环境:linux7.1+squid-2.3.STABLE4-src.tar一.squid的安装配置1.下载squid可以从squid主站下载:2.编译安装squid第一步:[root@www root]#tar xzvf squid-2.3.STABLE4-src.tar.gz第二步:[root@www root]#cd squid-2.3.STABLE4第三步:[root@www squid-2.3.STABLE4]#./configure --prefix=/usr/localsquid enable-ipf-transparent/*指定squid的安装目录和启用透明代理*/第四步:[*****************.STABLE4]#makeall第五步:[*****************.STABLE4]#makeinstall以上五步执行完毕,squid整个程序就会被安装在/usr/local/squid 目录下.接下来再执行以下几步:第六步:进入目录/usr/local,以root身份执行下面的命令,创建cache目录和改变整个squid目录的所有者为nobody.nobody:[*****************.STABLE4]#cd/usr/local/squid[root@www squid]# mkdir cache[root@www squid]# cd ..[root@www local]# chown nobody.nobody -R squid第七步:改变用户为nobody,进入/usr/local/squid/bin目录,执行./squid -z创建cache交换目录[root@www local]# su nobody[root@www local]$cd /usr/local/squid/bin[root@www local]$./squid -z第八步:修改squid.conf文件,确保以下配置:httpd_accel_host virtual(记得把一句加上,我用的这个squid版本没有这一句)httpd_accel_port 80httpd_accel_with_proxy onhttpd_accel_uses_host_header oncache_effective_user nobodycache_effective_group nobodyhttp_access allow allcache_dir ufs /usr/local/squid/cache 100 16 256...最后启动squid:[root@www local]#/usr/local/squid/bin/squid查看进程列表:[root@www local]#px ax应该出现如下几个进程:......... usr/local/squid......... squid......... unlink并且系统中应该有如端口被监听:tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTENudp 0 0 0.0.0.0:3130 0.0.0.0:*这些说明squid正常启动了.###如果squid不能正常工作,可能是域名的设置问题,需要设置域名。
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。