首 页 教育新闻课件中心论文中心教学教案试题中心语文专题综合下载技术教程公务员  
设为首页
加入收藏
联系我们
您当前的位置:中国教育资源网 -> 技术教程 -> 网络相关 -> 服务器 -> 代理服务器 -> 技术内容 退出登录 用户管理

netfilter和squid配合创建透明代理的问题讨论代理服务器教程

论文作者:佚名  论文来源:不详  论文发布时间:2006-6-19 18:15:28  论文发布人:chjchjchj

减小字体 增大字体

              摘要:netfilter和squid配合创建透明代理的问题讨论
最近常在网上看到很多朋友假设透明代理碰到问题,一个常见的问题是:
1.IPtables(netfilter)以配置好,Squid也配置好了;
2.不通过Squid可以正常访问网页;
3.或者清空iptables规则,在客户端配置代理也能访问;
4.一旦同时启用iptables,Squid,同时把80的流量转发到代理端口时就出现问题,网页无法访问;而其他的应用正常.

为什么?其实我想可能是很多朋友对IPtables还没有个透彻的理解,下面就和大家一起讨论一下:
一、iptables和netfilter的区别
iptables使用来配置netfilter的工具,只是一个人机界面,真正工作时是netfilter在根据规则来对流量进行过滤。

二、流量如何通过netfilter?
不同的流量,由于其目标地址的不同,其穿过的netfilter链也是不同的,基本上可以分为下面三种情况:
1.输入流:目标地址为本机的数据包
2.输出流:源地址为本机的数据包
3.转发流:目标和源均不是本机,但需要本机的转发

输入流的链路径:
线路->接口->mangle.PREROUTING->nat.PREROUTING->[routing]->mangle.INPUT->filter.INPUT->[本地处理]

输出流的链路径:
应用程序->[routing]->mangle.OUTPUT->nat.OUTPUT->filter.OUTPUT->mangle.POSTROUTING->nat.POSTROUTING->接口->线路

转发流的链路径:
线路->接口->mangle.PREROUTING->nat.PREROUTING->[routing]->mangle.FORWARD->filter.FORWARD->mangle.POSTROUTING->nat.POSTROUTING->接口->线路

[routing]指本地地路由决策。

以上为www.netfilter.org网站对IP数据包如何流过linux路由器地描述,由于本人对以前版本地IPchain及IPfw了解不多,因此这里仅限于对netfilter/iptables的讨论。

从上面的路径链可以看到,[b:119a391a6e]三种数据流穿过的规则链是有区别的[/b:119a391a6e]。下面就让我们讨论一下iptables应该如何配合squid.

三、直接转发与使用SQUID的区别
不管是直接转发,还是通过NAT接入internet,数据包都是在第三层进行处理,此时数据流是[u:119a391a6e][b:119a391a6e]转发流[/b:119a391a6e][/u:119a391a6e],不会穿过filter.INPUT和filter.OUTPUT链。
而squid是在[u:119a391a6e][b:119a391a6e]应用层[/b:119a391a6e][/u:119a391a6e]来完成代理工作的,它将介入internet信息的访问过程,分别和内部客户机、外部服务器建立数据连接,因此[b:119a391a6e]数据流将是输入流和输出流[/b:119a391a6e]也必将穿越filter.INPUT和filter.OUTPUT链。因此,要让Squid正常为客户提供代理服务,我们必须在INPUT和OUTPUT链中增加相应设置。而很多时候我们都把INPUT和OUTPUT链的缺省规则设置为DROP。
这就是出现以上故障现象的主要原因。

看到这里我想大多数朋友应该知道如何来配置INPUT和OUTPUT规则链了。实际上在这个链中只要具备了满足如下规则的条目,就可以达到我们的目的。
1.允许内部机器到本机代理端口的连接;
2.允许本机到外部世界的连接。

典型的,在常用配置中(缺省的链策略为DROP)增加规则如下:
iptables -A INPUT -i $INTERNAL -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -o $INTERNAL -m state --state RELATIVE,ESTABLISHED -j ACCEPT
iptables -A INPUT -i $INTERNAL -m state --state RELATIVE,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $EXTERNAL -m state --state NEW,RELATIVE,ESTABLISHED -j ACCEPT

以上为本人查阅相关资料并分析和总结所得,如有错误的地方,欢迎大家指正。

[] [返回上一页] [打 印] [收 藏]  
 ∷相关技术评论  (评论内容只代表网友观点,与本站立场无关!) [查看发表评论...]
 
 中国教育资源网免费技术教程下载中心-站内广告 站内广告 中国教育资源网免费技术教程下载中心-站内广告 
 中国教育资源网站内搜索 站内搜索 中国教育资源网站内搜索 
 

   
 中国教育资源网免费技术教程下载中心-栏目导航 栏目导航 中国教育资源网免费技术教程下载中心-栏目导航 
· Windows 9XMEXP · Windows NT20002003
· LinuxBSD · 系统综合
· IISApache · 硬件技术
· Web服务器 · FTP服务器
· 邮件服务器 · 域名服务器
· Windows服务器 · 代理服务器
· 服务器综合
 
中国教育资源网免费技术教程下载中心-相关教程  相关技术 中国教育资源网免费技术教程下载中心-相关教程
· iptables入门的第一
· linux内核防火墙net
· 防火墙软件Netfilte
· 防火墙软件Netfilte
· 使用NetFlow分析网络
· 使用NetFlow分析网络
· 使用NetFlow分析网络
· 使用NetFlow分析网络
· 使用NetFlow分析网络
· 使用NetFlow分析网络
 中国教育资源网免费技术教程下载中心-本月热门教程 本月热门 中国教育资源网免费技术教程下载中心-本月热门教程 
 
 中国教育资源网免费技术教程下载中心-本日热门论文 本日热门 中国教育资源网免费技术教程下载中心-本日热门论文 
 
关于本站 - 网站帮助 - 免费课件 - 美容 - 绿色软件 - 软件下载 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 网站留言
浙ICP备06010405号 Email:cnkjz@163.com 技术支持:名流设计
版权所有 Copyright© 2002-2004 名流