IPTABLES 以及 IPPORTFW、IPAUTOFW、REDIR、UDPRED 和其他程序为 Linux IP 伪装提供通用的 TCP 和/或 UDP 端口转发功能。这些工具通常与特定的 IP MASQ 模块一起使用,或作为其替代品,以使特定的网络流量通过 MASQ 服务器。
通过端口转发器,您可以将来自 Internet 的数据连接重定向到位于 IP MASQ 服务器后端的内部、私有地址机器。这种转发能力包括 TELNET、WWW 和 SMTP 等网络协议。FTP、旧版 ICQ 和其他协议需要通过内核模块进行特殊处理(见下文)。
注意:如果您只是想进行简单的端口转发,而不需要伪装支持,那么您别无选择。您仍然需要在内核中启用 IP 伪装支持,并且运行 IPTABLES、IPCHAINS 或 IPFWADM 规则集,才能使用 Linux 的端口转发工具。
那么,为什么有这么多不同的选择呢?IPTABLES、IPPORTFW、MARK (MFW)、IPMASQADM (PORTFW 或 AUTOFW)、IPAUTOFW、REDIR 和 UDPRED(所有 URL 都在第 3.2.3 节中)是 IP MASQ 用户可用的各种工具,用于根据他们的内核版本实现此类功能。后来,随着 Linux IP 伪装功能的成熟,许多这些工具最终被 IPTABLES 或 PORTFW 和 MARK 系统所取代,这些系统是更智能的解决方案。
对于较新的 2.2.x 内核,IPMASQADM 工具将旧版 IPAUTOFW 和 IPPORTFW 2.0.x 内核工具合并为一个二进制文件。用于 2.2.x 内核的 IPMASQADM 工具以及用于 2.6.x 和 2.4.x 内核的 IPTABLES 也支持一种称为“MARK”或 MFW 的新机制,用于 PORTFW 功能。MARK 系统的工作原理是,特定的 IPTABLES 或 IPCHAINS 规则集会匹配给定的数据包序列。一旦匹配,该工具将“标记”这些数据包。之后,可以指示 IPMASQADM 工具或特定的 IPTABLE“表”根据需要更改这些数据包,并将它们转发到期望的内部目标。目前,本 HOWTO 未涵盖 MARK 解决方案,但将来会进行介绍。
无论如何,由于有较新的工具可用,因此非常不建议使用旧工具,例如 IPAUTOFW(甚至是 IPMASQADM 中的 AUTOFW)和 REDIR,因为它们无法正确通知 Linux 内核它们的存在,并可能最终因过度使用而崩溃您的 Linux 服务器。
注意 #2:在任何 2.2/2.0 Linux 内核(2.6.x 和 2.4.x 用户无论如何都不会使用这些特定工具)中启用 PORTFW 功能后,内部机器通常无法使用相同的“外部”PORTFWed IP 地址来访问给定的“内部”机器。换句话说,PORTFW 仅旨在与 Internet 上的“外部”计算机一起使用。如果这对您来说是一个问题,您也可以对较旧的 2.2.x 和 2.0.x 内核使用 REDIR 工具,以使内部机器也被重定向到内部服务器。运行 IPTABLES 的 2.6.x 和 2.4.x 内核用户可以彻底解决此问题,并在下面的第 7.19 节的 FAQ 条目中完全涵盖。如果您想了解有关为什么这种内部/外部转发不起作用的技术解释,请向下翻页到 2.2.x PORTFW 部分的底部,查看 Juan Jose Ciarlante 的注释。
注意 #3:非 NAT 友好流量(例如 FTP 服务器流量)到内部 MASQed FTP 服务器的转发,称为 PORTFW FTP,现在在 2.6.x 和 2.4.x 内核以及 2.2.x 内核中通过 BETA 版本 FTP 内核模块(不随附 Linus 股票内核)得到完全支持。还应该注意的是,您还可以使用外部 FTP 代理程序 PORTFW FTP 流量(本 HOWTO 中未涵盖)。应该注意的是,Beta 2.2.x FTP 内核模块代码仍处于实验阶段,有些人通过使用 ACTIVE FTP 会话比 PASSIVE 连接获得更好的结果。有趣的是,其他人看到了完全相反的行为。请告诉我们您的结果如何。下面在 2.2.x 和 2.0.x 部分中都对此进行了更多介绍,因为解决方案需要使用不同的补丁。
警告!在直接安装任何这些工具之前,需要提到的是,网络安全可能是任何 PORT FORWARD 工具的一个问题。原因是这些工具基本上在强大的数据包防火墙中为所需的 TCP/UDP 端口创建了一个漏洞。虽然这对您的 Linux 机器没有任何威胁,但对于 PORTFWed 内部机器来说可能是一个问题。不过不用担心,这是 Steven Clarke(IPPORTFW 的作者)对此的看法
"Port Forwarding is only called within masquerading functions so it fits inside the same IPFWADM/IPCHAINS rules. Masquerading is an extension to IP forwarding. Therefore, ipportfw only sees a packet if it fits both the input and masquerading ipfwadm rule sets." |
用英语来说,这意味着如果您运行强大的数据包防火墙,PORTFW 不会直接绕过任何安全措施。如果您愿意,您仍然可以允许或拒绝特定 IP 和/或域访问此新的 PORTFWed 资源。
综上所述,拥有强大的防火墙规则集非常重要。请参阅第 6.4.1 节、第 6.4.2 节和第 6.4.3 节,了解有关获取强大规则集的更多详细信息。
2.6.x 和 2.4.x 内核已内置 PORTFW 功能,使用 IPTABLES 工具。2.2.x 和 2.0.x 内核用户将需要重新编译 Linux 内核以支持 PORTFW。应该注意的是,某些 Linux 发行版内核可能已经为您完成了此操作。
最新的 2.2.x 内核用户已经可以使用 PORTFW 内核选项,但您可能仍然需要通过正常的内核“make”过程重新编译内核。
2.0.x 用户将需要应用一个简单的内核选项补丁才能访问,然后通过正常的内核“make”过程启用它。
如前所述,端口转发或“PORTFW”允许将来自网络外部的单个或一系列 TCP/IP 端口转发到内部网络。
与之前的所有 Linux 内核不同,2.6.x 和 2.4.x 系列内核现在允许在“iptables”工具本身内实现完整的 PORTFW、PORTFW FTP 和 PORTFW REDIR 功能。
注意:一旦您在端口 80 上启用端口转发器(将 WWW 流量通过 MASQ 服务器转发到内部 WWW 服务器),Linux IP 伪装服务器本身将不再使用该端口。更具体地说,如果您在 MASQ 服务器上已经运行了 WWW 服务器,则启用 PORTFW 后,所有 Internet 用户现在都可以访问来自 -INTERNAL- WWW 服务器的 WWW 页面,而不是您的 IP MASQ 服务器上的页面。
要在 IPTABLES(2.6.x 或 2.4.x 内核)上启用端口转发
编辑 /etc/rc.d/rc.firewall-iptables 规则集,并将下面显示的行放在 "FWD:允许所有出站连接,以及仅允许现有和相关的入站连接" 行(在“可选 FORWARD 部分”)之上。请务必将单词“$EXTIP”替换为您特定的 Internet IP 地址。
注意:与 2.2.x 和 2.0.x 内核不同,PORTFWed 流量不遍历 INPUT 或 OUTPUT 规则。它仅遍历 FORWARD 规则。
注意:如果您从 ISP(PPP、DSL、有线调制解调器等)获得动态分配的 TCP/IP 地址,则您无法在启动时加载此强大的规则集。您要么需要在每次获得新 IP 地址时重新加载此防火墙规则集,要么使您的 /etc/rc.d/rc.firewall-ipchains-stronger 规则集更智能。要为 PPP 或 DHCP 用户等各种类型的连接执行此操作,请参阅第 7.8 节 FAQ 条目以获取所有详细信息。
/etc/rc.d/rc.firewall-*
#echo "Enabling PORTFW Redirection on the external LAN.." # # This will forward ALL port 80 traffic from the external IP address # to port 80 on the 192.168.0.10 machine # # Be SURE that when you add these new rules to your rc.firewall-*, you # add them before a direct or implict DROP or REJECT. # PORTFWIP="192.168.0.10" # NOTE: If you are using the basic rc.firewall-iptables ruleset, you # will need to enable the following EXTIP option. Users of the # rc.firewall-iptables-stronger ruleset already have this defined. # # *PLEASE* look over the rc.firewall-iptables-stronger ruleset for more # specific issues regarding dynamic vs. static IP addresses # # # Determine the external IP automatically: # ---------------------------------------- # # The following line will determine your external IP address. This # line is somewhat complex and confusing but it will also work for # all NON-English Linux distributions: # # DISABLED by default -- to enable, REMOVE both the "#" characters below # #EXTIP="`$IFCONFIG $EXTIF | $AWK \ #/$EXTIF/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'`" # Allow forwarding of new and existing port 80 connections from the external # interface. This rule is required as our default FORWARD policy is DENY. # $IPTABLES -A FORWARD -i $EXTIF -o $INTIF -p tcp --dport 80 -m state \ --state NEW,ESTABLISHED,RELATED -j ACCEPT #Enable PORTFW of this port 80 traffic from the external interface # $IPTABLES -A PREROUTING -t nat -p tcp -d $EXTIP --dport 80 -m state \ --state NEW,ESTABLISHED,RELATED -j DNAT --to $PORTFWIP:80 |
就是这样!只需重新运行您的 /etc/rc.d/rc.firewall-iptables 规则集并进行测试!如果您想了解更多相关信息,请参阅第 7.19 节
--------------------------------------------------------------------------
正在运行 rc.firewall-iptables-stronger 规则集?对您有好处!要使用此规则集运行 PORTFW,这非常容易。以下示例是将 HTTP (WWW) 流量 PORTFWed 到 $PORTFWIP 变量指示的 IP 地址
获取上面显示的规则集行(用于通用 rc.firewall-* 规则集),并将它们放在 "#FORWARD 启用转发,从而启用 IPMASQ" 注释行之后。还应该注意的是,对于基于 2.4 的内核,您不必启用“可选 ‘INPUT’ 部分”下的“HTTPD”规则。对于 2.4 内核,如果您希望允许 HTTP 流量在 MASQ 服务器自己的本地 httpd 进程(通常是 Apache)上终止,则仅使用这些行。
PORTFW FTP:如果您已将“ip_conntrack_ftp”和“ip_nat_ftp”内核模块加载到内核空间(如 rc.firewall-iptables 脚本中已完成的那样),则像上面所示的端口“21”的简单 PREROUTING 命令应该可以解决问题。这比旧的 IPCHAINS / IPFWADM 工具 для 2.2.x / 2.0.x 内核的配置容易得多!
请注意,如果您设置 PORTFW 将流量重定向到在非标准 FTP 端口(例如端口 8021 而不是通常的端口 21)上运行的内部 FTP 服务器,则您必须告知“ip_conntrack_ftp”模块注意新的 FTP 端口。进行此配置更改的原因是 FTP 不是 NAT 友好的协议。通过告知 FTP NAT 模块有关此非标准 FTP 端口的信息,NAT 模块可以再次完成其工作。要启用此功能,请编辑您的 rc.firewall-* 文件,并将 FTP 模块的加载更改为如下所示
/sbin/insmod ip_conntrack_ftp ports=21,8021 |
PORTFW 重定向内部请求
过去,如果用户将外部 IP 地址上的端口 80 PORTFWed 到某些内部机器,则只有 Internet 上的机器才能正确访问此内部 WWW 服务器。如果您尝试通过 MASQ 服务器的外部地址联系此内部 WWW 服务器,则会失败。幸运的是,所有 Linux 内核都有解决方法。用于 2.6.x 和 2.4.x 内核的 IPTABLES 本机支持此功能。用于 2.2.x 内核的 IPCHAINS 支持和用于 2.0.x 内核的 IPFWADM 支持需要使用外部 REDIR 工具(当前 HOWTO 中未涵盖)。对于那些对 IPTABLES 相当了解的人,经验法则是 PREROUTING/DNAT 规则用于从外部机器启用 PORTFW,而 POSTROUTING/SNAT 规则用于从内部机器启用 PORTFW。
为了支持来自内部主机的此类重定向,请在 rc.firewall-* 文件中的“捕获所有”FORWARD 规则之上添加如下所示的规则。以下示例会将所有外部以及内部 WWW 流量重定向到标记为 PORTFWIP (192.168.0.10) 的内部机器。此流量将具有 IP Masq 服务器的内部 IP 地址的源 IP 地址。请更改 PORTFWIP 变量的 IP 地址以反映您的特定配置
#The following rule should be configured in *addition* to the above rule # for enabling external to internal PORTFWing $IPTABLES -t nat -A POSTROUTING -d $PORTFWIP -s $INTLAN -p tcp \ --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j SNAT \ --to $INTIP |
首先,确保您已将最新的 2.2.x 内核解压缩到 /usr/src/kernel/linux 中。如果您尚未执行此操作,请参阅第 3.2.2 节以获取完整详细信息。接下来,从第 2.7 节下载“ipmasqadm.c”程序到 /usr/src/kernel 目录中。
接下来,您需要按照第 3.2.2 节中所示编译 2.2.x 内核。配置内核时,请务必对 IPPORTFW 选项说“是”。内核编译完成后并重新启动后,返回到本节。
现在,编译并安装 IPMASQADM 工具
cd /usr/src tar xzvf ipmasqadm-x.tgz cd ipmasqadm-x make make install |
现在,对于此示例,我们将允许所有 WWW Internet 流量(端口 80)命中您的 Internet TCP/IP 地址,并将其转发到 IP 地址为 192.168.0.10 的内部伪装机器。
PORTFW FTP:如上所述,有两种解决方案可以将 FTP 服务器流量转发到内部 MASQed PC。第一个解决方案是一个 BETA 级别的 IP_MASQ_FTP 模块,用于 2.2.x 内核,用于 PORT 转发 FTP 连接到内部 MASQed FTP 服务器。另一种方法是使用 FTP 代理程序(URL 在第 2.7 节中)。还应该注意的是,FTP 内核模块还支持动态添加额外的 PORTFW FTP 端口,而无需卸载和重新加载 IP_MASQ_FTP 模块,从而不会中断任何现有的 FTP 传输。您可以在 IPMASQ WWW 站点 http://ipmasq.webhop.net; 找到有关此新代码的更多信息。在 2.0.x 内核部分下面的示例和一些关于 PORTFWed FTP 连接的附加信息。
注意:一旦您在端口 80 上启用端口转发器,Linux IP 伪装服务器将不再使用该端口。更具体地说,如果您在 MASQ 服务器上已经运行了 WWW 服务器,则端口转发现在将为所有 Internet 用户提供来自 -INTERNAL- WWW 服务器的 WWW 页面,而不是您的 IP MASQ 服务器上的页面。
无论如何,要为 HTTPd 启用端口转发
编辑 /etc/rc.d/rc.firewall-* 规则集,并在 INPUT 和 OUTPUT 子部分中都启用“可选”的“HTTP”部分。
在 "ipchains -P forward DENY" 规则(在“可选 FORWARD 部分”)下方添加以下所示的行。请务必将“$EXTIP”变量的内容替换为 IPMASQ 服务器上的外部 Internet IP 地址。
注意 #2:如果您从 ISP(PPP、DSL、有线调制解调器等)获得动态分配的 TCP/IP 地址,则您无法在启动时加载此强大的规则集。您要么需要在每次获得新 IP 地址时重新加载此防火墙规则集,要么使您的 /etc/rc.d/rc.firewall-ipchains-stronger 规则集更智能。要为 PPP 或 DHCP 用户等各种类型的连接执行此操作,请参阅第 7.8 节 FAQ 条目以获取所有详细信息。
/etc/rc.d/rc.firewall-*
#echo "Enabling IPPORTFW Redirection on the external LAN.." # # This will forward ALL port 80 traffic from the external IP address # to port 80 on the 192.168.0.10 machine # PORTFWIP="192.168.0.10" /usr/sbin/ipmasqadm portfw -f /usr/sbin/ipmasqadm portfw -a -P tcp -L $EXTIP 80 -R $PORTFWIP 80 |
就是这样!只需重新运行您的 /etc/rc.d/rc.firewall-* 规则集并进行测试!
如果您收到错误消息“ipchains: setsockopt failed: Protocol not available”,则表示您没有运行新的 IPPORTFW 启用的内核。确保您已将新内核移动过来,重新运行 LILO,然后再次重新启动。如果您确定您正在运行新内核,请运行命令“ls /proc/net/ip_masq”并确保“portfw”文件存在。如果不存在,则表示您在配置内核时一定犯了一个错误。请重试。
PORTFW 重定向内部请求
应该提到的是,本 IPMASQ HOWTO 目前没有提供任何关于如何使用 REDIR 工具的解释或示例。如果您需要帮助为 2.2.x 内核设置它,请给我发送电子邮件。对于那些想了解为什么 PORTFW 无法为外部和内部接口重定向流量(REDIR 工具修复了什么)的人,以下是 Juanjo 的一封电子邮件,可以更好地解释它。
From Juanjo Ciarlante -- >If I use: > > ipmasqadm portfw -a -P tcp -L 1.2.3.4 80 -R 192.168.2.3 80 > >Everything works great from the outside but internal requests for the same >1.2.3.4 address fail. Are there chains that will allow a machine on localnet >192.168.2.0 to accesss www.periapt.com without using a proxy? Actually not. I usually setup a ipmasqadm rule for outside, *AND* a port redirector for inside. This works because ipmasqadm hooks before redir will get the eventual outside connection, _but_ leaves things ok if not (stated by APPROPIATE rules). The actual "conceptual" problem comes from the TRUE client (peer) IP goal (thanks to masq) being in the same net as target server. The failing scenario for "local masq" is : client: 192.168.2.100 masq: 192.168.2.1 serv: 192.168.2.10 1)client->server packet a) client: 192.168.2.100:1025 -> 192.168.2.1:80 [SYN] b) (masq): 192.168.2.100:1025 -> 192.168.2.10:80 [SYN] (and keep 192.168.2.1:61000 192.168.2.100:1025 related) c) serv: gets masqed packet (1b) 2)server->client packet a) serv: 192.168.2.10:80 -> 192.168.2.100:1025 [SYN,ACK] b) client: 192.168.2.100:1025 -> 192.168.2.10:80 [RST] Now take a moment to compare (1a) with (2a). You see, the server replied DIRECTLY to client bypassing masq (not letting masq to UNDO the packet hacking) because it is in SAME net, so the client resets the connection. hope I helped. Warm regards Juanjo |
首先,确保您已将最新的 2.0.x 内核解压缩到 /usr/src/kernel 中。如果您尚未执行此操作,请参阅第 3.2.3 节以获取完整详细信息。接下来,从第 3.2.3 节下载“ipportfw.c”程序和“subs-patch-x.gz”内核补丁到 /usr/src/ 目录中。
注意:请将“subs-patch-x.gz”文件名中的“x”替换为站点上可用的最新版本。
接下来,如果您计划将 FTP 流量端口转发到内部服务器,则必须应用一个额外的新 IP_MASQ_FTP 模块补丁,该补丁在第 3.2.3 节中找到。有关此的更多详细信息在本节稍后部分。请注意,这与 2.2.x 内核的补丁不是同一个补丁,因此某些功能(例如动态 FTP PORT 功能)不存在。
现在,将 IPPORTFW 补丁 (subs-patch-x.gz) 复制到 Linux 目录中
cp /usr/src/subs-patch-1.37.gz /usr/src/linux |
接下来,应用内核补丁以创建 IPPORTFW 内核选项
cd /usr/src/linux zcat subs-patch-1.3x.gz | patch -p1 |
好的,是时候按照第 3.2.3 节中所示编译内核了。配置内核时,请务必对现在可用的 IPPORTFW 选项说“是”。内核编译完成后并重新启动后,返回到本节。
现在使用新编译的内核,请编译并安装实际的“IPPORTFW”程序
cd /usr/src gcc ipportfw.c -o ipportfw mv ipportfw /usr/local/sbin |
现在,对于此示例,我们将允许所有 WWW Internet 流量(端口 80)命中您的 Internet TCP/IP 地址,然后将其转发到 IP 地址为 192.168.0.10 的内部伪装机器。
注意:一旦您在端口 80 上启用端口转发器,Linux IP 伪装服务器将不再使用该端口。更具体地说,如果您在 MASQ 服务器上已经运行了 WWW 服务器,然后您将端口 80 端口转发到内部 MASQed 计算机,则所有 Internet 用户都将看到来自 -INTERNAL- WWW 服务器的 WWW 页面,而不是您的 IP MASQ 服务器上的页面。这只会对您的内部 MASQ 机器执行到其他端口(例如 8080)的端口转发。虽然这会起作用,但所有 Internet 用户都必须在 URL 中附加 :8080 才能联系内部 MASQed WWW 服务器。
无论如何,要启用端口转发,请编辑 /etc/rc.d/rc.firewall-* 规则集。添加以下行,但请务必将单词“$extip”替换为您的 Internet IP 地址。
注意 #2:如果您从 ISP(PPP、DSL、有线调制解调器等)获得动态分配的 TCP/IP 地址,则您无法在启动时加载此强大的规则集。您要么需要在每次获得新 IP 地址时重新加载此防火墙规则集,要么使您的 /etc/rc.d/rc.firewall-ipchains-stronger 规则集更智能。要为 PPP 或 DHCP 用户等各种类型的连接执行此操作,请参阅第 7.8 节 FAQ 条目以获取所有详细信息。
/etc/rc.d/rc.firewall-*
#echo "Enabling IPPORTFW Redirection on the external LAN.." # # This will forward ALL port 80 traffic from the external IP address # to port 80 on the 192.168.0.10 machine # /usr/local/sbin/ipportfw -C /usr/local/sbin/ipportfw -A -t$extip/80 -R 192.168.0.10/80 |
就是这样!只需重新运行您的 /etc/rc.d/rc.firewall-* 规则集并进行测试!
如果您收到错误消息“ipfwadm: setsockopt failed: Protocol not available”,则表示您没有运行新内核。确保您已将新内核移动过来,重新运行 LILO,然后再次重新启动。
端口转发 FTP 服务器
如果您计划将 FTP 端口转发到内部机器,事情会变得更加复杂。原因是标准的 IP_MASQ_FTP 内核模块不是为此编写的,尽管一些用户报告说它工作正常。就我个人而言,在没有补丁的情况下,我听说超过 30 分钟的扩展文件传输将会失败,而其他用户则发誓它工作完美。无论如何,我建议您使用 STOCK ip_masq_ftp 模块尝试以下 PORTFW 指令,看看它是否对您有效。如果它不起作用,请尝试使用修改后的 ip_masq_ftp 模块。
对于那些需要该模块的人,Fred Viles 编写了一个修改后的 IP_MASQ_FTP 模块来使事情正常工作。如果您好奇到底有哪些问题,请下载以下存档,因为 Fred 记录得非常详细。还要理解,此补丁在某种程度上是实验性的,应将其视为实验性的。应该注意的是,此补丁仅适用于 2.0.x 内核,尽管 2.2.x 内核有不同的补丁可用。
因此,要使 2.0.x 补丁工作,您需要
首先,如本节前面所示,应用 IPPORTFW 内核补丁。
从 Fred Viles 的 FTP 服务器在 第 3.2.3 节下载“msqsrv-patch-36”,并将其放入 /usr/src/linux 中。
通过运行“cat msqsrv-patch-36 | patch -p1”使用此新代码修补内核
接下来,将原始的 "ip_masq_ftp.c" 内核模块替换为新的内核模块
mv /usr/src/linux/net/ipv4/ip_masq_ftp.c /usr/src/linux/net/ipv4/ip_masq_ftp.c.orig
mv /usr/src/linux/ip_masq_ftp.c /usr/src/linux/net/ipv4/ip_masq_ftp.c
最后,构建并安装包含此新代码的内核。
完成此操作后,编辑 /etc/rc.d/rc.firewall-* 规则集并添加以下行,但请务必将单词“$extip”替换为您的 Internet IP 地址。
与上面的示例一样,此示例将允许所有 FTP Internet 流量(端口 21)命中您的 Internet TCP/IP 地址,然后将其转发到 IP 地址为 192.168.0.10 的内部伪装机器。
注意:一旦您在端口 21 上启用端口转发器,Linux IP 伪装服务器将不再使用该端口。更具体地说,如果您在 MASQ 服务器上已经运行了 FTP 服务器,则端口转发现在将为所有 Internet 用户提供来自 -INTERNAL- FTP 服务器的 FTP 文件,而不是您的 IP MASQ 服务器上的文件。
/etc/rc.d/rc.firewall-*
#echo "Enabling IPPORTFW Redirection on the external LAN.." # /usr/local/sbin/ipportfw -C /usr/local/sbin/ipportfw -A -t$extip/21 -R 192.168.0.10/21 #NOTE: If you are using multiple local port numbers to PORTFW # to multuple internal FTP servers (say, 21, 2121, 2112, # etc, you need to configure the ip_masq_ftp nodule to # listen to these ports. To do this, edit the # /etc/rc.d/rc.firewall-* script as shown in this HOWTO # to look like: # # /sbin/modprobe ip_masq_ftp ports=21,2121,2112 # # Re-run the /etc/rc.d/rc.firewall-* script for these changes to # take effect. #Please note that PORTFWing port 20 is probably NOT required # for ACTIVE connections as the internal FTP server will # initiate this port 20 connection and it will be properly # handled by the classic MASQ mechanisms. |
就是这样!只需重新运行您的 /etc/rc.d/rc.firewall-* 规则集并进行测试!
PORTFW 重定向内部请求
尚不清楚 REDIR 工具是否会针对旧版 2.0.x 内核进行编译或工作。还应该提到的是,本 IPMASQ HOWTO 目前没有提供任何关于如何使用 REDIR 工具的解释或示例。如果您需要帮助设置它,请给我发送电子邮件。如果您想了解有关 REDIR 的更多信息,请参阅上面关于 2.2.x 内核的部分。