squid2.6 透明代理配置
Squid2.6反向代理实现多个Web缓存加速--[配置文档]
Squid2.6反向代理实现多个Web缓存加速--[配置文档]# NETWORK OPTIONS# ----------------------------------------------------------------------------- http_port 211.211.211.211:80 transparent vhost vport##cache_peer 211.100.59.59 parent 80 0 no-query originserver#cache_peer 61.235.170.133 parent 80 3130 no-query no-netdb-exchange proxy-only #cache_peer 211.101.21.114 parent 80 0 no-query originserver#cache_peer 211.100.23.242 parent 80 0 no-query originserver#cache_peer 61.135.120.233 parent 80 0 no-query originserver#cache_peer 219.246.145.145 parent 80 0 no-query originserver# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM# -----------------------------------------------------------------------------hierarchy_stoplist cgi-bin ?acl QUERY urlpath_regex cgi-bin \?cache deny QUERYacl apache rep_header Server ^Apachebroken_vary_encoding allow apachecollapsed_forwarding on# OPTIONS WHICH AFFECT THE CACHE SIZE# ----------------------------------------------------------------------------- cache_mem 256 MBcache_swap_low 90cache_swap_high 95maximum_object_size 4096 KBminimum_object_size 0 KBmaximum_object_size_in_memory 80 KBipcache_size 1024ipcache_low 90ipcache_high 95cache_replacement_policy lrumemory_replacement_policy lru# LOGFILE PATHNAMES AND CACHE DIRECTORIES# -----------------------------------------------------------------------------#cache_dir ufs /Data/apps/squid/var/cache 1024 56 256cache_dir ufs /Data/apps/squid/cache 4096 56 256#access_log /Data/apps/squid/var/logs/access.log squidcache_log /Data/apps/squid/var/logs/cache.logemulate_httpd_log on#cache_store_log /Data/apps/squid/var/logs/store.log# pid_filename /Data/apps/squid/var/logs/squid.pid# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS# -----------------------------------------------------------------------------dns_children 5#Recommended minimum configuration per scheme:#auth_param negotiate program <uncomment and complete this line to activate>#auth_param negotiate children 5#auth_param negotiate keep_alive on#auth_param ntlm program <uncomment and complete this line to activate>#auth_param ntlm children 5#auth_param ntlm keep_alive on#auth_param digest program <uncomment and complete this line>#auth_param digest children 5#auth_param digest realm Squid proxy-caching web server#auth_param digest nonce_garbage_interval 5 minutes#auth_param digest nonce_max_duration 30 minutes#auth_param digest nonce_max_count 50#auth_param basic program <uncomment and complete this line>#auth_param basic children 5auth_param basic realm Squid proxy-caching web serverauth_param basic credentialsttl 2 hoursauth_param basic casesensitive off# OPTIONS FOR TUNING THE CACHE# -----------------------------------------------------------------------------# request_header_max_size 20 KB# request_body_max_size 0 KBrefresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern . 0 20% 4320quick_abort_min 0 KBquick_abort_max 0 KB# quick_abort_pct 95# read_ahead_gap 16 KB# negative_ttl 5 minutes# refresh_stale_hit 0 seconds# TIMEOUTS# -----------------------------------------------------------------------------forward_timeout 20 secondsconnect_timeout 15 seconds# peer_connect_timeout 30 secondsread_timeout 3 minutesrequest_timeout 1 minutespersistent_request_timeout 15 secondsclient_lifetime 15 minuteshalf_closed_clients off# pconn_timeout 120 seconds# ident_timeout 10 secondsshutdown_lifetime 5 seconds# ADMINISTRATIVE PARAMETERS# -----------------------------------------------------------------------------cache_mgr longrujun@cache_effective_user squidcache_effective_group squid# httpd_suppress_version_string offvisible_hostname # OPTIONS FOR THE CACHE REGISTRATION SERVICE# ----------------------------------------------------------------------------# HTTPD-ACCELERATOR OPTIONS# -----------------------------------------------------------------------------# httpd_accel_no_pmtu_disc off# MISCELLANEOUS# -----------------------------------------------------------------------------logfile_rotate 0tcp_recv_bufsize 65535 bytes# memory_pools on# memory_pools_limit 5 MB# via on# forwarded_for on# log_icp_queries on# icp_hit_stale off# minimum_direct_hops 4# minimum_direct_rtt 400# store_avg_object_size 13 KB# store_objects_per_bucket 20# client_db on# netdb_low 900# netdb_high 1000# netdb_ping_period 5 minutes# query_icmp off# buffered_logs off# reload_into_ims off# global_internal_static on# short_icon_urls offerror_directory /Data/apps/squid/share/errors/Simplify_Chinese# maximum_single_addr_tries 1# retry_on_error off# DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)# -----------------------------------------------------------------------------# delay_initial_bucket_level 50# max_open_disk_fds 0# offline_mode off# uri_whitespace strip# nonhierarchical_direct on# prefer_direct off# coredump_dir nonecoredump_dir /Data/apps/squid/cache# redirector_bypass off# ignore_unknown_nameservers on# digest_generation on# digest_bits_per_entry 5# digest_rebuild_period 1 hour# digest_swapout_chunk_size 4096 bytes# digest_rebuild_chunk_percentage 10client_persistent_connections offserver_persistent_connections on# persistent_connection_after_error off# detect_broken_pconn off# balance_on_multiple_ip on# pipeline_prefetch off# request_entities off# high_response_time_warning 0# high_page_fault_warning 0# high_memory_warning 0# store_dir_select_algorithm least-load# ie_refresh offvary_ignore_expire on# sleep_after_fork 0# minimum_expiry_time 60 seconds# relaxed_header_parser onstrip_query_terms on# ACCESS CONTROLS#---------------------------------------------------acl OverConnLimit maxconn 20http_access deny OverConnLimit#acl AntiGoogle req_header User-Agent Googlespider #http_access deny AntiGoogleacl all src 0.0.0.0/0.0.0.0acl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255 10.10.10.0/24acl Srvip dst 211.100.99.0/24 211.100.100.0/24 61.135.100.0/24 60.195.200.159.0/24 acl Srvdm dstdomain acl to_localhost dst 127.0.0.0/8 61.135.170.231/255.255.255.255acl purgehost src 127.0.0.0/8 61.135.170.231/255.255.255.255acl purgemethod method PURGEacl SSL_ports port 443 563acl Safe_ports port 80 # httpacl Safe_ports port 81 # httpacl CONNECT method CONNECTalways_direct allow Srvdmnever_direct allow !Srvdmhttp_access allow manager localhosthttp_access deny managerhttp_access allow purgemethod purgehosthttp_access deny !Safe_portshttp_access deny CONNECT allhttp_access allow localhosthttp_access allow Srviphttp_access allow Srvdmhttp_access deny allhttp_reply_access allow allicp_access deny allicp_port 0。
配置防火墙透明代理
配置防火墙透明代理应用场景代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
而且,大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率(速度会随着代理服务器地理位置的不同以及网络传输情况而改变),而且国外的网络大部分都是没有限制访问网站或者所限制的不同,所以我们有很大的机会通过代理服务器去访问那些原本不能够去的网站对于服务提供商来说:● 大部分代理服务器都具有缓冲的功能。
它有一个很大的Cache(一个很大的硬盘缓冲区),不断地将新取得的数据保存在Cache中。
如果浏览器所请求的数据在其缓冲区中已经存在而且是最新的,那么它就不会重新到Web服务器取数据,而直接将缓冲区中的数据传送给浏览器,从而显著地提高浏览速度;● 代理服务器能够提供安全功能。
它连接Internet与Intranet,有防火墙功能。
由于内部网与外部网之间没有其它的直接连接,所有的通信都必须通过代理服务器,因此外界不能直接访问到内部网,使得内部网的安全性得到提高。
同时也可以设置IP地址过滤,来限制内部网对外部的访问权限。
● 可以节省IP开销。
由于所有用户对外只占用一个有效的IP,所以不必租用过多的有效IP地址,降低网络的维护成本。
由于目的服务器只能查出所使用的代理服务器的IP,所以对防止网络黑客还有一个不言而喻的好处,那就是通过这种方法隐藏自己的真实IP地址。
对于个人来说:代理服务器的最大的好处是可以通过代理来访问本身不能访问到的地方。
如何在CentOS或RHEL上搭建Squid透明Web代理系统
如何在CentOS或RHEL上搭建Squid透明Web代理系统【51CTO精选译文】我们在前一篇教程中介绍了使用用户空间实现的应用程序iptables 搭建网关的方法,。
本教程将重点介绍将网关变成透明代理服务器。
如果客户端没有意识到其请求是通过代理处理的,该代理就被称为“透明”代理。
使用透明代理有几个好处。
首先,对最终用户来说,透明代理可以改善上网浏览体验,因为缓存了经常访问的网站内容,同时给他们带来的配置开销最小。
对管理员来说,透明代理可用于执行各种管理政策,比如内容/URL/IP过滤和速率限制等。
代理服务器充当客户端和目的地服务器之间的中介。
客户端将请求发送到代理服务器,随后代理服务器评估请求,并采取必要的动作。
在本教程中,我们将使用Squid搭建一个Web代理服务器,而Squid是一种健壮的、可定制的、稳定的代理服务器。
就个人而言,大概一年来我管理着一台拖有400多个客户端工作站的Squid服务器。
虽然平均而言我大概一个月就要重启一次服务,但处理器和存储使用率、吞吐量以及客户端响应时间都表现不错。
我们将配置Squid以获得下列拓扑结构。
CentOS/RHEL设备有一块网卡(eth0)连接到专有局域网,另一块网卡(eth1)则连接到互联网。
Squid的安装想使用Squid搭建透明代理系统,我们首先要添加必要的iptables规则。
这些规则应该会帮助你开始上手,不过务必要确保它们与任何的现有配置没有冲突。
1.# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE2.# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT--to-port 3128第一条规则将引起来自eth1(广域网接口)的所有出站数据包都有eth1的源IP地址(也就是启用NAT)。
第二条规则将把来自eth0(局域网接口)的所有入站HTTP数据包(发往TCP 80)重定向至Squid侦听端口(TCP 3128),而不是直接将其转发到广域网接口。
第9季 Squid服务全攻略之高级配置(transparent)
第9季 Squid服务全攻略之高级配置企业环境公司搭建一台代理服务器,需要提高内网访问互联网速度并能够对内部员工的上网行为进行限制,采用squid代理服务器软件,对内部网络进行优化。
需求分析提高用户访问速度,需要对squid服务器进行优化并且需要使用acl对访问行为进行相应限制。
解决方案1、路由及NAT设置设置网卡IP地址eth0:192.168.8.188 netmask:255.255.255.0vim /etc/sysconfig/network-scripts/ifcfg-eth0eth1:dhcp获取vim /etc/sysconfig/network-scripts/ifcfg-eth1开启内核路由功能echo 1 > /proc/sys/net/ipv4/ip_forward配置iptables设定nat,即透明代理iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128如果只设置下面一句而上面一句不设置,客户端也可以上网,只是不通过squid 哈~iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE保存iptables设置service iptables save2、修改selinux设置setsebool -P squid_disable_trans on注意:如果配置squid透明代理,要开启selinux的squid_disable_trans,否则squid 不能启动哈~3、添加squid系统用户和组[root@rhel5 ~]# groupadd squidadmin[root@rhel5 ~]# useradd squidadmin -g squidadmin -s /sbin/nologin4、建立相应目录[root@rhel5 ~]# mkdir /usr/local/squid[root@rhel5 ~]# mkdir /usr/local/squid/cache[root@rhel5 ~]# mkdir /usr/local/squid/var[root@rhel5 ~]# mkdir /usr/local/squid/var/logs5、改变目录的所有者为了保证服务正常启动并可以写入缓存、日志等信息,我们更改目录所有者为squidadmin哈~[root@rhel5 ~]# chown -R squidadmin /usr/local/squid/cache[root@rhel5 ~]# chgrp -R squidadmin /usr/local/squid/cache[root@rhel5 ~]# chown -R squidadmin /usr/local/squid/var/logs [root@rhel5 ~]# chgrp -R squidadmin /usr/local/squid/var/logs6、修改squid配置文件vim /etc/squid/squid.conf设置监听地址和端口http_port 3128 transparent红色部分是支持透明代理,这是squid新版本的改进注意:好多资料说透明代理设置为httpd_accel_host virtualhttpd_accel_port 80httpd_accel_with_proxy onhttpd_accel_uses_host_header on实际上透明代理只是在普通代理的基础上加上了http_port 3128 transparent 及IPTABLES的端口转发功能,使用Iptables或者Ipchains实现,即把用户对外部www站点的访问转到 Squid的端口上去,相对用用户来讲是“透明”的,不需在浏览器中指明代理服务器的IP和端口。
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配置下级透明代理[摘要]代理服务是目前共享上网的主要方法之一,以一个实际例子向读者介绍了将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. 配置客户端将另外一台计算机作为客户机进行测试,需要将网关指向设置透明代理的服务器,清除客户端的浏览器原来的代理设置(如果有的话)。
squid配置
1. 什么是代理服务器(Proxy Server)代理服务可以代表其它计算机传递数据包或信息,这些数据包和信息包括网页、电子邮件、多媒体文件和其它网络应用程序等。
通过它的文件缓存和访问控制等功能,可以实现快速浏览和对用户访问的有效管理。
Web代理服务器(通常所说的代理服务器)是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时,浏览器不是直接到 Web服务器去取回网页而是向代理服务器发出请求,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
而且,大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。
更重要的是:代理服务器是 Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联 (OSI) 模型的对话层。
主要的功能有:1、连接Internet与Intranet 充当firewall(防火墙):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置 IP地址过滤,限制内部网对外部的访问权限;另外,两个没有互联的内部网,也可以通过第三方的代理服务器进行互联来交换信息。
2、共享因特网连接,节省IP开销:如前面所讲,所有用户对外只占用一个IP,所以不必租用过多的IP地址,降低网络的维护成本。
这样,局域局内没有与外网相连的众多机器就可以通过内网的一台代理服务器连接到外网,大大减少费用。
当然也有它不利的一面,如许多网络黑客通过这种方法隐藏自己的真实 IP 地址,而逃过监视。
3、提高访问速度,节约通信带宽。
而且通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,从而达到提高访问速度的目的。
Linux中怎么设置透明代理(2)
Linux中怎么设置透明代理(2)4:确认squid服务处于正常监听状态:5:客户机程序的代理配置:在IE浏览器的—右击属性—连接—局域网设置—代理服务器—填写IP地址和端口号—IP地址为局域网内网的网关地址;端口号为—3128:Linux客户机命令行使用代理服务器,elinks网页浏览器、wget 下载工具为例:注意:在外网服务器173.16.16.2上必须安装WEB服务器并启动服务6:验证传统代理的使用:在192.168.10.10客户机上通过浏览器访问http://173.16.16.2:a:查看squid访问日志的新增记录:在squid代理服务器中,通过跟踪squid服务的访问日志文件,我们会发现客户机192.168.10.10访问网站服务器173.16.16.2。
b:查看web访问日志的新增记录:在被访问的web服务器中,通过跟踪httpd服务的访问日志文件,会发现来自代理服务器173.16.16.173的访问记录。
这说明当客户机使用代理后,web服务器并不知道客户机的真实IP地址,因为实际是由代理服务器在代替访问。
当从客户机再次访问同一web页面时,squid访问日志中会增加新的记录,但web访问日志中的记录不会有变化,除非页面变更、或执行强制刷新等操作。
当客户机重复访问同一静态页面时,实际上是由代理服务器通过缓存提供的。
透明代理:透明代理提供的服务功能与传统代理一致,但“透明”的实现依赖于默认路由和防火墙的重定向策略,更适用于局域网主机服务,而不适合为internet中的客户机提供服务。
实验描述:在Linux网关上构建squid为客户机访问Internet提供代理服务;在所有的局域网客户机上,只需正确设置IP地址、默认网关,不需要手动指定代理服务器的地址、端口等信息。
实验步骤:1:配置Squid支持透明代理。
在主配置文件中/etc/squid/squid.conf中添加一项http_port 局域网IP地址:3128 transparent 或 http_port 3128 transparent2:设置iptables防火墙的重定向策略(如果防火墙开启,需先保存并关闭,然后新建如下规则):正确设置防火墙策略,将局域网主机访问internet的数据包转交给Squid进行处理,这里需要用到iptables的REDIRECT(重定向)策略,其作用是实现本机端口的重新定向,将访问网站协议HTTP、HTTPS的外发数据包转交给本机的Squid服务的3128端口。
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。
squid透明代理 DNS劫持示例
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上相应地是slavefile "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 ; serial3600 ; refresh900 ; retry360000 ; expire3600 ) ; 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 allhttp_port 80 transparent # 表示透明代理cache_dir null /tmp#logformatsquid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mtaccess_log syslog: squid。
squid安装设置(实现透明代理)
groupdel squid
useradd squid
groupadd squid
把squid-2.5.STABLEA13.tar.gz拷贝到/usr/local/squid下(注意,以后启动squid必须用命令[root@pc]#/usr/local/squid/sbin/squid start)解压 安装
�
--enable-snmp :此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。
--enable-storeio=ufs,null #使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服务器,就需要加上null文件系统。
--enable-delay-pools 此选项使能一个延时池,这样能对某些特定的请求限制额定带宽。
--enable-gnuregex:由于Squid大量使用字符串处理做各种判断,加此项能更好处理。
--enable-icmp :加入icmp支持
--disable-ident-lookups :防止系统使用RFC931规定的身份识别方法。
--prefix=/usr/local/squid :指定安装路径 为便于管理,可用--sysconfdir=/etc把这个文件位置配置/etc
--enable-arp-acl #这样可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗
--enable-async-io=80 :这个主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器配置很不错,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比较糟糕就根据实际情况设了。另外此项还另cache文件支持aufs
squid配置
squid配置一.squid(代理服务器)的作用:1. 通过缓存的方式为用户提供WEB服务加速2. 对用户的WEB访问做访问控制二.代理服务器分为以下三类:1. 普通代理服务2. 透明代理服务3. 方向代理服务三squid的基本配置:1. 安装squid的软件包为:squid-2.6.STABLE21-3.el52. squid的运行进程为:squid3. 运行squid的二进制文件为:/etc/init.d/squid4. squid的监听端口为:3128(tcp)5. squid的主配置脚本为:/etc/squid/squid.conf6. squid的日志记录存放:/var/log/squid/access.log四. squid主配置文件常用的配置项1. http_port 定义squid的监听端口的,默认为31282. cache_mem 定义为squid分配内存的大小,默认为64M3. visible_hostname 定义配置为可见的主机名,默认没有此项,需手动添加4. cache_dir 定义缓存存放的目录5. cache_mgr 定义管理员的邮箱6. error_directory 定义错误提示的语言7. reply_body_max_size 定义用户传输的最大数据五.普通代理服务(为内网用户代理上网)实验环境:内网的网卡eth1:192.168.23.23,内网的客户机ip:192.168.23.25 外网卡eth0:192.168.0.43 ,web服务器的地址为:192.168.0.254(这里的实验环境为实验室,如有需要,可根据实际情况进行改动)1. 修改主配置文件:(1)visible_hostname定义为: (2)用户的最大传输数据位:10M(3)访问控制列表定义为allow all(4)监听端口定义为内网卡的8080端口:(5)定义错误提示的语言为中文(6)定义管理员的邮箱地址:2. 初始化squid的缓存目录:3.分析是否有语法错误:3.启动squid服务:4. 做客户端的设置,这里以Firefox为例:(1)打开工具栏中的"编辑"-----》"首选项"-----》"高级"-----》"网络"----》"设置"-----》"手动配置代理"设置代理地址为内网卡的ip:192.168.23.23,代理端口为8080,然后点击"确定"退出。
squid透明代理服务器的设计
squid透明代理服务器的设计摘要:squid透明代理服务器的设计成为近年来普遍关注的问题,本文就从多个方面进行分析,以供参考。
关键词:透明代理器设计1、透明代理服务器squid软件包的安装及其启动(1)配置squid透明代理服务器之前先要确定squid软件包是否安装。
(2)因为squid服务程序在rhel4中默认不自动启动。
如作为服务器使用,需要使用chkconfig命令设置squid服务在运行级别3和5中自动启动。
2、linux主机的域名解析的设计及其功能描述(1)squid服务器在初始化或运行时需要所在主机具有完整的域名,否则squid服务器无法成功启动。
Linux主机完整域名需要在DNS服务器中进行解析,在DNS服务器中配置解析之前,先要确定是否安装了BIND服务器软件包,由于RHEL4系统中默认没有安装BIND服务器软件包,而只安装了名为bind-libs 和bind-utils的两个域名解析相关的软件包,其中bind-libs软件包中提供了实现域名解析功能必备的库文件,bind-utils中提供了对DNS服务器的测试工具程序。
(2)RHEL4系统中提供了RPM格式的BIND服务器软件包,位于第4张安装光盘中,安装文件的名称是bind-9.2.4-2.i386.rpm,利用rpm ivh命令安装软件包。
(3)安装缓存域名服务器的软件包caching-nameserver,该软件包保存在第一张安装光盘中,系统默认没有安装,需要使用rpm命令手动进行安装,caching-nameserver软件包安装时将对BIND服务器的配置文件named.conf的内容进行更改,原有文件中的内容被保存在/etc/named.conf.rpmorig中。
(4)编辑缓存域名服务器配置文件/etc/named.conf,使用options配置语句进行BIND服务器的全局属性配置。
(5)在缓存域名服务器的named.conf配置文件中,除了包括根区域的配置以外,还要在named.conf配置文件中的末尾添加域的正向区域和反向区域的设置。
如何设置路由器透明代理
如何设置路由器透明代理在日常使用互联网时,我们经常遇到一些限制或过滤,如网络封锁、内容过滤等。
而使用透明代理可以帮助我们绕过这些限制,访问被封锁或过滤的网站。
本文将介绍如何设置路由器透明代理,以便轻松实现无阻碍上网。
一、什么是透明代理?透明代理是指在无需用户主动设置代理服务器的情况下,路由器自动将用户的网络请求转发给代理服务器进行中转处理。
用户无需进行任何配置,就可以实现代理的效果。
二、准备工作在设置路由器透明代理之前,我们需要准备以下工作:1. 一台可以连接互联网的路由器。
2. 一台具备代理功能的计算机或服务器,作为代理服务器。
3. 了解路由器的管理界面地址、用户名和密码。
三、设置代理服务器1. 在一台计算机或服务器上安装代理服务器软件,例如Shadowsocks、Squid等。
2. 配置代理服务器的监听端口、密码等参数,确保代理服务器正常运行。
四、进入路由器管理界面1. 打开浏览器,输入路由器的管理界面地址,并使用正确的用户名和密码登录。
2. 进入路由器的管理界面后,找到“网络设置”或类似的选项。
五、设置DHCP1. 在路由器的管理界面中,找到“DHCP服务器”或类似的选项。
2. 打开DHCP服务器设置,将主机名配置为代理服务器的IP地址。
六、设置DNS1. 在路由器的管理界面中,找到“网络设置”或类似的选项。
2. 找到DNS设置,将DNS服务器配置为代理服务器的IP地址。
七、设置防火墙1. 在路由器的管理界面中,找到“防火墙设置”或类似的选项。
2. 添加规则,将所有出口流量转发到代理服务器的IP地址。
到此,通过设置路由器的透明代理,我们已经完成了所有的步骤。
现在,所有通过该路由器的设备都会自动连接到代理服务器,实现透明代理的效果。
需要注意的是,在设置透明代理之后,路由器的所有设备都将经过代理服务器进行网络请求,带来的一个显著影响是网络速度会受到一定的影响。
因此,我们应该选择一台具备足够带宽和性能的代理服务器。
Iptables+squid透明代理配置及测试
1 开启内核路由功能echo 1 > /proc/sys/net/ipv4/ip_forward2 配置iptables设定nat,即透明代理iptables -t nat -A PREROUTING -s 10.0.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128如果只设置下面一句而上面一句不设置,客户端也可以上网,只是不通过squid哈~/sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 192.168.202.246保存iptables设置service iptables save2、修改selinux设置setsebool -P squid_disable_trans on配置iptables设定nat,即透明代理Iptables设好如上Cat /usr/local/squid/etc/squid.conf下面是ACL访问控制列表,可以设置黑名单,也可以设置过滤字符,可以设置访问文件类型来实现限制下载等功能客户端10.0.0.2不用作任何设置,打开IE输入网址就可以了,默认WEB端口为80,访问就自动转向192.168.202.246的3128代理端口Netstat –anut 查看端口状态,可以看到10.0.0.2是通过192.168.202.246代理端口3128访问外网的,可以下载,当然也可以限制!上面我设置不允许访问这个网址,结果如下!Netstat -anutSquid日志记录例:不允许下载rar文件Cat /var/log/squid/access.log 记录.例:不允许访问含sex的网址.测试感觉:如果作squid+iptables的机器能够稳定,使用还是比较不错!安全性能方面只要对squid使用及ssh登陆作来源限制,足以保证安全!3G门户系统部。
Linux怎样设置透明代理
Linux怎样设置透明代理透明模式的特点就是对用户是透明的(Transparent),即用户意识不到防火墙的存在。
那么Linux怎样设置透明代理?今天店铺与大家分享下Linux设置透明代理的具体操作步骤,有需要的朋友不妨了解下。
Linux设置透明代理方法1.什么是透明代理?如果你问:我如何才能使得用户的浏览器不需要任何代理设置就能使用我的Squid cache代理服务器上网?此时你就需要使用透明代理。
透明代理让你的客户端不需设置任何代理,当包经过透时代理服务器时实际上被重定向到squid代理服务器的代理端口(如8080),即由本地代理服务器向外请求所需数据然后拷贝给客户端。
2.我需要什么样的环境才能实现透明代理?a.客户端的windows PC的网关必须设成Squid代理服务器,因为既然你的browser中没有任何代理设置,你要访问某个站点时,包必须经经过squid代理服务器才能被重定向,故这是最基本的条件。
b.客户端必须正确设置DNS服务器。
因为既然现在不用设置任何代理。
则DNS必须由browser来解析,也就是要由客户端的PC中TCP/IP中设置的DNS服务器来正确解析出某个站点的IP地址来。
c.服务器端可以安装squid代理服务器,1.x or 2.x版本均可。
3.配置Squid代理,启动透明代理功能Squid-2加下面的行到你的/etc/squid/squid.conf中http_port 8080httpd_accel_host virtualhttpd_accel_port 80httpd_accel_with_proxy onhttpd_accel_uses_host_header onSquid-1.1加下面的行到/etc/squid.confhttp_port 8080httpd_accel virtual 80httpd_accel_with_proxy onhttpd_accel_uses_host_header on4. 重启动squid. 用下面的命令:#/usr/sbin/squid -k reconfigure如提示内核不支持透明代理。
Squid+iptables的透明代理配置-CIN的日志-网易博客
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+iptables透明代理
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非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。
Linux中怎么设置透明代理
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地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
iptables 设定
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
ipcache_size 2048 # IP 地址高速缓存大小 2M
ipcache_low 90 #最小允许ipcache使用swap 90%
ipcache_high 95 #最大允许ipcache使用swap 90%
#这里设置为0是因为这里配置Squid为内部Web服务器的加速器,
#所以不需要使用邻居服务器的缓冲。0是禁用
# cache_peer 设置允许更新缓存的主机,因是本机所以127.0.0.1
cache_peer 127.0.0.1 parent 80 0 no-query default multicast-responder no-netdb-exchange
#一般来说如果系统有内存,设置该值为(n/)3M。现在是3G 所以这里1G
fqdncache_size 1024 #FQDN 高速缓存大小
maximum_object_size_in_memory 2 MB #允许最大的文件载入内存
max_filedesc 2048 #最大打开的文件描述
half_closed_clients off #使Squid在当read不再返回数据时立即关闭客户端的连接。
#有时read不再返回数据是由于某些客户关闭TCP的发送数据
cache_peer_domain 127.0.0.1
hostname_aliases 127.0.0.1
error_directory /usr/share/squid/errors/Simplify_Chinese #定义错误路径
#而仍然保持接收数据。而Squid分辨不出TCP半关闭和完全关闭。
buffered_logs on #若打开选项“buffered_logs”可以稍稍提高加速某些对日志文件的写入,该选项主要是实现优化
特性。
在命令提示符中输入squid –z #创建cache文件 ,如果squid.conf有错会提示的,按提示排错。
maximum_object_size 20 MB #允午最大文件请求体大小
cache_swap_low 90 #最小允许使用swap 90%
cache_swap_high 95 #最多允许使用swap 95%
always_direct allow all # cache丢失或不存在是允许所有请求直接转发到原始服务器
ignore_unknown_nameservers on #开反DNS查询,当域名地址不相同时候,禁止访问
coredump_dir /var/log/squid #定义dump的目录
relaxed_header_parser on #不严格分析http报头.
client_lifetime 120 minute #最大客户连接时间 120分钟
cache_mgr sky@ #指定当缓冲出现问题时向缓冲管理者发送告警信息的地址信息。
规则
acl buggy_server url_regex ^[url]http://....[/url] [url]http:// [/url] #只允许http的请求
broken_posts allow buggy_server
acl apache rep_header Server ^Apache #允许apache的编码
#32个一级目录,512个二级目录
max_open_disk_fds 0 #允许最大打开文件数量,0 无限制
minimum_object_size 1 KB #允午最小文件请求体大小
http_reply_access allow all #允许所有客户端使用该代理
acl OverConnLimit maxconn 16 #限制每个IP最大允许16个连接,防止攻击
http_access deny OverConnLimit
icp_access deny all #禁止从邻居服务器缓冲内发送和接收ICP请求.
miss_access allow all #允许直接更新请求
ident_lookup_access deny all #禁止lookup检查DNS
http_port 8080 transparent #指定Squid监听浏览器客户请求的端口号。
ok设置完成, 可以测试了,
当你把apache 停止时候,就可以了看到squid的错误信息了, apache 打开的时候,
访问网站的记录,全部记录到 vi /var/log/squid/access.log 里面, 打开网站时候检查这log是不是不断刷新,如果有
更新那就OK拉
acl Safe_ports port 80 # 允许安全更新的端口为80
acl CONNECT method CONNECT #请求方法以CONNECT
http_access allow all #允许所有人使用该代理.因为这里是代理加速web服务器
acl manager proto http #manager url协议为http
acl localhost src 127.0.0.1/255.255.255.255 #允午本机IP
acl to_localhost dst 127.0.0.1 #允午目的地址为本机IP
本文件来自互联网]
安装我就不说了啦
yum -y install squid #这样就可以安装了,
mkdir /home/cache
chown squid:squid /home/cache
chown squid:squid /var/log/squid
修改:vi /etc/squid/squid.conf 为
access_log /var/log/squid/access.log squid #定义日志存放记录
cache_log /var/log/squid/cache.log squid
cache_store_log none #禁止store日志
memory_replacement_policy heap LFUDA #动态使用最小的,移出内存cache
cache_replacement_policy heap LFUDA #动态使用最小的,移出硬盘cache
cache_dir ufs /home/cache 5000 32 512 #高速缓存目录 ufs 类型 使用的缓冲值最大允午1000MB空间,
broken_vary_encoding allow apache
request_entities off #禁止非http的标分准请求,防止攻击
header_access header allow all #允许所有的http报头
emulate_httpd_log on #将使Squid仿照Web服务器的格式创建访问记录。如果希望使用
#Web访问记录分析程序,就需要设置这个参数。
refresh_pattern . 0 20% 4320 override-expire override-lastmod reload-into-ims ignore-reload #更新cache
hierarchy_stoplist cgi-bin ? #用来强制某些特定的对象不被缓存,主要是处于安全的目的。
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
cache_mem 1 GB #这是一个优化选项,增加该内存值有利于缓存。应该注意的是:
cache_effective_user squid #这里以用户squid的身份Squid服务器
cache_effective_group squid
icp_port 0 #指定Squid从邻居服务器缓冲内发送和接收ICP请求的端口号。
#acl all src 0.0.0.0/0.0.0.0 and http_access allow all选项定义了一个访问控制列表。详细情况参见和Squid软
件
#携带的文档。这里的访问控制列表允许所有对代理服务的访问,因为这里该代理是加速web服务器。
acl all src 0.0.0.0/ቤተ መጻሕፍቲ ባይዱ.0.0.0 #允许所有IP访问