⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 基于ip filter的nat透析 - china freebsd user group.htm

📁 ip filter
💻 HTM
📖 第 1 页 / 共 3 页
字号:
192,168,0,221,8,176”,这个帧会先被防火墙一直监听客户机发往外部21端口数据的外网卡捕获并且PORT帧中的客户端地址以及端口会被修改为防火墙地址和映射端口,之后防火墙把修改后的数据转发给Ftp服务器,所以Ftp服务器才会创建一个新端口来和客户机建立连接,完成一次完整的PORT过程。 
<BR><BR><FONT class=subhead>4.4.2外网Client访问内网Ftp Server</FONT> 
<BR><BR>从上一小节介绍了如何让内网的客户端访问外网的Ftp服务器在使用PORT模式可以顺利通过,而这一小节要解决的问题和上一小节的刚好相反,外网的客户端使用PORT模式可以在现有的rules基础上不做任何更改就能和内网Ftp服务器建立连接并传输数据,但用PASV模式反而不行,如图4-6所示。这种现象在上一小节已经分析得比较清楚了,因为PASV模式下,在内网的服务器端会建立一个随机监听端口并在此之前给外网客户机送一个带有其IP地址(192.168.0.*的内网地址)和新建端口号信息的PASV帧,外网的客户端能正确的接收到该帧然后以“192.168.0.*:服务器新端口号”为目的地址回复确认报文,当然这种数据报是不可能发送到目的地的,如图4-7所示。<BR><BR>
<DIV align=center><IMG height=243 alt=issue12_sniff8.jpg 
src="基于IP Filter的NAT透析 - China FreeBSD User Group.files/issue12_sniff8.jpg" 
width=355 
onload="if(this.width>750) {this.style.height='auto';this.style.width='750px'}" 
border=0></DIV><BR>
<DIV align=center>图4-6 外网客户端FlashFXP用PASV模式时收到到的错误信息 </DIV><BR><IMG height=173 
alt=issue12_sniff9.jpg 
src="基于IP Filter的NAT透析 - China FreeBSD User Group.files/issue12_sniff9.jpg" 
width=567 
onload="if(this.width>750) {this.style.height='auto';this.style.width='750px'}" 
border=0><BR>
<DIV align=center>图4-7 
从外网客户端捕获的连接失败过程的数据报</DIV></DIV><BR>  通过分析发现问题的主要症结就在于服务器端告诉客户端的IP地址是一个内网地址,这个信息和普通的TCP连接的源地址不一样,后者的地址信息放置在IP报头里,防火墙有能力分析并映射为自己的IP,而前者的地址信息放置在上层的应用层报文内部,防火墙不会对每个报文的应用层数据帧进行分析处理,所以内网IP地址不能被转换成防火墙的真实IP。既然防火墙没有办法实现那只有找发送PASV的服务器寻找解决问题的方法。好在大部分的Ftp服务器都支持手动调节PASV信息帧的内容,拿Windows平台最流行的Server-U服务器为例,设置如图4-8所示:<BR><BR>
<DIV align=center><IMG height=60 alt=issue12_sniff10.jpg 
src="基于IP Filter的NAT透析 - China FreeBSD User Group.files/issue12_sniff10.jpg" 
width=342 
onload="if(this.width>750) {this.style.height='auto';this.style.width='750px'}" 
border=0></DIV><BR>
<DIV align=center>图4-8 
Server-U设定PASV的IP和随机端口范围</DIV><BR>  在这种情况下,内网服务器给外网客户会发一个PASV告诉客户端确认报文发送到202.115.65.225,端口为40000到60000随机产生的一个确定数值,外网客户端按照要求回复的数据报会被防火墙接收,但它还不知道怎么转发到内网服务器,还需加入下面rule才能正确转发到内网Ftp服务器。<BR>
<DIV class=code>rdr rl1 202.115.65.225/32 port 40000-60000 -&gt; 192.168.0.221 
port 40000 tcp</DIV>  这条rule会把请求40000-60000的端口范围的数据报转发到192.168.0.221 
Ftp服务器。<BR><BR><IMG height=345 alt=issue11_sniff12.jpg 
src="基于IP Filter的NAT透析 - China FreeBSD User Group.files/issue12_sniff12.jpg" 
width=567 
onload="if(this.width>750) {this.style.height='auto';this.style.width='750px'}" 
border=0><BR>
<DIV align=center>图4-9 连接成功后的客户端和服务器端捕获的数据报</DIV><BR><FONT 
class=subhead>五、总结</FONT><BR><BR>  把所有的rules汇总生成最后的rules 如下:<BR>
<DIV class=code>map rl1 192.168.0.0/24 -&gt; 202.115.65.225/32 portmap tcp/udp 
10000:39999<BR>map rl1 192.168.0.0/24 -&gt; 202.115.65.225/32<BR>map rl0 
192.168.0.0/24 -&gt; 202.115.65.225/32<BR>rdr rl1 202.115.65.225/32 port 
40000-60000 -&gt; 192.168.0.251 port 40000 tcp<BR>map rl1 192.168.0.0/24 -&gt; 
202.115.65.225/32 proxy port Ftp Ftp/tcp<BR>rdr rl1 202.115.65.225/32 port 80 
-&gt; 192.168.0.251 port 80<BR>rdr rl1 202.115.65.225/32 port 21 -&gt; 
192.168.0.251 port 21<BR>rdr rl1 202.115.65.225/32 port 25 -&gt; 192.168.0.251 
port 25<BR>rdr rl1 202.115.65.225/32 port 110 -&gt; 192.168.0.251 port 
110<BR>rdr rl1 202.115.65.225/32 port 139 -&gt; 192.168.0.2 port 139<BR>rdr rl0 
202.115.65.225/32 port 139 -&gt; 192.168.0.2 port 139<BR>rdr rl0 
202.115.65.225/32 port 80 -&gt; 192.168.0.251 port 80<BR>rdr rl0 
202.115.65.225/32 port 21 -&gt; 192.168.0.251 port 21<BR>rdr rl0 
202.115.65.225/32 port 25 -&gt; 192.168.0.251 port 25<BR>rdr rl0 
202.115.65.225/32 port 110 -&gt; 192.168.0.251 port 110<BR>rdr rl0 
202.115.65.225/32 port 139 -&gt; 192.168.0.251 port 
139</DIV>  把上面的rules保存到nat.conf文件中后运行下面的命令,防火墙就能完成案例的所有需求了。<BR>
<DIV class=code>#ipnat –CF<BR>#ipnat –f 
nat.conf</DIV>  本文经过分析简单的rule来推测著名防火墙软件IP 
Filter的NAT工作机理,并在此基础上探讨了复杂路由的设计思路,结合实际案例分析路由数据报的收发流程并提出了完美的解决方案。<BR><BR><SPAN 
class=corner-bottom><SPAN class=corner-left></SPAN></SPAN></DIV>
<DIV class=box_bluewhite id=page_comments><SPAN class=corner-top><SPAN 
class=corner-left></SPAN></SPAN>
<H5 class=module-header>网友评论  <FONT color=#ee0000>以下本论与CNFUG(China FreeBSD User 
Group)立场无关</FONT></H5>
<DIV class=container></DIV><SPAN class=corner-bottom><SPAN 
class=corner-left></SPAN></SPAN></DIV>
<DIV class=box_bluewhite id=page_wcomment><SPAN class=corner-top><SPAN 
class=corner-left></SPAN></SPAN>
<H5>我也说几句</H5>
<DIV class=container>
<FORM name=comments_form action=/cgi-bin/cms/comments.cgi method=post><INPUT 
type=hidden value=1 name=static> <INPUT type=hidden value=68 name=entry_id> 
<DIV class=writecommentbox>
<P><LABEL for=comment-author>姓名:</LABEL><INPUT class=input_line 
id=comment-author size=30 name=author><BR><LABEL 
for=comment-text>评论:</LABEL><BR><TEXTAREA id=comment-text name=text rows=10 cols=60></TEXTAREA><BR><INPUT id=comment-post accessKey=s type=submit value="发 表" name=post> 
<INPUT id=comment-preview accessKey=v type=reset value="清 除" name=preview> 
</P></DIV></FORM></DIV><SPAN class=corner-bottom><SPAN 
class=corner-left></SPAN></SPAN></DIV>
<DIV class=box_bluewhite id=page_recommend><SPAN class=corner-top><SPAN 
class=corner-left></SPAN></SPAN>
<H5>推荐给好友</H5>
<DIV class=container>
<FORM name=send_entry action=/cgi-bin/cms/send.cgi method=post><INPUT 
type=hidden value=68 name=entry_id> <INPUT type=hidden 
value=/journal/systems/2004/000068.html name=_redirect> 
<DIV class=writecommentbox>
<P><LABEL for=to>对方邮件:</LABEL><INPUT id=to name=to>&nbsp;&nbsp; <LABEL 
for=from>你的邮件:</LABEL><INPUT id=from name=from><BR><LABEL 
for=message>附言:</LABEL><BR><TEXTAREA id=message name=message rows=5 cols=60></TEXTAREA><BR><INPUT id=comment-post type=submit value="发 表" name=post> 
<INPUT id=reset type=reset value="清 除" name=reset> </P></DIV></FORM></DIV><SPAN 
class=corner-bottom><SPAN class=corner-left></SPAN></SPAN></DIV>
<DIV class=box_bluewhite id=page_download><SPAN class=corner-top><SPAN 
class=corner-left></SPAN></SPAN>
<H5>文章下载</H5>
<P>本功能正在开发中,目前不能使用,敬请原谅。</P><SPAN class=corner-bottom><SPAN 
class=corner-left></SPAN></SPAN></DIV>
<P class=no-print>√ 期刊在线投稿: http://www.lstv.net.cn/journal/contribute.html</P>
<P class=do-print>√ 本文打印于《CNFUG期刊》,欢迎访问 http://www.cnfug.org 
获取更多技术文章。</P></DIV></DIV>
<DIV></DIV>
<DIV id=copyright>
<P>&copy; 2003-2006 CNFUG(<A href="http://www.cnfug.org/">China FreeBSD User 
Group</A>) All rights reserved ( 蜀ICP备05018172号 ) </P>
<P class=powered>Powered by <A href="http://www.freebsd.org/">FreeBSD</A> 
</P></DIV>
<SCRIPT src="基于IP Filter的NAT透析 - China FreeBSD User Group.files/urchin.js" 
type=text/javascript></SCRIPT>

<SCRIPT type=text/javascript>_uacct = "UA-273324-1";urchinTracker();</SCRIPT>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -