📄 ip-masquerade-howto-4.html
字号:
ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o</PRE><P>你可以使用 -I, -O 或是 -F 来控制到某特定节点的流量。记得这些规则集是由上往下扫描的而 -a 代表"附加(append)"到目前现有的规则集中所以任何限制必须在全域(global)规则之前出现。例如(没测试过) :-<P>使用 -I 规则。可能是速度最快的但是它只能阻止区域网络里的机器,防火墙本身仍然可以存取"禁止"的节点。当然你可能想允许这样的组合。<P><P><PRE>... start of -I rules ...# 拒绝并记录本地界面,区域网络里的机器通往 204.50.10.13ipfwadm -I -a reject -V 192.168.255.1 -S 192.168.0.0/16 -D 204.50.10.13/32 -o# 本地界面,区域网络里的机器,允许通往任何地方ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0... end of -I rules ...</PRE><P>使用 -O 规则。最慢,因为封包首先经过伪装但这个规则阻止防火墙存取禁止的节点。<P><PRE>... start of -O rules ...# 拒绝并记录送出至 204.50.10.13 的资料ipfwadm -O -a reject -V your.static.PPP.address -S your.static.PPP.address/32 -D 204.50.10.13/32 -o# 允许任何其它远端界面送出的东西ipfwadm -O -a accept -V your.static.PPP.address -S your.static.PPP.address/32 -D 0.0.0.0/0... end of -O rules ...</PRE><P>使用 -F 规则。可能比 -I 慢而这仍然只能阻止伪装的机器(例如内部的机器),防火墙仍然可以取得禁止的节点。<P><PRE>... start of -F rules ...# 拒绝并记录 PPP 界面送出从区域网络到 204.50.10.13 的资料。ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/16 -D 204.50.10.13/32 -o# 伪装本地界面从区域网络送出至任何地方的资料。ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0... end of -F rules ...</PRE><P>不需要有个特定的规则来允许 192.168.0.0/16 通往 204.50.11.0, 这涵盖于全域规则中。<P>有一种以上的方法可以对界面设定上述规则。例如可以使用 -W eth0 来取代 -V 192.168.255.1,可以使用 -W ppp0 来取代 -V your.static.PPP.address。个人的选择最重要。<P><P><H2><A NAME="ss4.5">4.5 IP 防火墙链 (ipchains)</A></H2><P>这个主要是给 2.2.x 核心使用的防火墙规则管理工具(加上一个修补档後也可在 2.0.x 上运作)。<P>我们会尽快更新此节,给一些使用 ipchains 的□例。<P>细节请参考 <A HREF="javascript:if(confirm('http://www.rustcorp.com/linux/ipchains/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.rustcorp.com/linux/ipchains/'" tppabs="http://www.rustcorp.com/linux/ipchains/">Linux IP Firewalling Chains page</A> 以及<A HREF="javascript:if(confirm('http://metalab.unc.edu/mdw/HOWTO/IPCHAINS-HOWTO.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://metalab.unc.edu/mdw/HOWTO/IPCHAINS-HOWTO.html'" tppabs="http://metalab.unc.edu/mdw/HOWTO/IPCHAINS-HOWTO.html">Linux IPCHAINS HOWTO</A>。<P><P><H2><A NAME="ss4.6">4.6 IP Masquerade 以及需求式拨接(Demand-Dial-Up)</A></H2><P><OL><LI>如果你想把网络设定成自动拨接上网际网路,那麽 <EM>diald</EM> demand 拨接套件将会是很棒的工具。</LI><LI>要设定 diald, 请查看 <A HREF="javascript:if(confirm('http://home.pacific.net.sg/~harish/diald.config.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://home.pacific.net.sg/~harish/diald.config.html'" tppabs="http://home.pacific.net.sg/~harish/diald.config.html">Setting Up Diald for Linux Page</A> 网页</LI><LI>一旦 diald 以及 IP masq 设定完成,你可以在任何客户端机器上启动 web, telnet 或是 ftp 连线。</LI><LI>Diald 将会侦测到进入系统的请求,然後拨接到你的 ISP 并建立连线。</LI><LI>第一次连线将会发生逾时(timeout) 的情形。如果你使用类比式的数据机那这是无可避免的。建立数据机连结以及 PPP 连线所花费的时间将会使你的客户端软件不耐。如果你使用 ISDN 连线那这是可以避免的。你得做的只是结束客户端软件现行的程序再重新启动即可。</LI></OL><P><P><H2><A NAME="ss4.7">4.7 IPautofw 封包转送程序</A></H2><P><A HREF="javascript:if(confirm('ftp://ftp.netis.com/pub/members/rlynch/ipautofw.tar.gz \n\nThis file was not retrieved by Teleport Pro, because it did not meet the project\'s file type specifications. \n\nDo you want to open it from the server?'))window.location='ftp://ftp.netis.com/pub/members/rlynch/ipautofw.tar.gz'" tppabs="ftp://ftp.netis.com/pub/members/rlynch/ipautofw.tar.gz">IPautofw</A> 是一个给 Linux masquerading 使用的一般性 TCP 及 UDP 转送程序。一般使用需要 UDP 的套件的时候,需要载入特定的 ip_masq 模块;ip_masq_raudio, ip_masq_cuseeme,... Ipautofw 以更一般化的方式运作,它将会转送包含这些应用程序特定模块都不会转送的任何资料流型态。如果没有正确地管理这可能造成安全上的漏洞。<P><P><H2><A NAME="ss4.8">4.8 CU-SeeMe 与 Linux IP-Masquerade 的简短说明</A></H2><P><P>由 <A HREF="mailto:mikey@swampgas.com">Michael Owings</A> 所提供。<P><H3>简介</H3><P><P><BLOCKQUOTE>本节解释让 CU-SeeMe (包括 Cornell 及 White Pine 版本) 与 Linux 的 IP 伪装功能一起运作的方法。</BLOCKQUOTE><P>CU-SeeMe 是一个桌上视讯会议的软件,有 Windows 及 Macintosh 两种客户端。一个免费的版本可从<A HREF="javascript:if(confirm('http://cu-seeme.cornell.edu/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://cu-seeme.cornell.edu/'" tppabs="http://cu-seeme.cornell.edu/">Cornell University</A>取得。商业的加强版可从<A HREF="javascript:if(confirm('http://www.wpine.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.wpine.com/'" tppabs="http://www.wpine.com/">White Pine Software</A>取得。<P>IP 伪装允许一部或更多部在区域网络上的工作站"伪装"在一部连接到网际网路的 Linux 主机之後。区域网络内的工作站可以几乎透通地取用网际网路,即使它没有合法的 IP 地址。Linux 主机重写从内部网络到网际网路的外送封包,使它们看起来就像是从这部 Linux 机器发出的一样。送进来的回应封包也被改写并转送至内部网络的正确工作站上。这项安排使得许多网际网路的应用程序可以透通地从内部网路的工作站上执行。然而,对某些应用程序来说(像 CU-SeeMe), Linux 的伪装程序需要一些小技巧的辅助才能使得封包转送得以正确运作。这些辅助技巧通常来自于某些特殊的核心可载入模块。关于 IP-Masquerading 的更多信息,请参考<A HREF="javascript:if(confirm('http://www.indyramp.com/masq/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.indyramp.com/masq/'" tppabs="http://www.indyramp.com/masq/">The Linux IP Masquerading Website</A>。<P><H3>让它运作</H3><P>首先你需要适当地配置核心。你应该加入 IP-Masquerading 及 IP AutoForwarding的完整支持。IP Autoforwarding 出现在 2.0.30 及其後的核心选项 -- 更早的核心你需要修补档。参见<A HREF="javascript:if(confirm('http://ipmasq.cjb.net/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://ipmasq.cjb.net/'" tppabs="http://ipmasq.cjb.net/">Linux IP Masquerade Resource</A> 关于 IP-Autoforwarding 的信息指引。<P>接下来,你要取得最新版本的 <CODE>ip_masq_cuseeme.c</CODE>。这可经由匿名 FTP 从<A HREF="javascript:if(confirm('ftp://ftp.swampgas.com/pub/cuseeme/ip_masq_cuseeme.c \n\nThis file was not retrieved by Teleport Pro, because it did not meet the project\'s file type specifications. \n\nDo you want to open it from the server?'))window.location='ftp://ftp.swampgas.com/pub/cuseeme/ip_masq_cuseeme.c'" tppabs="ftp://ftp.swampgas.com/pub/cuseeme/ip_masq_cuseeme.c">ftp://ftp.swampgas.com/pub/cuseeme/ip_masq_cuseeme.c</A>取得。这个新的模块也已经加入 2.0.31 的核心之中。你可以用新的版本来取代核心中的版本。<CODE>ip_masq_cuseeme.c</CODE> 通常位于 Linux 核心原始码的 <CODE>net/ipv4</CODE> 目录中。你必须编译并安装此模块。<P>接下来,你必须建立 UDP 埠号 7648-7649 的自动转送如下:<P><BLOCKQUOTE><CODE><PRE>ipautofw -A -r udp 7648 7649 -c udp 7648 -u</PRE></CODE></BLOCKQUOTE>或<BLOCKQUOTE><CODE><PRE>ipautofw -A -r udp 7648 7649 -h www.xxx.yyy.zzz </PRE></CODE></BLOCKQUOTE><P>第一个形式允许呼叫利用埠号 7648 (主要的 cu-seeme 埠号)进出工作站。第二个使用 ipautofw 的方式仅允计 cu-seeme 进出 www.xxx.yyy.zzz。我较喜欢前面这种形式,因为它更有弹性而且没有必要指定一个特别的工作站 IP。然而,这个方式会要求一工作站能收到呼叫前先送出呼叫。<P>注意这两种方式都将客户端机器的 UDP 埠号 7648-7649 开放给外界 --虽然这不至于有严重的安全危险,你还是应特别小心。<P>最後,以下法载入新的 <CODE>ip_masq_cuseeme</CODE> 模块:<P><PRE>modprobe ip_masq_cuseeme </PRE><P>现在你可以从你区域网络上一部被伪装的机器上执行 CU-SeeMe 并连接到远端的回应器(reflector)上,或另一个 CU-SeeMe 的使用者。你应该也可以收到呼叫。注意外界的呼叫者必须使用你 Linux 匣道器的 IP, 而不是被伪装工作站的 IP。<P><H3>限制/警告</H3><P><P><H3>密码保护的回应器</H3><P>目前没有任何办法使用。White Pine 使用来源 IP (由客户端程序计算)在传送前将密码编码保护。因为我们改写了位址,回应器使用错误的来源 IP 来解码,因此得到不正确的密码。除非 White Pine 改变他们密码编码的策略(我已经建议过了),或是他们愿意开放他们密码编码的公式以便让我能加到 <CODE>ip_masq_cuseeme</CODE>。由于後面一个办法的可能性很小,因此我非常鼓励看到这份文件的人与 White Pine 联络并建议他们采用前一种作法。因为本页的流量相当满高的,我怀疑我们能否产生足够的电子邮件以使此问题能进入 White Pine 的优先处理名单中。<P>感谢 Thomas Griwenka 提醒我这件事。<P><H3>执行回应器</H3><P>你不能尝试在你跑 <CODE>ip_masq_cuseeme</CODE> 及 ipautoforwarding 埠号 7648 的相同机器上执行回应器(reflector)。这没有用,因为两者都需要配置埠号 7648。或者用另一部可直达网际网路的主机来执行,或是在执行回应器前卸下 CU-SeeMe 的客户端支持。<P><H3>多 CU-SeeMe 使用者</H3><P>你不能一次有多位 CU-SeeMe 使用者同时在一个区域网络上面。这是由于 CU-SeeMe 顽固地坚持使用埠号 7648, 使得在区域网络内一次仅能有一台工作站能(容易地)被重导向。<P>使用 -c (control port) 来呼叫 <CODE>ipautofw</CODE>, 你可以避免指定一固定的工作站位址去使用 CU-SeeMe --第一部使用控制埠号 7648 送出任何东西的工作站会被指定为接收来自埠号 7648-7649 的流量。如果经过五分钟左右这部工作站不再使用埠号 7648, 另一部工作站就可接著使用。<P><H3>协助设定 CU-SeeMe</H3><P><P>若有任何评论或问题请写信到<A HREF="mailto:mikey@swampgas.com">mikey@swampgas.com</A>。或者如果你愿意的话,你可以<A HREF="javascript:if(confirm('http://www.swampgas.com/vc/vc.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.swampgas.com/vc/vc.htm'" tppabs="http://www.swampgas.com/vc/vc.htm">透过 CU-SeeMe 来呼叫我</A>。<P><P><H2><A NAME="ss4.9">4.9 其它相关工具</A></H2><P>我们会尽快更新此节加上更多其它伪装相关的工具如 ipportfw 以及 masqadmin。<P><P><P><HR><A HREF="IP-Masquerade-HOWTO-5.html" tppabs="http://www.linux.org.tw/CLDP/gb/IP-Masquerade-HOWTO-5.html"><IMG SRC="next.gif" tppabs="http://www.linux.org.tw/CLDP/gb/img/next.gif" ALT="Next"></A><A HREF="IP-Masquerade-HOWTO-3.html" tppabs="http://www.linux.org.tw/CLDP/gb/IP-Masquerade-HOWTO-3.html"><IMG SRC="prev.gif" tppabs="http://www.linux.org.tw/CLDP/gb/img/prev.gif" ALT="Previous"></A><A HREF="IP-Masquerade-HOWTO.html#toc4" tppabs="http://www.linux.org.tw/CLDP/gb/IP-Masquerade-HOWTO.html#toc4"><IMG SRC="toc.gif" tppabs="http://www.linux.org.tw/CLDP/gb/img/toc.gif" ALT="Contents"></A> </BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -