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

来源:asp之家 时间:2009-12-22 19:13:00 

首先大家要认清楚一个概念,使用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有状态基础知识,请查看相关资料。

标签:linux,防火墙,ftp
0
投稿

猜你喜欢

  • 康盛创想Discuz! 7.1更新 后继版本功能预告发布

    2009-10-31 12:14:00
  • Linux中使用crond工具创建定时任务的方法

    2021-04-12 18:06:26
  • 速度速度 提升网站打开速度的七个好办法

    2008-12-15 12:00:00
  • 详解CentOS 7下安装Tomcat到服务

    2021-04-02 09:58:44
  • UCenter Home网站服务器搬家详解

    2009-02-15 09:53:00
  • Zabbix监控交换机设置方法

    2022-12-25 11:56:23
  • 一句话问答 搜索引擎优化的常见问题整理

    2009-01-13 11:58:00
  • 雅虎优化:次级页面、主域名与网页级别

    2007-09-23 08:29:00
  • 关于网站备案收集的技巧攻略

    2008-04-15 15:15:00
  • 自动封杀非法连接FTP的IP的方法

    2009-12-05 18:58:00
  • 坚持更新 让我成功跳出谷歌沙盒

    2009-01-10 22:07:00
  • Exchange 2007 Direct Push Mail功能

    2010-02-25 19:01:00
  • 个人SMTP邮件服务器简单配置

    2008-10-14 13:45:00
  • 戴志康:80后完全无包袱,更容易成功

    2007-10-31 21:39:00
  • 十个理由告诉你Linux为何越来越受欢迎

    2023-10-13 11:02:49
  • 改进你的WordPress导航菜单-输出标题描述

    2011-12-07 11:00:27
  • Godaddy支持zend和Godaddy Library么?

    2010-04-17 12:45:00
  • 详解Linux重定向用法

    2022-04-01 13:20:01
  • 雨夜偶书 博客为什么比网站更牛

    2008-06-18 13:31:00
  • Linux 服务器的安全隐患以及防范对策

    2009-09-09 09:12:00
  • asp之家 网站运营 m.aspxhome.com