代理服务器和透明代理.doc

上传人:11****ws 文档编号:3259372 上传时间:2019-05-27 格式:DOC 页数:6 大小:40.50KB
下载 相关 举报
代理服务器和透明代理.doc_第1页
第1页 / 共6页
代理服务器和透明代理.doc_第2页
第2页 / 共6页
代理服务器和透明代理.doc_第3页
第3页 / 共6页
代理服务器和透明代理.doc_第4页
第4页 / 共6页
代理服务器和透明代理.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、一、什么是代理服务器?所谓代理服务器是指代表内部私有网中的客户连接互联网 www 资源的外部服务器的程序。客户与代理服务器对话,它们接收客户请求,然后连接真实的服务器,请求得到数据并将响应数据返回给客户。代理服务器发挥了中间转接作用。在代理方式下,私有网络的数据包从来不能直接进入互联网,而是需要经过代理的处理。同样,外部网的数据也不能直接进入私有网,而是要经过代理处理以后才能到达私有网,因此在代理上就可以进行访问控制,地址转换等功能。目前,代理服务器软件有很多,如 Netscape Suit Proxy,MS Proxy,Wingate,squid 等。这些代理服务器不仅能起到防火墙的作用,而

2、且还可以加速局域网用户对 INTERNET 的访问,因为代理服务器有一个大的缓冲器,将每次浏览的网页都保存起来,在下一次访问该页时就直接从缓冲器里调出,而无需再次访问原始服务器。二、什么是透明代理?透明代理技术中的透明是指客户端感觉不到代理的存在,不需要在浏览器中设置任何代理,客户只需要设置缺省网关,客户的访问外部网络的数据包被发送到缺省网关,而这时缺省网关运行有一个代理服务器,数据实际上被被重定向到代理服务器的代理端口(如 8080),即由本地代理服务器向外请求所需 数据然后拷贝给客户端。理论上透明代理可以对任何协议通用。但是在这种情况下客户端必须正确设置 DNS 服务器。因为现在浏览器不设

3、置任何代理。则 DNS 查询必须由 browser 来解析,也就是要由客户端必须在 TCP/IP中设置的正确的 DNS 服务器,其完成 dns 解析。 例如: 从私有网络上访问因特网上的 web 站点。私有网地址为 192.168.1.*, 其中客户机是 192.168.1.100,防火墙机器网卡是192.168.1.1。透明 web 代理被安装在防火墙机器上并配置端口为 8080。内核使用 iptables 把与防火墙端口 80 的连接重定向到代理服务。私有网上的Netscape 被配置为直接连接方式。私有网络的客户机需要设置 DNS 服务器。私有网络上机器的默认路由(别名网关)指向防火墙机

4、器。客户机机器上的 Netscape 访问 http:/slashdot.org.1.Netscape 通过查找”slashdot.org”, 得到它的地址为 207.218.152.131. 然后它使用端口 1050 与此地址建立一个连接,并向 web 站点发出请求。2.当包由客户机 (port 1050)通过防火墙送往 slashdot.org(port 80)时, 它们重定向到代理服务重定的 8080 端口。透明代理使用端口 1025 与207.218.152.131 的端口 80(这是原始包的目的地址)建立一个连接。3. 当代理服务收到从 web 站点传来的页面后, 通过已经建立的连接

5、把它复制给 Netscape。4. Netscape 显示此页面。5. 从 slashdot.org 的角度来看,连接是由 1.2.3.4(防火墙的拨号连接 IP 地址)的端口 1025 到 207.218.152.131 的端口 80。从客户机的角度来看,连接是从 192.168.1.100(客户机)端口 1050 连接到 207.218.152.131(slashdot.org)的端口 80, 但是, 它实际是在与透明代理服务器对话。这就是透明代理的操作流程。三、内核编译一般来讲,透明代理所在机器往往是带动整个局域网联入互联网的入口,因此该机器往往需要配置防火墙规则以对内部网络进行防护。因

6、此在编译内核时也许要考虑将防火墙支持选项编译进去。一般来说需要在使用 make menuconfig命令配置时打开如下选项:*Networking support *Sysctl support *Network packet filtering *TCP/IP networking */proc filesystem support * Kernel/User netlink socket * Netlink device emulation * Connection tracking (required for masq/NAT) * FTP protocol support* IP ta

7、bles support (required for filtering/masq/NAT)limit match support * MAC address match support * Netfilter MARK match support * Multiple port match support * TOS match support * Connection state match support * Packet filtering* REJECT target support* Full NAT * MASQUERADE target support * REDIRECT t

8、arget support * Packet mangling * TOS target support * MARK target support * LOG target support然后 make dep ; make clean ;make bzImage 命令来编译内核。如果使用到了模块,还需要使用下面命令生成和安装模块 make modules;make modules-install。将 System.map 复制到/boot 目录中,将 /usr/src/linux/arch/i386/boot/bzImage 复制到 /boot 目录中并改名为 vmlinuz-2.4.7。

9、最后安装新内核并重新起动:lilo;shutdown -r now 即可。四、squid 的安装配置下载:可以从 squid 主网站下载:http:/www.squid-cache.org/Versions/v2/2.4/squid-2.4.STABLE1-src.tar.gz也可以从本地下载:http:/ src# tar xvfz squid-2.4.STABLE1-src.tar.gzrootproxy src# cd squid-2.4.STABLE1rootproxy src# ./configurerootproxy src# make allrootproxy src# make

10、 install配置:编辑/usr/local/squid/etc/squid.conf,修改以下内容,确保以下配置:httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on cache_effective_user nobody cache_effective_group nobody http_access allow all (所有的 http_access 命令都注释掉,只留下这条,其实严格上来说应该限制只允许局域网用户使用代理,具体可以参

11、考 squid 手册中关于 Access Control Lists 的内容来限制访问代理) cache_dir ufs /usr/local/squid/cache 100 16 256cache_dir type Directory-Name Mbytes Level-1 Level2 (说明:指定 squid 用来存储对象的交换空间的大小及其目录结构。可以用多个cache_dir 命令来定义多个这样的交换空间,并且这些交换空间可以分布不同的磁盘分区。”directory “指明了该交换空间的顶级目录。如果你想用整个磁盘来作为交换空间,那么你可以将该目录作为装载点将整个磁盘 mount 上

12、去。缺省值为/var/spool/squid。”Mbytes”定义了可用的空间总量。需要注意的是,squid 进程必须拥有对该目录的读写权力。”Level-1是可以在该顶级目录下建立的第一级子目录的数目,缺省值为 16。同理,”Level-2是可以建立的第二级子目录的数目,缺省值为 256。为什么要定义这么多子目录呢?这是因为如果子目录太少,则存储在一个子目录下的文件数目将大大增加,这也会导致系统寻找某一个文件的时间大大增加,从而使系统的整体性能急剧降低。所以,为了减少每个目录下的文件数量,我们必须增加所使用的目录的数量。如果仅仅使用一级子目录则顶级目录下的子目录数目太大了,所以我们使用两级子

13、目录结构。那么,怎么来确定你的系统所需要的子目录数目呢?我们可以用下面的公式来估算。已知量:DS = 可用交换空间总量(单位 KB)/ 交换空间数目OS = 平均每个对象的大小= 20kNO = 平均每个二级子目录所存储的对象数目 = 256未知量:L1 = 一级子目录的数量L2 = 二级子目录的数量计算公式:L1 x L2 = DS / OS / NO注意这是个不定方程,可以有多个解)然后创建 cache 子目录,并修改该目录所有者位 nobody:rootproxy squid# /usr/local/squid/cacherootproxy squid# chown nobody:nob

14、ody /usr/local/squid/cache修改 squid 记录目录的所有者以允许 squid 访问:rootproxy squid# chown nobody:nobody /usr/local/squid/logs最后启动 squid:rootiptable logs# /usr/local/squid/bin/RunCache &查看进程列表: rootiptable logs# ps ax应该出现如下几个进程:1372 pts/0 S 0:00 /bin/sh /usr/local/squid/bin/RunCache1375 pts/0 S 0:00 squid -NsY1

15、376 ? S 0:00 (unlinkd)并且系统中应该有如下几个端口被监听:rootproxy logs# netstat -lntcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTENudp 0 0 0.0.0.0:3130 0.0.0.0:*这些说明 squid 已经正常启动了。然后/etc/rc.d/rc.local 文件最后添加 /usr/local/squid/bin/RunCache & 以使得系统启动时自动启动 squid 服务器。五、iptables 的设置在/etc/rc.d/目录下用 touch 命令建立 firewall 文件,执行 chmod u+

16、x firewll 以更改文件属性,编辑/etc/rc.d/rc.local 文件,在末尾加上/etc/rc.d/firewall 以确保开机时能自动执行该脚本。firewall 文件内容为:#!/bin/shecho “Starting iptables rules”#Refresh all chains/sbin/iptables -Fiptables -t -A PREROUTING -i eth0 -p tcp -m tcp dport 80 -j REDIRECT to-ports 3128iptables -t -A POSTROUTING -s 192.168.2.0/24 -o eth1 -j SNAT to-source 200.200.200.200如果需要还可以添加一些防火墙规则以增强安全性,具体参考:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 医药卫生

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。