• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

使用有状态防火墙实现FTP功能

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 12次 | 进入软件测试论坛讨论

领测软件测试网
  首先大家要认清楚一个概念,使用FTP是从http代理出去,还是由socks代理或firewall上打开一个口转发。从http代理出去的FTP,实际上使用的是http代理程序,象最常用的squid,是http/https代理,但是它也能代理ftp请求。当你打开浏览器登陆ftp站点时,使用的就是http代理程序来处理ftp的问题。而有些程序只能设置成socks或firewall代理,象Cuteftp,wu-ftp和dos下的FTP。此类的代理才是标准的FTP代理。
  
  本文假设大家对netfilter技术已经有了一定了解,介绍利用netfilter的有状态功能在inux2.4内核上实现FTP。
  
  系统环境:
  linux7.2,安装了iptable,squid,有两块网卡:
  eth0:x.x.x.x 接internet
  eth1:192.168.0.1 接内网
  
  
  firewall相关规则:
  ##Ismod the firewall modules *加载模块
  modprobe ip_tables
  insmod ip_conntrack
  insmod ip_conntrack_ftp
  insmod ip_nat_ftp
  
  关于有状态功能,重点在于后三个模块:
  ip_conntrack模块能够使防火墙具有连接跟踪能力。(通过输入 "cat /proc/net/ip_conntrack" 可以查看您的机器参与的活动网络连接。)加载这个模块后,基本上所有有状态的返回包都能识别,例:telnet,http,QQ,mail,ping,dns等。
  
  实际上,加载了ip_conntrack模块,ftp已经能够登陆,并能使用象pwd,cd等命令,但当使用ls命令显示文件内容时,就会timeout。原因在于显示文件列表的包防火墙无法识别,就会进入默认策略----禁止,此时就需要加载ip_conntrack_ftp模块。
  
  ip_conntrack_ftp模块使防火墙能够识别FTP某类特殊的返回包。
  
  如果防火墙上对所有出去的返回包作了伪装,就需要加载ip_nat_ftp模块。
  ip_nat_ftp模块在出去的包作了伪装以后,必须加载,否则防火墙无法知道返回的包该转发到哪里。
  
  
  ##Define the policy *定义默认规则
  iptables -P INPUT DROP
  iptables -P FORWARD DROP
  iptables -P OUTPUT ACCEPT
  
  #MASQUERADE
  $IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
  所有从局域网出去的包伪装
  
  #accept lan use ftp *允许所有局域网用户使用FTP
  iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p tcp --dport 20 -j ACCEPT
  iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p tcp --dport 21 -j ACCEPT
  iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p udp --dport 20 -j ACCEPT
  iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p udp --dport 21 -j ACCEPT
  打开ftp的20,21端口
  
  #accept come back packets from INTERNET
  iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  允许有状态的返回包转发
  
  关于netfilter有状态基础知识,请查看下面这篇优秀的文章:
  http://www.linuxeden.com/edu/doctext.php?docid=1627
  

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网