IP Masquerade mini HOWTO
2005-04-15 11:38:31 来源:WEB开发网核心提示:作者:AmbroseAuambrose@writeme.com 译者:AsdL.Chenasdchen@ms1.hinet.net v1.20,10November1997翻译日期:19November1997 这份文件描述如何在一台linux主机上起动ipMasquerade功能,允许没有注册网际网路IP位址的连线
作者: Ambrose Au ambrose@writeme.com
译者: Asd L. Chen asdchen@ms1.hinet.net
v1.20, 10 November 1997 翻译日期: 19 November 1997
--------------------------------------------------------------------------------
这份文件描述如何在一台 linux 主机上起动 ip Masquerade 功能,允许没有注册网际网路 IP 位址的连线电脑经由你的 Linux 机器连接网际网路.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
1. 简介
1.1 简介
这份文件描述如何在一台 Linux 主机上起动 IP Masquerade 功能,允许没有注册网际网路 IP 位址的连线电脑经由你的 Linux 机器连接网际网路.你的机器可能是以乙太网路连接 Linux, 也可能是其它种类,像是拨接的点对点(ppp) 连线.这份文件将会强调乙太网路连线的情况,因为这应该是最常见的案例.
这份文件倾向给使用 2.0.x 核心的使用者参考,不包含发展中的 2.1.x 核心.
1.2 前言,回馈 & 参考资讯
我发现新手在较新的核心上,像是 2.x 核心,设定 IP Masguerade 时非常困惑.虽然有份常见问答集(FAQ) 与邮递列表(mailing list),然而没有一份这方面的专门文件;而且在邮递列表上有些对於这样一份说明文件(HOWTO) 的请求.所以,我决定撰写它给所有新手作为一个起点,并且希望能抛砖引玉,作为那些非常了解它的使用者建立文件的基础.如果你认为我做的不好,不要在意告诉我,这样我能把它做得更好.
这份文件很多是以原先 Ken Eves 的常见问答集以及 IP Masquerade 邮递列表里许多有帮助的讯息作为基础.特别感谢 Mr. Matthew Driver 在邮递列表中的讯息引发我设立 IP Masquerade 的灵感以及最後撰写了这份文件.
如果我的任何资讯有误或遗漏任何资讯,请别介意把任何回馈或意见寄到 ambrose@writeme.com 来.你的无价回馈将影响未来的这份说明文件!
这份说明文件是想作为让你的 IP Masquerade 能在最短时间内运作的快速指引.因为我不是一位专门作家,你可能会发现本文件的资讯并非如你想的那麽一般及客观.最新的消息以及资讯可以在我所维护的 IP Masquerade Resource 网页上找到.如果你有任何关於 IP Masquerade 的技术问题,请加入 IP Masquerade 邮递列表而别寄电子邮件给我,因为我的时间有限,而且 IP Masquerade 的发展者们更有能力回答你的问题.
这份文件最新的版本可以在 IP Masquerade Resource 上找到,里面也有 HTML 以及 postscript 的版本:
http://ipmasq.home.ml.org/
请参考 IP Masquerade Resource 映射站台列表 以找到其它的映射站台.
1.3 版权 & 宣告
这份文件版权属於 Ambrose Au, 而且是免费的文件.你可以在 GNU 的通用公开授权方式下散播它.
这份文件中的资讯跟其它内容都已经尽了我最大的努力.无论如何,IP Masquerade 是实验性的,而且我也可能会犯些错误;所以你应该自己决定是不是要照著这份文件中的资讯做.
没有人会为使用这份文件中的资讯所造成的电脑损坏或其它损失负责.也就是说,
作者不对依照这份文件内容动作所造成的损害负责.
原文
This document is copyright(c) 1996 Ambrose Au, and it's a free document. You can redistribute it under the terms of the GNU General Public License.
The information and other contents in this document are to the best of my knowledge. However, ip_masq is experimental, and there is chance that I make mistakes as well; so you should determine if you want to follow the information in this document.
Nobody is responsible for any damage on your computers and any other losses by using the information on this document. i.e.
THE AUTHOR IS NOT RESPONSIBLE FOR ANY DAMAGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE INFORMATION IN THIS DOCUMENT.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
2. 背景知识
2.1 什麽是 IP Masquerade?
IP Masquerade 是 Linux 发展中的一种网路功能.如果一台 Linux 主机使用 IP Masquerade 功能连线到网际网路上,那麽接上它的电脑(不论是在同一个区域网路上或藉由数据机连线)也可以接触网际网路,即使它们没有获得正式指定的 IP 位址.
这使得一些电脑可以隐藏在闸道(gateway) 系统後面存取网际网路而不被发现,看起来就像只有这个系统在使用网际网路.突破设定良好的伪装(masquerade)系统之安全防护应该会比突破良好的封包过滤式防火墙(packet filter firewall)来得更加困难(假设两者之中都没有错误).
2.2 现况
IP Masquerade 仍然在实验阶段.无论如何,核心从 1.3.x 开始已经内建这项支援.许多个人甚至公司正在使用它,而有满意的结果.
浏览网页以及远端签入(telnet)已经有回报表示可以在 IP Masquerade 上运作.档案传输(FTP),网路交谈(IRC) 以及聆听 Real Audio 现在可以载入某些模组配合.其它的网路资料流音讯 (streaming audio) 像是 True Speech 以及 Internet Wave 也能运作.一些邮递列表中的使用夥伴甚至还尝试过视讯会议软体. Ping 现在配合新近可以取得的网际网路控制讯息协定(ICMP)修补档也能运作.
更完整的支援软体列表请参考 4.3 节.
IP Masquerade 在数种不同的作业系统及平台上与 '客户端机器' 配合良好.成功的案例有使用 Unix, Windows95, Windows NT, Windows for Workgroup (with TCP/IP package), OS/2, Macintosh System's OS with Mac TCP, Mac Open Transport, DOS with NCSA Telnet package, VAX, Alpha with Linux, 甚至 Amiga with AmiTCP 或 AS225-stack 的系统.
2.3 谁可以从 IP Masquerade 中获益?
如果你有台连接网际网路的 Linux 主机,而且
如果你有一些执行 TCP/IP 连接到 Linux 机器的电脑在区域网路上,以及/或是
如果你的 Linux 主机有一个以上的数据机并且作为 PPP 或 SLIP 伺服器连接其它电脑,它们
这些其它机器没有正式指定的 IP 位址.(这些机器从这里开始以後就称为其它机器)
而且当然,如果你希望这些其它机器不必花额外的费用就能连上网际网路 :)
2.4 谁不需要 IP Masquerade?
如果你的机器是单独一台(stand-alone) 连接网际网路的 Linux 主机,那麽执行 IP Masquerade 没什麽意义,或者
如果你的其它机器拥有正式指定的 IP 位址,那麽你就不需要 IP Masquerade
而且当然,如果你不喜欢免费使用(free ride) 这个主意的话.
2.5 IP Masquerade 是如何运作的?
节自 Ken eves 的 IP Masquerade FAQ:
这是大部分简单的设定草图:
SLIP/PPP +------------+ +-------------+
to PRovider | Linux | SLIP/PPP | Anybox |
<---------- modem1| |modem2 ----------- modem | |
111.222.333.444 | | 192.168.1.100 | |
+------------+ +-------------+
上面的草图中一台安装并执行 ip_masquerading 的 Linux
机器使用 modem1 经由 SLIP/or/PPP 连接网际网路.它有一个
指定的 IP 位址 111.222.333.444.它设定 modem2 允许拨接者
签入并起始 SLIP/or/PPP 连结.
第二个系统(不必是执行 Linux 的系统)拨接进入 Linux
机器并起始 SLIP/or/PPP 连结.它在网际网路上并没有指定的
IP 位址所以它使用 192.168.1.100.(参阅下述)
配合 ip_masquerade 及适当递送配置(routing configured)
Anybox 这台机器可以跟网际网路交流就如同它真的连在上面般
(除了少数例外).
节录 Pauline Middelink:
别忘记提到 ANYBOX 应该把 Linux 机器当作它的闸道(无论是
预设递送路径或只是个子网路都没关系).如果 ANYBOX 不能够
这样设, Linux 机器应该为所有要递送的位址做代理位址解析
析协定(proxy arp) 服务,但代理位址解析的设定超过这份文件
的□围.
下面节录自 comp.os.linux.networking 的一篇布告并且稍加编辑以
符合上述□例的用词:
。我告诉 ANYBOX 这台机器跑 slip 的 linux 机器是它的闸道.
。当一个封包从 ANYBOX 进入 linux 机器时,它会指定新的来源埠
号(source port number),把它自己的 ip 位址塞入封包的标头并
储存原来的.然後它将会藉由 SLIP/or/PPP 界面把修改过的封包
送上网际网路.
。当一个封包从网际网路来到 linux 机器时,如果埠号是上面指定
的其中一个,它将会取出原来的埠号以及 ip 位址,把它们放回封
包的标头,并且把封包送往 ANYBOX .
。送出封包的主机将永远不知道其中的差别.
一个 IP Masquerading 的例子:
下面的图示是典型的例子:-
+----------+
| | Ethernet
| abox |::::::
| |2 :192.168.1.x
+----------+ :
: +----------+ PPP
+----------+ : 1| Linux | link
| | ::::| masq-gate|:::::::::// Internet
| bbox |:::::: | |
| |3 : +----------+
+----------+ :
:
+----------+ :
| | :
| cbox |::::::
| |4
+----------+
<-Internal Network->
在这个例子中我们考虑四台电脑系统(想必遥远的右方还有些东西让你到网际网路的 IP 连线能够连接,以及一些(远超过这一页)在网际网路上你有兴趣交换资讯的东西).这个 Linux 系统 masq-gate 是 abox, bbox, cbox 内部网路机器连接网际网路的伪装闸道.内部网路使用指定的私用(private) 网路位址,在这个案例中是 class C 网路 192.168.1.0, Linux 机器拥有位址 192.168.1.1 而其它系统也拥有此网路上的位址.
这三台机器 abox, bbox 以及 cbox (它们可以执行任何作业系统 - 像是 Windows 95, Macintosh MacTCP 或甚至是另一台 Linux 机器,只要它们能了解 IP)可以连线到网际网路上的其它机器去,然而这个伪装系统闸道 masq-gate 转换它们所有的连线所以这些连线看起来像是原本即从伪装闸道 masq-gate 本身发出的,而且还安排伪装连线传回的资料转回原先的系统 - 所以在内部网路上的系统看到的是直接通往网际网路的递送路径而且不知道他们的资料被伪装过.
2.6 在 Linux 2.x 上使用 IP Masquerade 的需求
** 请参考 IP Masquerade Resource 以获得最新资讯,因为经常更新这份 HOWTO 是满困难的. **
核心 2.0.x 的原始程式码可以从这里取得 ftp://ftp.funet.fi/pub/Linux/kernel/src/v2.0/
(是的,你将得配合加入一些支援来编译你的核心.... 建议最新的稳定版本)
可载入核心模组,最好是 2.0.0 或更新的版本,可以从这里取得 http://www.pi.se/blox/modules/modules-2.0.0.tar.gz
(至少需要 modules-1.3.57)
设定良好的 TCP/IP 网路
涵盖於 Linux NET-2 HOWTO 及网路管理者指引(Network Administrator's Guide) Network Administrator's Guide
你的 Linux 主机的网际网路连线
涵盖於 Linux ISP Hookup HOWTO, Linux PPP HOWTO 以及 Linux PPP-over-ISDN mini-HOWTO
Ipfwadm 2.3 或更新的版本可以从这里取得
ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz 在 Linux Ipfwadm 网页上有更多关於版本的资讯 Linux Ipfwadm page
你可以选择性地加上一些 IP Masquerade 修补档以增加其它功能.从这里可以取的更多资讯, IP Masquerade Resources (这些修补档适用於所有的 2.0.x 核心)
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
3. IP Masquerade 的设定
如果你的私用网路里有任何重要的资讯,在使用 IP Masquerade 之前请三思.这可能成为你通往网际网路的闸道,反之亦然,也可能成为另一边的世界进入你私用网路的途径.
3.1 编译核心加入 IP Masquerade 的支援
** 请参考 IP Masquerade Resource 以获得最新资讯,因为经常更新这份 HOWTO 是满困难的. **
首先,你需要核心的原始程式码(最好是稳定的 2.0.0 版或以上的核心)
如果这是你第一次编译核心,不要害怕.事实上,这非常容易而且涵盖於 Linux Kernel HOWTO
使用指令: tar xvzf linux-2.0.x.tar.gz -C /usr/src 把核心的原始程式码解至 /usr/src/,其中 x 是 2.0 之後的修补层级
(确定有个称为 linux 的目录或符号链结)
加上适当的修补.因为新的修补档不断出来,所以细节不会包含在这里.最新的资讯请参考 IP Masquerade Resources
有关编译核心更进一步的介绍请参考 Kernel HOWTO 以及核心原始程式码目录里的 README 档案
这里是你要编译进去的选项:
下列选项要回答 YES:
* Prompt for development and/or incomplete code/drivers
CONFIG_EXPERIMENTAL
- 这将让你能选择把实验性的 IP Masquerade 程式码编译到核心里去
* Enable loadable module support
CONFIG_MODULES
- 让你能够载入模组
* Networking support
CONFIG_NET
* Network firewalls
CONFIG_FIREWALL
* TCP/IP networking
CONFIG_INET
* IP: forwarding/gatewaying
CONFIG_IP_FORWARD
* IP: firewalling
CONFIG_IP_FIREWALL
* IP: masquerading (EXPERIMENTAL)
CONFIG_IP_MASQUERADE
- 这虽然是实验性的,但却是 *必须* 的
* IP: ipautofw masquerade support (EXPERIMENTAL)
CONFIG_IP_MASQUERADE_IPAUTOFW
- 建议使用
* IP: ICMP masquerading
CONFIG_IP_MASQUERADE_ICMP
- 支援 ICMP 封包伪装,可选用
* IP: always defragment
CONFIG_IP_ALWAYS_DEFRAG
- 高度建议使用
* Dummy net driver support
CONFIG_DUMMY
- 建议使用
注意: 这些只是 IP Masquerade 所需要的,你还需选择其它任何你的设定需要的选项.
编译核心之後,你应该编译并安装模组:
make modules modules_install
然後你应该在 /etc/rc.d/rc.local (或任何你认为合适的档案)里加上几行以便每次启动时自动载入 /lib/modules/2.0.x/ipv4/ 里所需的模组:
.
.
.
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
(以及其它像是 ip_masq_cuseeme, ip_masq_vdolive 等模组,如果你有加上适当的修补)
.
.
.
注意: 你也可以在使用 ip_masq 之前手动地载入它,但是不要使用 kerneld 来载入,这是不行的!
3.2 指定私用网路的 IP 位址
因为所有其它机器都没有正式指定的位址,必须有个正确的方式来分配位址给这些机器.
节自 IP Masquerade FAQ:
有份 RFC (#1597) 是有关没有与外界连线的网路该使用什麽 IP 位址.有三个数字区块是特别为这个目的而保留的.其中一个我使用的是 192.168.1.n 到 192.168.255.n 之间的 255 Class-C 子网路.
节自 RFC 1597:
第三节: 私用位址空间
网际网路位址指定当局(IANA: Internet Assigned Numbers Authority)
已经保留下列三个区块的 IP 位址空间给私用网路:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
我们将称第一个区块为 "24位元区块",第二个为 "20位元区块",
而第三个则称为 "16位元区块".注意到第一个区块就只是个
class A 网路号码,第二个区块则是连续的 16 个 class B 网路
号码,而第三个区块是一组 255 个连续的 class C 网路号码.
所以,如果你要使用一个 class C 网路的话,那麽你的机器应该以 192.168.1.1, 192.168.1.2, 192.168.1.3, ..., 192.168.1.x 来名之.
192.168.1.1 通常是闸道这台机器,在此即你连上网际网路的 Linux 主机.注意 192.168.1.0 以及 192.168.1.255 分别为网路以及广播位址,是保留的.避免在你的机器上使用这些位址.
3.3 配置其它机器
除了为每台机器设定适当的 IP 位址之外,你也应该设定适当的闸道.一般说来,这是非常直接了当的.你只需简单地输入 Linux 主机的位址(通常是 192.168.1.1)作为闸道位址.
关於领域名称服务,你可以加入任何 DNS 系统.最可能的应该是你 Linux 使用的那一个.你也可以选择性地加上任何网域字尾(domain suffix) .
在你重新配置这些 IP 位址之後,记得重新启动适当的服务或是重新开机.
下面的配置□例假设你使用一个 Class C 网路并且以 192.168.1.1 作为 Linux 主机的位址.请注意 192.168.1.0 及 192.168.1.255 是保留的.
配置 Windows 95
如果你还没有安装网路卡以及界面驱动程式,现在做.
到 '控制台/网路' 里去.
如果你的网路配置里没有 'TCP/IP 协定' 则加进去.
在'TCP/IP 内容'中,选择'IP 位址'并且把 IP 位址设定为 192.168.1.x,(1 在'通讯闸'中加入 192.168.1.x 作为你的闸道.
在'DNS 配置'/'DNS 伺服器'下加入你的 Linux 主机使用的 DNS (通常可以在 /etc/resolv.conf 里找到).你可以选择性地加入适当的网域字尾搜寻顺序.
不要变更原先的其它设定,除非你知道自己在做什麽.
在所有的对话盒中按下'确定'并且重新启动系统.
测试网路连线,Ping 你的 linux 主机: 从'开始/执行',输入 ping 192.168.1.1
(这只是区域网路连线测试,你现在还不能 ping 外面的世界.)
你可以在 windows 目录下选择性地建立一个 HOSTS 档案,如此你可以使用区域网路里的机器名称.在 windows 目录里有个称为 HOSTS.SAM 的□例.
配置 Windos for Workgroup 3.11
如果你还没有安装网路卡以及界面驱动程式,现在做.
如果你还未安装 TCP/IP 32b 套件的话就装吧.
在 'Main'/'Windows Setup'/'Network Setup', 按下 'Drivers'.
将 'Network Drivers' 里的 'Microsoft TCP/IP-32 3.11b' 反白,按下 'Setup'.
设定 IP 位址於 192.168.1.x (1 < x < 255), 然後设定 Subnet Mask 为 255.255.255.0 以及 Default Gateway 为 192.168.1.1.
不要开启 'Automatic DHCP Configuration' 并在 'WINS Server' 中放入任何东西,除非你在一 Windows NT 网域中而且你知道你在做什麽.
按下 'DNS', 填入在 3.3.1 小节中步骤六提到的资讯,然後在你完成後按下 'OK' 钮.
按下 'Advanced', 如果你使用类似 3.3.1 小节步骤十中提到主机档案,勾选 'Enable DNS for Windows Name Resolution' 及 'Enable LMHOSTS lookup'.
在所有对话盒中按 'OK' 并重新启动系统.
Ping 一下你的 Linux 主机以测试网路连接: 在 'File/Run' 输入: ping 192.168.1.1
(这只不过是区域网路的连接测试,你还不能 ping 到外面的世界).
Configuring Windows NT
如果你还没有安装网路卡以及界面驱动程式,现在做.
到 'Main'/'Control Panel'/'Network'.
如果你还没装 TCP/IP 服务的话从 'Add Software' 选单中加入 TCP/IP 协定及相关的部份.
在 'Network Software and Adapter Cards' 里将 'Installed Network Software' 选择盒中的 'TCP/IP 协定' 反白.
在 'TCP/IP Configuration',选择适当的界面驱动程式,例如,[1]Novell NE2000 Adapter.然後设定 IP 位址於 192.168.1.x (1 < x < 255),然後设定 Subnet Mask 为 255.255.255.0 以及 Default Gateway 为 192.168.1.1.
不要开启 'Automatic DHCP Configuration' 并在 'WINS Server' 中放入任何东西,除非你在一 Windows NT 网域中而且你知道你在做什麽.
按下 'DNS', 填入在 3.3.1 小节中步骤六提到的资讯,然後在你完成後按下 'OK' 钮.
按下 'Advanced', 如果你使用类似 3.3.1 小节步骤十中提到主机档案,勾选 'Enable DNS for Windows Name Resolution' 及 'Enable LMHOSTS lookup'.
在所有对话盒中按 'OK' 并重新启动系统.
Ping 一下你的 Linux 主机以测试网路连接: 在 'File/Run' 输入: ping 192.168.1.1
(这只不过是区域网路的连接测试,你还不能 ping 到外面的世界).
配置 UNIX 系列的系统
如果你还未安装你的网路卡并以适当的界面驱动程式重新编译你的核心,现在就做吧.
安装 TCP/IP 网路,像是 nettools 套件,如果你还没装的话.
将 IPADDR 设为 192.168.1.x (1 < x < 255), 然後将 NETMASK 设为 255.255.255.0, GATEWAY 设为 192.168.1.1, 以及 BROADCAST 设为 192.168.1.255.
例如,在 Red Hat Linux 系统上你可以编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,或直接从 Control Panel 里做.
(在 SunOS, BSDi, Slackware Linux, 等中都不相同...)
将你的名称伺服器及领域搜寻字尾加到 /etc/resolv.conf.
依据你的设定你可能要更新你的 /etc/networks 档案.
重新启动适当的服务,或简单的重新开机.
发出 ping 指令: ping 192.168.1.1 以测试到你的 gateway 机器的连接性.
(这只不过是区域网路的连接测试,你还不能 ping 到外面的世界).
配置使用 NCSA Telnet 套件的 DOS 机器
如果你还没有安装网路卡,现在做.
载入适当的封包驱动程式.对於 NE2000 卡来说,如果你的卡设定为 IRQ 10 及硬体位址於 0x300,用 nwpd 0x60 10 0x300.
建立一新目录,然後解开 NCSA Telnet 套件: pkunzip tel2308b.zip
使用文字编辑器打开 config.tel 档案.
设定 myip=192.168.1.x (1 < x < 255), 以及 netmask=255.255.255.0.
在本例子中,你应该设定 hardware=packet, interrupt=10, ioaddr=60.
你至少要有一单独的机器设定为 gateway,也就是 Linux 主机:
name=default
host=yourlinuxhostname
hostip=192.168.1.1
gateway=1
还要有另外一个指定领域名称服务:
name=dns.domain.com ; hostip=123.123.123.123; nameserver=1
注意: 用你 Linux 主机使用的 DNS 的适当资讯来取代.
储存你的 config.tel 档案.
Telnet 到你的 Linux 主机以测试网路连接: telnet 192.168.1.1
配置执行 MacTCP 的 MacOS 机器
如果你还没为你的乙太网路转接器安装适当的驱动程式,最好现在就作.
打开 MacTCP control panel,选择适当的网路驱动程式(Ethernet, 而非 EtherTalk) 并按下 'More...' 钮.
在 'Obtain Address:', 按 'Manually'.
在 'IP Address:' 下,从弹出选单中选择 class C.忽略对话盒中的其它部份.
在 'Domain Name Server Information:' 中填入适当资讯.
在 'Gateway Address:' 中,填入 192.168.1.1.
按下 'OK' 以储存设定.在 MacTCP control panel 的主视窗中,在 'IP Address:' 盒中填入你 Mac 的 IP 位址 (192.168.1.x, 1 < x < 255).
关闭 MacTCP control panel. 如果有的弹出视窗提醒你重新开机,那就做吧.
你可以 ping 一下你的 Linux 主来来测试网路连线.如果你有 MacTCP Watcher 免费程式,按下 'Ping' 钮,然後在弹出的对话盒中键入你的 Linux 主机的地址(192.168.1.1).(这只不过是区域网路的连接测试,你还不能 ping 到外面的世界.)
你可选择性地在 System Folder 中建立一 Hosts 档案以便你可以使用你区域网路里机器的主机名称.这个档案可能已经存在於你的 System Folder 里,而且它应该会包含一些(注解掉的)□例项目而你可以根据你的需要来修改.
配置执行 Open Transport 的 MacOS 系统
如果你还没为你的乙太网路转接器安装适当的驱动程式,最好现在就作.
打开 TCP/IP Control Panel 然後从 Edit 选单中选择 'User Mode ...'.确定使用者模式至少是 'Advanced' 然後按下 'OK' 钮.
从 File 选单中选择 'Configurations...'.选择 'Default' 配置并按下 'Duplicate...' 钮.在 'Duplicate Configuration' 对话盒中键入 'IP Masq' (或是其它能让你知道这是个特殊配置的字眼),它可能会说像是 'Deafault copy' 什麽的.然後按下 'OK' 钮,以及 'Make Active' 钮.
从 'Connect via:' 弹出式选单中选择 'Ethernet'.
从 'Configure:' 弹出式选单选择适当的项目.如果你不知道应该选什麽,你可能应该重新选择你的 'Default' 配置然後离开.我用的是 'Manually'.
在 'IP Address:' 盒中输入你的 Mac 的 IP 位址 (192.168.1.x, 1 < x < 255).
在 'Subnet mask:' 盒中输入 255.255.255.0.
在 'Router address:' 盒中输入 192.168.1.1 .
在 'Name server addr.:' 盒中输入你的领域名称伺服器 IP 位址.
在 'Implicit Search Path:' 里的 'Starting domain name' 输入你的网际网路领域名称(例如 'microsoft.com').
接下来的步骤是选择性的.不正确的值可能导致严重的错误行为.如果你不确定,最好留下空白,不要勾选.如果需要的话,除去那些栏位中的任何资讯.就我目前所知没有办法在 TCP/IP 对话视窗中告诉系统不要使用以前选过的另一 "Hosts" 档案.如果你知道的话,我很有兴趣了解.如果你的网路需要 802.3 框架的话勾选 '802.3'.
按下 'Options...' 以确定 TCP/IP 有作用.我使用 'Load only when needed' 选项.如果你执行并结束 TCP/IP 应用程式许多次而未重新启动你的机器,你将发现不选 'Load only when needed' 会抑制/降低你机器的记忆体管理效能.不选此项目将使 TCP/IP 协定总是被载入便於使用.如果勾选了,TCP/IP 协定会自动在需要时载入并在不需要时释放.载入与释放的过程可能使你机器的记忆体变的碎裂.
你可以 ping 一下你的 Linux 主来来测试网路连线.如果你有 MacTCP Watcher 免费程式,按下 'Ping' 钮,然後在弹出的对话盒中键入你的 Linux 主机的地址(192.168.1.1).(这只不过是区域网路的连接测试,你还不能 ping 到外面的世界.)
你可以在 System Folder 中建立一 Hosts 档案以便你可以使用你区域网路里机器的主机名称.这个档案可能已经或还未存在於你的 System Folder 里.如果有的话,它应该会包含一些(注解掉的)□例项目而你可以根据你的需要来修改.如果还没有的话,你可以从一部正在运作 MacTCP 的系统中取回,或自己建一个(它遵循 Unix 的 /etc/hosts 档案格式,在 RFC 1035 的第 33 页中描述).一旦你建立了这个档案,打开 TCP/IP control panel,按下 'Select Hosts File...' 钮,然後打开 Hosts 档案.
关闭对话盒或从 File 选单中选择 'Close' 或 'Quit' 然後按下 'Save' 以储存你所做的改变.
这些改变会立刻生效,但重新开机也无害.
配置使用 DNS 的 Novell 网路
如果你还没为你的乙太网路转接器安装适当的驱动程式,最好现在就作.
从 ftp.novell.com/pub/updates/unixconn/lwp5 取回 tcpip16.exe.
编辑 c:\nwclient\startnet.bat
: (here is a copy of mine)
SET NWLANGUAGE=ENGLISH
LH LSL.COM
LH KTC2000.COM
LH IPXODI.COM
LH tcpip
LH VLM.EXE
F:
编辑 c:\nwclient\net.cfg
: (将驱动程式改为你的, i.e. NE2000)
Link Driver KTC2000
Protocol IPX 0 ETHERNET_802.3
Frame ETHERNET_802.3
Frame Ethernet_II
FRAME Ethernet_802.2
NetWare DOS Requester
FIRST NETWORK DRIVE = F
USE DEFAULTS = OFF
VLM = CONN.VLM
VLM = IPXNCP.VLM
VLM = TRAN.VLM
VLM = SECURITY.VLM
VLM = NDS.VLM
VLM = BIND.VLM
VLM = NWP.VLM
VLM = FIO.VLM
VLM = GENERAL.VLM
VLM = REDIR.VLM
VLM = PRINT.VLM
VLM = NETX.VLM
Link Support
Buffers 8 1500
MemPool 4096
Protocol TCPIP
PATH SCRIPT C:\NET\SCRIPT
PATH PROFILE C:\NET\PROFILE
PATH LWP_CFG C:\NET\HSTACC
PATH TCP_CFG C:\NET\TCP
ip_address xxx.xxx.xxx.xxx
ip_router xxx.xxx.xxx.xxx
最後建立
c:\bin\resolv.cfg
:
SEARCH DNS HOSTS SEQUENTIAL
NAMESERVER 207.103.0.2
NAMESERVER 207.103.11.9
我希望这些某些使用 Novell 网路的人有帮助.还有,这对 Netware 3.1x 或 4.x 都有用.
配置 OS/2 Warp
如果你还没为你的乙太网路转接器安装适当的驱动程式,最好现在就作.
如果你还没装 TCP/IP 通讯协定的话现在就装.
开启 Programms/TCP/IP (LAN) / TCP/IP 设定
在 'Network' 栏位加上你的 TCP/IP 位址并设定你的 netmask (255.255.255.0)
在 'Routing' 栏位按下 'Add'. 将 Type 栏位设定为 'default' 并在 'Router Address' 栏位中键入你的 Linux 主机的 IP 位址 (192.168.1.1).
将 'Hosts' 栏位设定与你的 Linux 主机使用相同的 DNS (名称伺服器)位址.
关闭 TCP/IP 控制台.在接下来的问题中回答 yes.
重新启动你的系统
你可以 ping 你的 Linux 主机以测试网路配置.在 'OS/2 命令视窗' 上键入 'ping 192.168.1.1'. 如果收到 ping 封包一切就没问题.
配置其它系统
它们应该按照相同的理论来建立.查阅上述的小节.如果你有兴趣写关於其它的作业系统的配置,请送详细的建立指示到 ambrose@writeme.com.
3.4 配置 IP 转送(Forwarding)的方式
到目前为止,你应该已经安装好核心以及其它需要的套件,也载入了你的模组.同时,其它机器的 IP 位址,闸道,以及 DNS 也该全都设定完成.
现在,唯一剩下要做的事是使用 ipfwadm 转送适当的封包给适当的机器:
** 这可以用许多不同的方式来达成.下列的建议与例子对我来说能用,但你可能有不同的主意,详节部份请参考 4.4 节及 ipfwadm 的线上手册. **
ipfwadm -F -p deny
ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0
其中 x 视你的子网路而定,为下列数字之一,而 yyy.yyy.yyy.yyy 则是你的网路位址.
netmask | x | Subnet
~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0 | 8 | Class A
255.255.0.0 | 16 | Class B
255.255.255.0 | 24 | Class C
255.255.255.255 | 32 | Point-to-point
例如,如果我是在一个 class C 子网路上,我得输入:
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
因为 bootp 请求封包没有合法的 IP's ,客户端并不知道它的位址,对於在伪装/防火墙上执行 bootp 伺服器的人必须在 deny 之前执行下列指令:
ipfwadm -I -a accept -S 0/0 68 -D 0/0 67 -W bootp_clients_net_if_name -P udp
你也可以分别对每台机器设定.例如,如果我想让 192.168.1.2 及 192.168.1.8 能够存取网际网路,但不允许其它机器使用的话,我得输入:
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0
ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0
另外,你可以输入网路遮罩以取代该值,例如 192.168.1.0/255.255.255.0
常见的错误是像这样的第一行指令
ipfwadm -F -p masquerade
不要把你的预设方式(policy)定为伪装(masquerading) - 否则可以操控他们的递送路径(routing) 的人将能够直接穿过(tunnel)你的闸道,以此伪装他们的身分!
再一次,你可以把这些加入 /etc/rc.local 档案,任何一个你比较喜欢的 rc 档案,或是在每次你需要 IP Masquerade 时手动执行之.
请阅读 4.4 节有关 Ipfwadm 的详细指引.
3.5 测试 IP Masquerade
在这些工作完成後,现在是试试看的时候了.确定你的 Linux 主机到网际网路的连线是通的.
你可以在其它机器上试著浏览一些'网际网路!!!' 上的网页,看是否能见到.我建议第一次尝试时使用 IP 位址而不要用主机名称,因为你的 DNS 设定有可能并不正确.
例如,你可以使用 http://152.2.254.81/mdw/linux.html 来存取 Linux 文件计画网页 http://sunsite.unc.edu/mdw/linux.html.
如果你看见那漂亮的帆船(译注: LDP 网页好像没有帆船? :P),那麽恭喜! 它可以运作了! 接著你可以使用主机名称试试看,然後是 telnet, ftp, RealAudio, True Speech,以及任何 IP Masquerade 支援的东西.
到目前为止,我还不曾在上面的设定上发生过问题,而那些花下时间让这个绝妙功能运作的人完全同意这些设定.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
4. 其它 IP Masquerade 的问题及软体支援
4.1 IP Masquerade 的问题
某些协定现在无法配合 masquerading 使用,因为它们不是假设有关埠号的一些事情,就是在位址及埠号的资料流里编码资料 - 後面这些协定需要在 masquerading 程式码里建立特定的代理程式使它们能运作.
4.2 进入系统的服务(incoming services)
Masquerading 完全不能处理外界的服务请求 (incoming services).只有极少方法能允许它们,但这完全与 masquerading 无关,而且实在是标准的防火墙方式.
如果你并不要求高度的安全性那麽你可以简单地重导(redirect)这些埠.有几种不同的方法可以做这件事 - 我使用一只修改过的 redir 程式(我希望这只程式很快就能从 sunsite 及其 mirrors 取得).如果你希望能够对外界进入系统的服务请求有某种程度的身分验认(authorisation) 那麽你可以在 redir 的顶层(0.7 or above) 使用 TCP wrappers 或是 Xinetd 来允许特定 IP 位址通过,或使用其它的工具.TIS 防火墙工具集是寻找工具及资讯的好地方.
更多的详节可在 IP Masquerade Resource 找到.
4.3 已支援的客户端软体以及其它设定方面的注意事项
** 下面的列表将不再被维护了.可经由 Linux IP masquerading 运作的应用程式请参考 这里 和 IP Masquerade Resource 以取得进一步的细节. **
一般说来,使用传输控制协定(TCP) 或是使用者定义资料协定 (UDP)的应用程式应该都能运作.如果你有任何关於应用程式与 IP Masquerade 相容的建议,提示或问题,请拜访由 Lee Nevo 维护的 可与 Linux IP masquerading 运作的应用程式 网页.
可以使用的客户端软体
一般客户端软体
HTTP
所有有支援的平台,浏览网页
POP & SMTP
所有有支援的平台,电子邮件软体
Telnet
所有有支援的平台,远端签入作业
FTP
所有有支援的平台,配合 ip_masq_ftp.o 模组(不是所有站台都能配合各种客户端软体;例如某些不能使用 ws_ftp32 触及的站台却能使用 netscape 进入)
Archie
所有有支援的平台,档案搜寻软体(并非所有 archie 客户端软体都支援)
NNTP (USENET)
所有有支援的平台,网路新闻软体
VRML
Windows (可能所有有支援的平台都可以),虚拟实境浏览
traceroute
主要是 UNIX 系列的平台,某些变种可能无法运作
ping
所有平台,配合 ICMP 修补档
anything based on IRC
所有有支援的平台,配合 ip_masq_irc.o 模组
Gopher client
所有有支援的平台
WAIS client
所有有支援的平台
多媒体客户端软体
Real Audio Player
Windows, 网路资料流音讯,配合载入 ip_masq_raudio 模组
True Speech Player 1.1b
Windows, 网路资料流音讯
Internet Wave Player
Windows, 网路资料流音讯
Worlds Chat 0.9a
Windows, 客户-伺服端立体交谈(3D chat) 程式
Alpha Worlds
Windows, Windows, 客户-伺服端立体交谈(3D chat) 程式
Powwow
Windows, 点对点文字声音白板通讯,如果你呼叫别人,人们可以与你交谈,但是他们不能呼叫你.
CU-SeeMe
所有有支援的平台,配合载入 cuseeme 模组,详细细节请参 阅 IP Masquerade Resource
VDOLive
Windows, 配合 vdolive 修补档
注意: 即使不是由你呼叫别人,使用 ipautofw 套件某些客户端软体像是 IPhone 以及 Powwow 可能还是可以运作(参阅 4.6 节)
其它客户端软体
NCSA Telnet 2.3.08
DOS, 包含 telnet, ftp, ping 等等的一组套件.
PC-anywhere for windows 2.0
MS-Windows, 经由 TCP/IP 远端遥控 PC ,只有在作为客户端而非主机端的情形下才能运作
Socket Watch
使用 ntp - 网路时间协定
Linux net-acct package
Linux, 网路帐号管理套件
无法使用的客户端软体
Intel Internet Phone Beta 2
可以连上但声音只能单向(往外)传送
Intel Streaming Media Viewer Beta 1
无法连上伺服器
Netscape CoolTalk
无法连接对方
talk,ntalk
这将不会运作 - 需要撰写一份核心代理程式.
WebPhone
目前无法运作(它做了不合法的位址假设).
X
没有测试过,但我想除非有人建立一套 X 代理程式否则它无法运作,这可能是 masquerading 程式码之外的一个外部程式.一个让它运作的方式是使用 ssh 作为链结并且使用其内部的 X 代理功能来执行!
已测试过可以作为其它机器的平台/作业系统
Linux
Solaris
Windows 95
Windows NT (both workstation and server)
Windows For Workgroup 3.11 (with TCP/IP package)
Windows 3.1 (with Chameleon package)
Novel 4.01 Server
OS/2 (including Warp v3)
Macintosh OS (with MacTCP or Open Transport)
DOS (with NCSA Telnet package, DOS Trumpet works partially)
Amiga (with AmiTCP or AS225-stack)
VAX Stations 3520 and 3100 with UCX (TCP/IP stack for VMS)
Alpha/AXP with Linux/Redhat
SCO Openserver (v3.2.4.2 and 5)
IBM RS/6000 running AIX
(谁还测试过其它平台?)
4.4 IP Firewall Administration (ipfwadm)
这一节提供关於 ipfwadm 更深入的使用指引.
这是一个给在固定 PPP 位址之 PPP 连线後面的防火墙/伪装系统使用的设定.信赖(trusted) 界面为 192.168.255.1, PPP 界面已经修改过以避免犯错 :) .我分别列出每一个进入(incoming)以及送出(outgoing)界面来抓出变更递送路径(stuffed routing) 以及/或是伪装(masquerading)等等这些个 IP spoofing 技巧.同时任何没有明确允许的东西都是禁止的!
#!/bin/sh
#
# /etc/rc.d/rc.firewall, 定义防火墙配置,从 rc.local 执行.
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# 测试用,等待一段时间然後清除所有的防火墙规则.
# 如果你希望防火墙十分钟之後自动关闭就取消下列几行的注解.
# (sleep 600; \
# ipfwadm -I -f; \
# ipfwadm -I -p accept; \
# ipfwadm -O -f; \
# ipfwadm -O -p accept; \
# ipfwadm -F -f; \
# ipfwadm -F -p accept; \
# ) &
# 进入伪装闸道的设定,更新以及设定拒绝的策略(policy).事实上
# 预设的策略没什麽关系,因为原先就希望拒绝以及记录所有规则
ipfwadm -I -f
ipfwadm -I -p deny
# 伪装闸道的本地(local) 界面,区域网路里的机器,允许连往任何
# 地方
ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0
# 伪装闸道的远端(remote)界面,声称是区域网路里的机器,IP spoofing
# 拒绝
ipfwadm -I -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0/0 -o
# 伪装闸道的远端界面,任何来源,允许送往固定 (permanent) PPP
# 位址
ipfwadm -I -a accept -V your.static.PPP.address -S 0.0.0.0/0 -D your.static.PPP.address/32
# 回授(loopback)界面是允许的
ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
# 捕捉所有规则,任何其它的进入方式都会被拒绝并记录.可惜没有
# 记录用的选项但这可以代替
ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
# 送出伪装闸道的设定,更新以及设定拒绝的策略(policy).事实上
# 预设的策略没什麽关系,因为原先就希望拒绝以及记录所有规则
ipfwadm -O -f
ipfwadm -O -p deny
# 本地界面,允许任何来源送出至区域网路
ipfwadm -O -a accept -V 192.168.255.1 -S 0.0.0.0/0 -D 192.168.0.0/16
# 远端界面送出至区域网路,stuffed routing ,拒绝
ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/16 -o
# 区域网路的机器从远端界面送出,stuffed masquerading,拒绝
ipfwadm -O -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0/0 -o
# 区域网路的机器从远端界面送出,stuffed masquerading,拒绝
ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/16 -o
# 任何其它远端界面送出的东西都是允许的
ipfwadm -O -a accept -V your.static.PPP.address -S your.static.PPP.address/32 -D 0.0.0.0/0
# 回授(loopback)界面是允许的
ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
# 捕捉所有规则,任何其它的送出方式都会被拒绝并记录.可惜没有
# 记录用的选项但这可以代替
ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
# 伪装闸道的转送设定,更新以及设定拒绝的策略(policy).事实上
# 预设的策略没什麽关系,因为原先就希望拒绝以及记录所有规则
ipfwadm -F -f
ipfwadm -F -p deny
# 伪装区域网路的机器从本地界面送出至任何地方的资料
ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0
# 捕捉所有规则,任何其它的转送方式都会被拒绝并记录.可惜没有
# 记录用的选项但这可以代替
ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
你可以使用 -I, -O 或是 -F 来控制到某特定节点的流量.记得这些规则集是由上往下扫描的而 -a 代表"附加(append)"到目前现有的规则集中所以任何限制必须在全域(global)规则之前出现.例如(没测试过) :-
使用 -I 规则.可能是速度最快的但是它只能阻止区域网路里的机器,防火墙本身仍然可以存取"禁止"的节点.当然你可能想允许这样的组合.
... start of -I rules ...
# 拒绝并记录本地界面,区域网路里的机器通往 204.50.10.13
ipfwadm -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 ...
使用 -O 规则.最慢,因为封包首先经过伪装但这个规则阻止防火墙存取禁止的节点.
... 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 ...
使用 -F 规则.可能比 -I 慢而这仍然只能阻止伪装的机器(例如内部的机器),防火墙仍然可以取得禁止的节点.
... 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 ...
不需要有个特定的规则来允许 192.168.0.0/16 通往 204.50.11.0, 这涵盖於全域规则中.
有一种以上的方法可以对界面设定上述规则.例如可以使用 -W eth0 来取代 -V 192.168.255.1,可以使用 -W ppp0 来取代 -V your.static.PPP.address.个人的选择最重要.
4.5 IP Masquerade 以及需求式拨接(Demand-Dial-Up)
如果你想把网路设定成自动拨接上网际网路,那麽 diald demand 拨接套件将会是很棒的工具.
要设定 diald, 请查看 Setting Up Diald for Linux Page 网页
一旦 diald 以及 IP masq 设定完成,你可以在任何客户端机器上启动 web, telnet 或是 ftp 连线.
Diald 将会侦测到进入系统的请求,然後拨接到你的 ISP 并建立连线.
第一次连线将会发生逾时(timeout) 的情形.如果你使用类比式的数据机那这是无可避免的.建立数据机连结以及 PPP 连线所花费的时间将会使你的客户端软体不耐.如果你使用 ISDN 连线那这是可以避免的.你得做的只是结束客户端软体现行的程序再重新启动即可.
4.6 IPautofw 封包转送程式
IPautofw 是一个给 Linux masquerading 使用的一般性 TCP 及 UDP 转送程式.一般使用需要 UDP 的套件的时候,需要载入特定的 ip_masq 模组;ip_masq_raudio, ip_masq_cuseeme,... Ipautofw 以更一般化的方式运作,它将会转送包含这些应用程式特定模组都不会转送的任何资料流型态.如果没有正确地管理这可能造成安全上的漏洞.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
5. 其它
5.1 求助
** 请不要尝试送电子邮件给我问 IP Masquerade 的问题.因於个人工作的负担,我无法保证回覆所有非 website 相关的问题.请将你的问题送到 IP Masquerade mailing list (我想这是最佳的求助来源).这点很抱歉,但我不想让你等几个星期才收到回信. **
IP Masquerade Resource page 应该有足够的资讯设定 IP Masquerade.
加入 IP masquerade 邮递列表(建议)
要订阅的话,寄封标题为 "subscribe" (不包含引号)的邮件到 masq-request@indyramp.com
要取消订阅的话,寄封标题为 "unsubscribe" (不包含引号)的邮件到 masq-request@indyramp.com
要获得使用这个邮递列表的协助说明的话,寄封标题为 "archive help" 或 "archive dir" (不包含引号)的邮件到 masq-request@indyramp.com
IP masquerade 邮递列表档案 包含所有过去送到这个邮递列表的讯息。
本文件 Linux IP Masquerade mini HOWTO for kernel 2.x (如果你使用 1.3.x or 2.x 的核心)
IP Masquerade HOWTO for kernel 1.2.x 如果你使用比较旧的核心
IP masquerade FAQ 有些一般性的资讯
X/OS Ipfwadm page 包含关於 ipfwadm 套件的原始程式码,执行档,文件,以及其它资讯
由 Lee Nevo 所维护的网页 可与 Linux IP masquerading 运作的应用程式 提供提示与技巧使得应用程式能与 IP Masquerade 运作.
LDP Network Administrator's Guide 这是新手尝试设定网路的必要资讯
Linux NET-2 HOWTO 也有许多关於 Linux 网路方面有用的资讯
Linux ISP Hookup HOWTO 以及 Linux PPP HOWTO 给你如何把 Linux 主机连上网际网路的相关资讯
Linux Ethernet-Howto 有关设定执行乙太网路的区域网路很棒的资讯来源
你也可能对 Linux Firewalling and Proxy Server HOWTO 有兴趣
Linux Kernel HOWTO 将会指引你编译核心的过程
其它 Linux HOWTOs 像是 Kernel HOWTO
张贴到这个 USENET 新闻群组: comp.os.linux.networking
5.2 感谢
Gabriel Beitler, gbeitler@aciscorp.com
on providing section 3.3.8 (setting up Novel)
Ed Doolittle, dolittle@math.toronto.edu
on suggestion to -V option in ipfwadm command for improved security
Matthew Driver, mdriver@cfmeu.asn.au
on helping extensively on this HOWTO, and providing section 3.3.1 (setting up Windows 95)
Ken Eves, ken@eves.com
on the FAQ that provides invaluable information for this HOWTO
Ed. Lott, edlott@neosoft.com
for a long list of tested system and software
Nigel Metheringham, Nigel.Metheringham@theplanet.net
on contributing his version of IP Packet Filtering and IP Masquerading HOWTO, which make this HOWTO a better and technical in-depth document
section 4.1, 4.2, and others
Keith Owens, kaos@ocs.com.au
on providing an Excellent guide on ipfwadm section 4.2
on correction to ipfwadm -deny option which avoids a security hole, and clarified the status of ping over IP Masquerade
Rob Pelkey, rpelkey@abacus.bates.edu
on providing section 3.3.6 and 3.3.7 (setting up MacTCP and Open Transport)
Harish Pillay, h.pillay@ieee.org
on providing section 4.5 (dial-on-demand using diald)
Mark Purcell, purcell@rmcs.cranfield.ac.uk
on providing section 4.6 (IPautofw)
Ueli Rutishauser, rutish@ibm.net
on providing section 3.3.9 (setting up OS/2 Warp)
John B. (Brent) Williams, forerunner@mercury.net
on providing section 3.3.7 (setting up Open Transport)
Enrique Pessoa Xavier, enrique@labma.ufrj.br
on the bootp setup suggestion
developers of IP Masquerade for this great feature
Delian Delchev, delian@wfpa.acad.bg
Nigel Metheringham, Nigel.Metheringham@theplanet.net
Keith Owens, kaos@ocs.com.au
Jeanette Pauline Middelink, middelin@polyware.iaf.nl
David A. Ranch, trinity@value.net
Miquel van Smoorenburg, miquels@q.cistron.nl
Jos Vos, jos@xos.nl
还有其它我忘了提的(请让我知道)
所有送回馈及建议到邮递列表上的使用者,特别是那些报告文件上的错误以及已支援与未支援的客户端的.
如果我没有包括某些使用者送给我的资讯我感到抱歉.有如此多的建议与想法送到我这里,但我只是没有足够的时间去确定或者我不小心丢了.我正尽我最大的努力整合所有送给我的资讯到这份文件里.感谢你的辛劳,而我也希望你能谅解我的情况.
5.3 参考资料
Ken Eves 的 IP masquerade 常见问答集
Indyramp Consulting 之 IP masquerade 邮递列表
X/OS 的 Ipfwadm 网页
各个关於网路的 Linux HOWTOs
--------------------------------------------------------------------------------
译者: Asd L. Chen asdchen@ms1.hinet.net
v1.20, 10 November 1997 翻译日期: 19 November 1997
--------------------------------------------------------------------------------
这份文件描述如何在一台 linux 主机上起动 ip Masquerade 功能,允许没有注册网际网路 IP 位址的连线电脑经由你的 Linux 机器连接网际网路.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
1. 简介
1.1 简介
这份文件描述如何在一台 Linux 主机上起动 IP Masquerade 功能,允许没有注册网际网路 IP 位址的连线电脑经由你的 Linux 机器连接网际网路.你的机器可能是以乙太网路连接 Linux, 也可能是其它种类,像是拨接的点对点(ppp) 连线.这份文件将会强调乙太网路连线的情况,因为这应该是最常见的案例.
这份文件倾向给使用 2.0.x 核心的使用者参考,不包含发展中的 2.1.x 核心.
1.2 前言,回馈 & 参考资讯
我发现新手在较新的核心上,像是 2.x 核心,设定 IP Masguerade 时非常困惑.虽然有份常见问答集(FAQ) 与邮递列表(mailing list),然而没有一份这方面的专门文件;而且在邮递列表上有些对於这样一份说明文件(HOWTO) 的请求.所以,我决定撰写它给所有新手作为一个起点,并且希望能抛砖引玉,作为那些非常了解它的使用者建立文件的基础.如果你认为我做的不好,不要在意告诉我,这样我能把它做得更好.
这份文件很多是以原先 Ken Eves 的常见问答集以及 IP Masquerade 邮递列表里许多有帮助的讯息作为基础.特别感谢 Mr. Matthew Driver 在邮递列表中的讯息引发我设立 IP Masquerade 的灵感以及最後撰写了这份文件.
如果我的任何资讯有误或遗漏任何资讯,请别介意把任何回馈或意见寄到 ambrose@writeme.com 来.你的无价回馈将影响未来的这份说明文件!
这份说明文件是想作为让你的 IP Masquerade 能在最短时间内运作的快速指引.因为我不是一位专门作家,你可能会发现本文件的资讯并非如你想的那麽一般及客观.最新的消息以及资讯可以在我所维护的 IP Masquerade Resource 网页上找到.如果你有任何关於 IP Masquerade 的技术问题,请加入 IP Masquerade 邮递列表而别寄电子邮件给我,因为我的时间有限,而且 IP Masquerade 的发展者们更有能力回答你的问题.
这份文件最新的版本可以在 IP Masquerade Resource 上找到,里面也有 HTML 以及 postscript 的版本:
http://ipmasq.home.ml.org/
请参考 IP Masquerade Resource 映射站台列表 以找到其它的映射站台.
1.3 版权 & 宣告
这份文件版权属於 Ambrose Au, 而且是免费的文件.你可以在 GNU 的通用公开授权方式下散播它.
这份文件中的资讯跟其它内容都已经尽了我最大的努力.无论如何,IP Masquerade 是实验性的,而且我也可能会犯些错误;所以你应该自己决定是不是要照著这份文件中的资讯做.
没有人会为使用这份文件中的资讯所造成的电脑损坏或其它损失负责.也就是说,
作者不对依照这份文件内容动作所造成的损害负责.
原文
This document is copyright(c) 1996 Ambrose Au, and it's a free document. You can redistribute it under the terms of the GNU General Public License.
The information and other contents in this document are to the best of my knowledge. However, ip_masq is experimental, and there is chance that I make mistakes as well; so you should determine if you want to follow the information in this document.
Nobody is responsible for any damage on your computers and any other losses by using the information on this document. i.e.
THE AUTHOR IS NOT RESPONSIBLE FOR ANY DAMAGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE INFORMATION IN THIS DOCUMENT.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
2. 背景知识
2.1 什麽是 IP Masquerade?
IP Masquerade 是 Linux 发展中的一种网路功能.如果一台 Linux 主机使用 IP Masquerade 功能连线到网际网路上,那麽接上它的电脑(不论是在同一个区域网路上或藉由数据机连线)也可以接触网际网路,即使它们没有获得正式指定的 IP 位址.
这使得一些电脑可以隐藏在闸道(gateway) 系统後面存取网际网路而不被发现,看起来就像只有这个系统在使用网际网路.突破设定良好的伪装(masquerade)系统之安全防护应该会比突破良好的封包过滤式防火墙(packet filter firewall)来得更加困难(假设两者之中都没有错误).
2.2 现况
IP Masquerade 仍然在实验阶段.无论如何,核心从 1.3.x 开始已经内建这项支援.许多个人甚至公司正在使用它,而有满意的结果.
浏览网页以及远端签入(telnet)已经有回报表示可以在 IP Masquerade 上运作.档案传输(FTP),网路交谈(IRC) 以及聆听 Real Audio 现在可以载入某些模组配合.其它的网路资料流音讯 (streaming audio) 像是 True Speech 以及 Internet Wave 也能运作.一些邮递列表中的使用夥伴甚至还尝试过视讯会议软体. Ping 现在配合新近可以取得的网际网路控制讯息协定(ICMP)修补档也能运作.
更完整的支援软体列表请参考 4.3 节.
IP Masquerade 在数种不同的作业系统及平台上与 '客户端机器' 配合良好.成功的案例有使用 Unix, Windows95, Windows NT, Windows for Workgroup (with TCP/IP package), OS/2, Macintosh System's OS with Mac TCP, Mac Open Transport, DOS with NCSA Telnet package, VAX, Alpha with Linux, 甚至 Amiga with AmiTCP 或 AS225-stack 的系统.
2.3 谁可以从 IP Masquerade 中获益?
如果你有台连接网际网路的 Linux 主机,而且
如果你有一些执行 TCP/IP 连接到 Linux 机器的电脑在区域网路上,以及/或是
如果你的 Linux 主机有一个以上的数据机并且作为 PPP 或 SLIP 伺服器连接其它电脑,它们
这些其它机器没有正式指定的 IP 位址.(这些机器从这里开始以後就称为其它机器)
而且当然,如果你希望这些其它机器不必花额外的费用就能连上网际网路 :)
2.4 谁不需要 IP Masquerade?
如果你的机器是单独一台(stand-alone) 连接网际网路的 Linux 主机,那麽执行 IP Masquerade 没什麽意义,或者
如果你的其它机器拥有正式指定的 IP 位址,那麽你就不需要 IP Masquerade
而且当然,如果你不喜欢免费使用(free ride) 这个主意的话.
2.5 IP Masquerade 是如何运作的?
节自 Ken eves 的 IP Masquerade FAQ:
这是大部分简单的设定草图:
SLIP/PPP +------------+ +-------------+
to PRovider | Linux | SLIP/PPP | Anybox |
<---------- modem1| |modem2 ----------- modem | |
111.222.333.444 | | 192.168.1.100 | |
+------------+ +-------------+
上面的草图中一台安装并执行 ip_masquerading 的 Linux
机器使用 modem1 经由 SLIP/or/PPP 连接网际网路.它有一个
指定的 IP 位址 111.222.333.444.它设定 modem2 允许拨接者
签入并起始 SLIP/or/PPP 连结.
第二个系统(不必是执行 Linux 的系统)拨接进入 Linux
机器并起始 SLIP/or/PPP 连结.它在网际网路上并没有指定的
IP 位址所以它使用 192.168.1.100.(参阅下述)
配合 ip_masquerade 及适当递送配置(routing configured)
Anybox 这台机器可以跟网际网路交流就如同它真的连在上面般
(除了少数例外).
节录 Pauline Middelink:
别忘记提到 ANYBOX 应该把 Linux 机器当作它的闸道(无论是
预设递送路径或只是个子网路都没关系).如果 ANYBOX 不能够
这样设, Linux 机器应该为所有要递送的位址做代理位址解析
析协定(proxy arp) 服务,但代理位址解析的设定超过这份文件
的□围.
下面节录自 comp.os.linux.networking 的一篇布告并且稍加编辑以
符合上述□例的用词:
。我告诉 ANYBOX 这台机器跑 slip 的 linux 机器是它的闸道.
。当一个封包从 ANYBOX 进入 linux 机器时,它会指定新的来源埠
号(source port number),把它自己的 ip 位址塞入封包的标头并
储存原来的.然後它将会藉由 SLIP/or/PPP 界面把修改过的封包
送上网际网路.
。当一个封包从网际网路来到 linux 机器时,如果埠号是上面指定
的其中一个,它将会取出原来的埠号以及 ip 位址,把它们放回封
包的标头,并且把封包送往 ANYBOX .
。送出封包的主机将永远不知道其中的差别.
一个 IP Masquerading 的例子:
下面的图示是典型的例子:-
+----------+
| | Ethernet
| abox |::::::
| |2 :192.168.1.x
+----------+ :
: +----------+ PPP
+----------+ : 1| Linux | link
| | ::::| masq-gate|:::::::::// Internet
| bbox |:::::: | |
| |3 : +----------+
+----------+ :
:
+----------+ :
| | :
| cbox |::::::
| |4
+----------+
<-Internal Network->
在这个例子中我们考虑四台电脑系统(想必遥远的右方还有些东西让你到网际网路的 IP 连线能够连接,以及一些(远超过这一页)在网际网路上你有兴趣交换资讯的东西).这个 Linux 系统 masq-gate 是 abox, bbox, cbox 内部网路机器连接网际网路的伪装闸道.内部网路使用指定的私用(private) 网路位址,在这个案例中是 class C 网路 192.168.1.0, Linux 机器拥有位址 192.168.1.1 而其它系统也拥有此网路上的位址.
这三台机器 abox, bbox 以及 cbox (它们可以执行任何作业系统 - 像是 Windows 95, Macintosh MacTCP 或甚至是另一台 Linux 机器,只要它们能了解 IP)可以连线到网际网路上的其它机器去,然而这个伪装系统闸道 masq-gate 转换它们所有的连线所以这些连线看起来像是原本即从伪装闸道 masq-gate 本身发出的,而且还安排伪装连线传回的资料转回原先的系统 - 所以在内部网路上的系统看到的是直接通往网际网路的递送路径而且不知道他们的资料被伪装过.
2.6 在 Linux 2.x 上使用 IP Masquerade 的需求
** 请参考 IP Masquerade Resource 以获得最新资讯,因为经常更新这份 HOWTO 是满困难的. **
核心 2.0.x 的原始程式码可以从这里取得 ftp://ftp.funet.fi/pub/Linux/kernel/src/v2.0/
(是的,你将得配合加入一些支援来编译你的核心.... 建议最新的稳定版本)
可载入核心模组,最好是 2.0.0 或更新的版本,可以从这里取得 http://www.pi.se/blox/modules/modules-2.0.0.tar.gz
(至少需要 modules-1.3.57)
设定良好的 TCP/IP 网路
涵盖於 Linux NET-2 HOWTO 及网路管理者指引(Network Administrator's Guide) Network Administrator's Guide
你的 Linux 主机的网际网路连线
涵盖於 Linux ISP Hookup HOWTO, Linux PPP HOWTO 以及 Linux PPP-over-ISDN mini-HOWTO
Ipfwadm 2.3 或更新的版本可以从这里取得
ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz 在 Linux Ipfwadm 网页上有更多关於版本的资讯 Linux Ipfwadm page
你可以选择性地加上一些 IP Masquerade 修补档以增加其它功能.从这里可以取的更多资讯, IP Masquerade Resources (这些修补档适用於所有的 2.0.x 核心)
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
3. IP Masquerade 的设定
如果你的私用网路里有任何重要的资讯,在使用 IP Masquerade 之前请三思.这可能成为你通往网际网路的闸道,反之亦然,也可能成为另一边的世界进入你私用网路的途径.
3.1 编译核心加入 IP Masquerade 的支援
** 请参考 IP Masquerade Resource 以获得最新资讯,因为经常更新这份 HOWTO 是满困难的. **
首先,你需要核心的原始程式码(最好是稳定的 2.0.0 版或以上的核心)
如果这是你第一次编译核心,不要害怕.事实上,这非常容易而且涵盖於 Linux Kernel HOWTO
使用指令: tar xvzf linux-2.0.x.tar.gz -C /usr/src 把核心的原始程式码解至 /usr/src/,其中 x 是 2.0 之後的修补层级
(确定有个称为 linux 的目录或符号链结)
加上适当的修补.因为新的修补档不断出来,所以细节不会包含在这里.最新的资讯请参考 IP Masquerade Resources
有关编译核心更进一步的介绍请参考 Kernel HOWTO 以及核心原始程式码目录里的 README 档案
这里是你要编译进去的选项:
下列选项要回答 YES:
* Prompt for development and/or incomplete code/drivers
CONFIG_EXPERIMENTAL
- 这将让你能选择把实验性的 IP Masquerade 程式码编译到核心里去
* Enable loadable module support
CONFIG_MODULES
- 让你能够载入模组
* Networking support
CONFIG_NET
* Network firewalls
CONFIG_FIREWALL
* TCP/IP networking
CONFIG_INET
* IP: forwarding/gatewaying
CONFIG_IP_FORWARD
* IP: firewalling
CONFIG_IP_FIREWALL
* IP: masquerading (EXPERIMENTAL)
CONFIG_IP_MASQUERADE
- 这虽然是实验性的,但却是 *必须* 的
* IP: ipautofw masquerade support (EXPERIMENTAL)
CONFIG_IP_MASQUERADE_IPAUTOFW
- 建议使用
* IP: ICMP masquerading
CONFIG_IP_MASQUERADE_ICMP
- 支援 ICMP 封包伪装,可选用
* IP: always defragment
CONFIG_IP_ALWAYS_DEFRAG
- 高度建议使用
* Dummy net driver support
CONFIG_DUMMY
- 建议使用
注意: 这些只是 IP Masquerade 所需要的,你还需选择其它任何你的设定需要的选项.
编译核心之後,你应该编译并安装模组:
make modules modules_install
然後你应该在 /etc/rc.d/rc.local (或任何你认为合适的档案)里加上几行以便每次启动时自动载入 /lib/modules/2.0.x/ipv4/ 里所需的模组:
.
.
.
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
(以及其它像是 ip_masq_cuseeme, ip_masq_vdolive 等模组,如果你有加上适当的修补)
.
.
.
注意: 你也可以在使用 ip_masq 之前手动地载入它,但是不要使用 kerneld 来载入,这是不行的!
3.2 指定私用网路的 IP 位址
因为所有其它机器都没有正式指定的位址,必须有个正确的方式来分配位址给这些机器.
节自 IP Masquerade FAQ:
有份 RFC (#1597) 是有关没有与外界连线的网路该使用什麽 IP 位址.有三个数字区块是特别为这个目的而保留的.其中一个我使用的是 192.168.1.n 到 192.168.255.n 之间的 255 Class-C 子网路.
节自 RFC 1597:
第三节: 私用位址空间
网际网路位址指定当局(IANA: Internet Assigned Numbers Authority)
已经保留下列三个区块的 IP 位址空间给私用网路:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
我们将称第一个区块为 "24位元区块",第二个为 "20位元区块",
而第三个则称为 "16位元区块".注意到第一个区块就只是个
class A 网路号码,第二个区块则是连续的 16 个 class B 网路
号码,而第三个区块是一组 255 个连续的 class C 网路号码.
所以,如果你要使用一个 class C 网路的话,那麽你的机器应该以 192.168.1.1, 192.168.1.2, 192.168.1.3, ..., 192.168.1.x 来名之.
192.168.1.1 通常是闸道这台机器,在此即你连上网际网路的 Linux 主机.注意 192.168.1.0 以及 192.168.1.255 分别为网路以及广播位址,是保留的.避免在你的机器上使用这些位址.
3.3 配置其它机器
除了为每台机器设定适当的 IP 位址之外,你也应该设定适当的闸道.一般说来,这是非常直接了当的.你只需简单地输入 Linux 主机的位址(通常是 192.168.1.1)作为闸道位址.
关於领域名称服务,你可以加入任何 DNS 系统.最可能的应该是你 Linux 使用的那一个.你也可以选择性地加上任何网域字尾(domain suffix) .
在你重新配置这些 IP 位址之後,记得重新启动适当的服务或是重新开机.
下面的配置□例假设你使用一个 Class C 网路并且以 192.168.1.1 作为 Linux 主机的位址.请注意 192.168.1.0 及 192.168.1.255 是保留的.
配置 Windows 95
如果你还没有安装网路卡以及界面驱动程式,现在做.
到 '控制台/网路' 里去.
如果你的网路配置里没有 'TCP/IP 协定' 则加进去.
在'TCP/IP 内容'中,选择'IP 位址'并且把 IP 位址设定为 192.168.1.x,(1
在'DNS 配置'/'DNS 伺服器'下加入你的 Linux 主机使用的 DNS (通常可以在 /etc/resolv.conf 里找到).你可以选择性地加入适当的网域字尾搜寻顺序.
不要变更原先的其它设定,除非你知道自己在做什麽.
在所有的对话盒中按下'确定'并且重新启动系统.
测试网路连线,Ping 你的 linux 主机: 从'开始/执行',输入 ping 192.168.1.1
(这只是区域网路连线测试,你现在还不能 ping 外面的世界.)
你可以在 windows 目录下选择性地建立一个 HOSTS 档案,如此你可以使用区域网路里的机器名称.在 windows 目录里有个称为 HOSTS.SAM 的□例.
配置 Windos for Workgroup 3.11
如果你还没有安装网路卡以及界面驱动程式,现在做.
如果你还未安装 TCP/IP 32b 套件的话就装吧.
在 'Main'/'Windows Setup'/'Network Setup', 按下 'Drivers'.
将 'Network Drivers' 里的 'Microsoft TCP/IP-32 3.11b' 反白,按下 'Setup'.
设定 IP 位址於 192.168.1.x (1 < x < 255), 然後设定 Subnet Mask 为 255.255.255.0 以及 Default Gateway 为 192.168.1.1.
不要开启 'Automatic DHCP Configuration' 并在 'WINS Server' 中放入任何东西,除非你在一 Windows NT 网域中而且你知道你在做什麽.
按下 'DNS', 填入在 3.3.1 小节中步骤六提到的资讯,然後在你完成後按下 'OK' 钮.
按下 'Advanced', 如果你使用类似 3.3.1 小节步骤十中提到主机档案,勾选 'Enable DNS for Windows Name Resolution' 及 'Enable LMHOSTS lookup'.
在所有对话盒中按 'OK' 并重新启动系统.
Ping 一下你的 Linux 主机以测试网路连接: 在 'File/Run' 输入: ping 192.168.1.1
(这只不过是区域网路的连接测试,你还不能 ping 到外面的世界).
Configuring Windows NT
如果你还没有安装网路卡以及界面驱动程式,现在做.
到 'Main'/'Control Panel'/'Network'.
如果你还没装 TCP/IP 服务的话从 'Add Software' 选单中加入 TCP/IP 协定及相关的部份.
在 'Network Software and Adapter Cards' 里将 'Installed Network Software' 选择盒中的 'TCP/IP 协定' 反白.
在 'TCP/IP Configuration',选择适当的界面驱动程式,例如,[1]Novell NE2000 Adapter.然後设定 IP 位址於 192.168.1.x (1 < x < 255),然後设定 Subnet Mask 为 255.255.255.0 以及 Default Gateway 为 192.168.1.1.
不要开启 'Automatic DHCP Configuration' 并在 'WINS Server' 中放入任何东西,除非你在一 Windows NT 网域中而且你知道你在做什麽.
按下 'DNS', 填入在 3.3.1 小节中步骤六提到的资讯,然後在你完成後按下 'OK' 钮.
按下 'Advanced', 如果你使用类似 3.3.1 小节步骤十中提到主机档案,勾选 'Enable DNS for Windows Name Resolution' 及 'Enable LMHOSTS lookup'.
在所有对话盒中按 'OK' 并重新启动系统.
Ping 一下你的 Linux 主机以测试网路连接: 在 'File/Run' 输入: ping 192.168.1.1
(这只不过是区域网路的连接测试,你还不能 ping 到外面的世界).
配置 UNIX 系列的系统
如果你还未安装你的网路卡并以适当的界面驱动程式重新编译你的核心,现在就做吧.
安装 TCP/IP 网路,像是 nettools 套件,如果你还没装的话.
将 IPADDR 设为 192.168.1.x (1 < x < 255), 然後将 NETMASK 设为 255.255.255.0, GATEWAY 设为 192.168.1.1, 以及 BROADCAST 设为 192.168.1.255.
例如,在 Red Hat Linux 系统上你可以编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,或直接从 Control Panel 里做.
(在 SunOS, BSDi, Slackware Linux, 等中都不相同...)
将你的名称伺服器及领域搜寻字尾加到 /etc/resolv.conf.
依据你的设定你可能要更新你的 /etc/networks 档案.
重新启动适当的服务,或简单的重新开机.
发出 ping 指令: ping 192.168.1.1 以测试到你的 gateway 机器的连接性.
(这只不过是区域网路的连接测试,你还不能 ping 到外面的世界).
配置使用 NCSA Telnet 套件的 DOS 机器
如果你还没有安装网路卡,现在做.
载入适当的封包驱动程式.对於 NE2000 卡来说,如果你的卡设定为 IRQ 10 及硬体位址於 0x300,用 nwpd 0x60 10 0x300.
建立一新目录,然後解开 NCSA Telnet 套件: pkunzip tel2308b.zip
使用文字编辑器打开 config.tel 档案.
设定 myip=192.168.1.x (1 < x < 255), 以及 netmask=255.255.255.0.
在本例子中,你应该设定 hardware=packet, interrupt=10, ioaddr=60.
你至少要有一单独的机器设定为 gateway,也就是 Linux 主机:
name=default
host=yourlinuxhostname
hostip=192.168.1.1
gateway=1
还要有另外一个指定领域名称服务:
name=dns.domain.com ; hostip=123.123.123.123; nameserver=1
注意: 用你 Linux 主机使用的 DNS 的适当资讯来取代.
储存你的 config.tel 档案.
Telnet 到你的 Linux 主机以测试网路连接: telnet 192.168.1.1
配置执行 MacTCP 的 MacOS 机器
如果你还没为你的乙太网路转接器安装适当的驱动程式,最好现在就作.
打开 MacTCP control panel,选择适当的网路驱动程式(Ethernet, 而非 EtherTalk) 并按下 'More...' 钮.
在 'Obtain Address:', 按 'Manually'.
在 'IP Address:' 下,从弹出选单中选择 class C.忽略对话盒中的其它部份.
在 'Domain Name Server Information:' 中填入适当资讯.
在 'Gateway Address:' 中,填入 192.168.1.1.
按下 'OK' 以储存设定.在 MacTCP control panel 的主视窗中,在 'IP Address:' 盒中填入你 Mac 的 IP 位址 (192.168.1.x, 1 < x < 255).
关闭 MacTCP control panel. 如果有的弹出视窗提醒你重新开机,那就做吧.
你可以 ping 一下你的 Linux 主来来测试网路连线.如果你有 MacTCP Watcher 免费程式,按下 'Ping' 钮,然後在弹出的对话盒中键入你的 Linux 主机的地址(192.168.1.1).(这只不过是区域网路的连接测试,你还不能 ping 到外面的世界.)
你可选择性地在 System Folder 中建立一 Hosts 档案以便你可以使用你区域网路里机器的主机名称.这个档案可能已经存在於你的 System Folder 里,而且它应该会包含一些(注解掉的)□例项目而你可以根据你的需要来修改.
配置执行 Open Transport 的 MacOS 系统
如果你还没为你的乙太网路转接器安装适当的驱动程式,最好现在就作.
打开 TCP/IP Control Panel 然後从 Edit 选单中选择 'User Mode ...'.确定使用者模式至少是 'Advanced' 然後按下 'OK' 钮.
从 File 选单中选择 'Configurations...'.选择 'Default' 配置并按下 'Duplicate...' 钮.在 'Duplicate Configuration' 对话盒中键入 'IP Masq' (或是其它能让你知道这是个特殊配置的字眼),它可能会说像是 'Deafault copy' 什麽的.然後按下 'OK' 钮,以及 'Make Active' 钮.
从 'Connect via:' 弹出式选单中选择 'Ethernet'.
从 'Configure:' 弹出式选单选择适当的项目.如果你不知道应该选什麽,你可能应该重新选择你的 'Default' 配置然後离开.我用的是 'Manually'.
在 'IP Address:' 盒中输入你的 Mac 的 IP 位址 (192.168.1.x, 1 < x < 255).
在 'Subnet mask:' 盒中输入 255.255.255.0.
在 'Router address:' 盒中输入 192.168.1.1 .
在 'Name server addr.:' 盒中输入你的领域名称伺服器 IP 位址.
在 'Implicit Search Path:' 里的 'Starting domain name' 输入你的网际网路领域名称(例如 'microsoft.com').
接下来的步骤是选择性的.不正确的值可能导致严重的错误行为.如果你不确定,最好留下空白,不要勾选.如果需要的话,除去那些栏位中的任何资讯.就我目前所知没有办法在 TCP/IP 对话视窗中告诉系统不要使用以前选过的另一 "Hosts" 档案.如果你知道的话,我很有兴趣了解.如果你的网路需要 802.3 框架的话勾选 '802.3'.
按下 'Options...' 以确定 TCP/IP 有作用.我使用 'Load only when needed' 选项.如果你执行并结束 TCP/IP 应用程式许多次而未重新启动你的机器,你将发现不选 'Load only when needed' 会抑制/降低你机器的记忆体管理效能.不选此项目将使 TCP/IP 协定总是被载入便於使用.如果勾选了,TCP/IP 协定会自动在需要时载入并在不需要时释放.载入与释放的过程可能使你机器的记忆体变的碎裂.
你可以 ping 一下你的 Linux 主来来测试网路连线.如果你有 MacTCP Watcher 免费程式,按下 'Ping' 钮,然後在弹出的对话盒中键入你的 Linux 主机的地址(192.168.1.1).(这只不过是区域网路的连接测试,你还不能 ping 到外面的世界.)
你可以在 System Folder 中建立一 Hosts 档案以便你可以使用你区域网路里机器的主机名称.这个档案可能已经或还未存在於你的 System Folder 里.如果有的话,它应该会包含一些(注解掉的)□例项目而你可以根据你的需要来修改.如果还没有的话,你可以从一部正在运作 MacTCP 的系统中取回,或自己建一个(它遵循 Unix 的 /etc/hosts 档案格式,在 RFC 1035 的第 33 页中描述).一旦你建立了这个档案,打开 TCP/IP control panel,按下 'Select Hosts File...' 钮,然後打开 Hosts 档案.
关闭对话盒或从 File 选单中选择 'Close' 或 'Quit' 然後按下 'Save' 以储存你所做的改变.
这些改变会立刻生效,但重新开机也无害.
配置使用 DNS 的 Novell 网路
如果你还没为你的乙太网路转接器安装适当的驱动程式,最好现在就作.
从 ftp.novell.com/pub/updates/unixconn/lwp5 取回 tcpip16.exe.
编辑 c:\nwclient\startnet.bat
: (here is a copy of mine)
SET NWLANGUAGE=ENGLISH
LH LSL.COM
LH KTC2000.COM
LH IPXODI.COM
LH tcpip
LH VLM.EXE
F:
编辑 c:\nwclient\net.cfg
: (将驱动程式改为你的, i.e. NE2000)
Link Driver KTC2000
Protocol IPX 0 ETHERNET_802.3
Frame ETHERNET_802.3
Frame Ethernet_II
FRAME Ethernet_802.2
NetWare DOS Requester
FIRST NETWORK DRIVE = F
USE DEFAULTS = OFF
VLM = CONN.VLM
VLM = IPXNCP.VLM
VLM = TRAN.VLM
VLM = SECURITY.VLM
VLM = NDS.VLM
VLM = BIND.VLM
VLM = NWP.VLM
VLM = FIO.VLM
VLM = GENERAL.VLM
VLM = REDIR.VLM
VLM = PRINT.VLM
VLM = NETX.VLM
Link Support
Buffers 8 1500
MemPool 4096
Protocol TCPIP
PATH SCRIPT C:\NET\SCRIPT
PATH PROFILE C:\NET\PROFILE
PATH LWP_CFG C:\NET\HSTACC
PATH TCP_CFG C:\NET\TCP
ip_address xxx.xxx.xxx.xxx
ip_router xxx.xxx.xxx.xxx
最後建立
c:\bin\resolv.cfg
:
SEARCH DNS HOSTS SEQUENTIAL
NAMESERVER 207.103.0.2
NAMESERVER 207.103.11.9
我希望这些某些使用 Novell 网路的人有帮助.还有,这对 Netware 3.1x 或 4.x 都有用.
配置 OS/2 Warp
如果你还没为你的乙太网路转接器安装适当的驱动程式,最好现在就作.
如果你还没装 TCP/IP 通讯协定的话现在就装.
开启 Programms/TCP/IP (LAN) / TCP/IP 设定
在 'Network' 栏位加上你的 TCP/IP 位址并设定你的 netmask (255.255.255.0)
在 'Routing' 栏位按下 'Add'. 将 Type 栏位设定为 'default' 并在 'Router Address' 栏位中键入你的 Linux 主机的 IP 位址 (192.168.1.1).
将 'Hosts' 栏位设定与你的 Linux 主机使用相同的 DNS (名称伺服器)位址.
关闭 TCP/IP 控制台.在接下来的问题中回答 yes.
重新启动你的系统
你可以 ping 你的 Linux 主机以测试网路配置.在 'OS/2 命令视窗' 上键入 'ping 192.168.1.1'. 如果收到 ping 封包一切就没问题.
配置其它系统
它们应该按照相同的理论来建立.查阅上述的小节.如果你有兴趣写关於其它的作业系统的配置,请送详细的建立指示到 ambrose@writeme.com.
3.4 配置 IP 转送(Forwarding)的方式
到目前为止,你应该已经安装好核心以及其它需要的套件,也载入了你的模组.同时,其它机器的 IP 位址,闸道,以及 DNS 也该全都设定完成.
现在,唯一剩下要做的事是使用 ipfwadm 转送适当的封包给适当的机器:
** 这可以用许多不同的方式来达成.下列的建议与例子对我来说能用,但你可能有不同的主意,详节部份请参考 4.4 节及 ipfwadm 的线上手册. **
ipfwadm -F -p deny
ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0
其中 x 视你的子网路而定,为下列数字之一,而 yyy.yyy.yyy.yyy 则是你的网路位址.
netmask | x | Subnet
~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0 | 8 | Class A
255.255.0.0 | 16 | Class B
255.255.255.0 | 24 | Class C
255.255.255.255 | 32 | Point-to-point
例如,如果我是在一个 class C 子网路上,我得输入:
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
因为 bootp 请求封包没有合法的 IP's ,客户端并不知道它的位址,对於在伪装/防火墙上执行 bootp 伺服器的人必须在 deny 之前执行下列指令:
ipfwadm -I -a accept -S 0/0 68 -D 0/0 67 -W bootp_clients_net_if_name -P udp
你也可以分别对每台机器设定.例如,如果我想让 192.168.1.2 及 192.168.1.8 能够存取网际网路,但不允许其它机器使用的话,我得输入:
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0
ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0
另外,你可以输入网路遮罩以取代该值,例如 192.168.1.0/255.255.255.0
常见的错误是像这样的第一行指令
ipfwadm -F -p masquerade
不要把你的预设方式(policy)定为伪装(masquerading) - 否则可以操控他们的递送路径(routing) 的人将能够直接穿过(tunnel)你的闸道,以此伪装他们的身分!
再一次,你可以把这些加入 /etc/rc.local 档案,任何一个你比较喜欢的 rc 档案,或是在每次你需要 IP Masquerade 时手动执行之.
请阅读 4.4 节有关 Ipfwadm 的详细指引.
3.5 测试 IP Masquerade
在这些工作完成後,现在是试试看的时候了.确定你的 Linux 主机到网际网路的连线是通的.
你可以在其它机器上试著浏览一些'网际网路!!!' 上的网页,看是否能见到.我建议第一次尝试时使用 IP 位址而不要用主机名称,因为你的 DNS 设定有可能并不正确.
例如,你可以使用 http://152.2.254.81/mdw/linux.html 来存取 Linux 文件计画网页 http://sunsite.unc.edu/mdw/linux.html.
如果你看见那漂亮的帆船(译注: LDP 网页好像没有帆船? :P),那麽恭喜! 它可以运作了! 接著你可以使用主机名称试试看,然後是 telnet, ftp, RealAudio, True Speech,以及任何 IP Masquerade 支援的东西.
到目前为止,我还不曾在上面的设定上发生过问题,而那些花下时间让这个绝妙功能运作的人完全同意这些设定.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
4. 其它 IP Masquerade 的问题及软体支援
4.1 IP Masquerade 的问题
某些协定现在无法配合 masquerading 使用,因为它们不是假设有关埠号的一些事情,就是在位址及埠号的资料流里编码资料 - 後面这些协定需要在 masquerading 程式码里建立特定的代理程式使它们能运作.
4.2 进入系统的服务(incoming services)
Masquerading 完全不能处理外界的服务请求 (incoming services).只有极少方法能允许它们,但这完全与 masquerading 无关,而且实在是标准的防火墙方式.
如果你并不要求高度的安全性那麽你可以简单地重导(redirect)这些埠.有几种不同的方法可以做这件事 - 我使用一只修改过的 redir 程式(我希望这只程式很快就能从 sunsite 及其 mirrors 取得).如果你希望能够对外界进入系统的服务请求有某种程度的身分验认(authorisation) 那麽你可以在 redir 的顶层(0.7 or above) 使用 TCP wrappers 或是 Xinetd 来允许特定 IP 位址通过,或使用其它的工具.TIS 防火墙工具集是寻找工具及资讯的好地方.
更多的详节可在 IP Masquerade Resource 找到.
4.3 已支援的客户端软体以及其它设定方面的注意事项
** 下面的列表将不再被维护了.可经由 Linux IP masquerading 运作的应用程式请参考 这里 和 IP Masquerade Resource 以取得进一步的细节. **
一般说来,使用传输控制协定(TCP) 或是使用者定义资料协定 (UDP)的应用程式应该都能运作.如果你有任何关於应用程式与 IP Masquerade 相容的建议,提示或问题,请拜访由 Lee Nevo 维护的 可与 Linux IP masquerading 运作的应用程式 网页.
可以使用的客户端软体
一般客户端软体
HTTP
所有有支援的平台,浏览网页
POP & SMTP
所有有支援的平台,电子邮件软体
Telnet
所有有支援的平台,远端签入作业
FTP
所有有支援的平台,配合 ip_masq_ftp.o 模组(不是所有站台都能配合各种客户端软体;例如某些不能使用 ws_ftp32 触及的站台却能使用 netscape 进入)
Archie
所有有支援的平台,档案搜寻软体(并非所有 archie 客户端软体都支援)
NNTP (USENET)
所有有支援的平台,网路新闻软体
VRML
Windows (可能所有有支援的平台都可以),虚拟实境浏览
traceroute
主要是 UNIX 系列的平台,某些变种可能无法运作
ping
所有平台,配合 ICMP 修补档
anything based on IRC
所有有支援的平台,配合 ip_masq_irc.o 模组
Gopher client
所有有支援的平台
WAIS client
所有有支援的平台
多媒体客户端软体
Real Audio Player
Windows, 网路资料流音讯,配合载入 ip_masq_raudio 模组
True Speech Player 1.1b
Windows, 网路资料流音讯
Internet Wave Player
Windows, 网路资料流音讯
Worlds Chat 0.9a
Windows, 客户-伺服端立体交谈(3D chat) 程式
Alpha Worlds
Windows, Windows, 客户-伺服端立体交谈(3D chat) 程式
Powwow
Windows, 点对点文字声音白板通讯,如果你呼叫别人,人们可以与你交谈,但是他们不能呼叫你.
CU-SeeMe
所有有支援的平台,配合载入 cuseeme 模组,详细细节请参 阅 IP Masquerade Resource
VDOLive
Windows, 配合 vdolive 修补档
注意: 即使不是由你呼叫别人,使用 ipautofw 套件某些客户端软体像是 IPhone 以及 Powwow 可能还是可以运作(参阅 4.6 节)
其它客户端软体
NCSA Telnet 2.3.08
DOS, 包含 telnet, ftp, ping 等等的一组套件.
PC-anywhere for windows 2.0
MS-Windows, 经由 TCP/IP 远端遥控 PC ,只有在作为客户端而非主机端的情形下才能运作
Socket Watch
使用 ntp - 网路时间协定
Linux net-acct package
Linux, 网路帐号管理套件
无法使用的客户端软体
Intel Internet Phone Beta 2
可以连上但声音只能单向(往外)传送
Intel Streaming Media Viewer Beta 1
无法连上伺服器
Netscape CoolTalk
无法连接对方
talk,ntalk
这将不会运作 - 需要撰写一份核心代理程式.
WebPhone
目前无法运作(它做了不合法的位址假设).
X
没有测试过,但我想除非有人建立一套 X 代理程式否则它无法运作,这可能是 masquerading 程式码之外的一个外部程式.一个让它运作的方式是使用 ssh 作为链结并且使用其内部的 X 代理功能来执行!
已测试过可以作为其它机器的平台/作业系统
Linux
Solaris
Windows 95
Windows NT (both workstation and server)
Windows For Workgroup 3.11 (with TCP/IP package)
Windows 3.1 (with Chameleon package)
Novel 4.01 Server
OS/2 (including Warp v3)
Macintosh OS (with MacTCP or Open Transport)
DOS (with NCSA Telnet package, DOS Trumpet works partially)
Amiga (with AmiTCP or AS225-stack)
VAX Stations 3520 and 3100 with UCX (TCP/IP stack for VMS)
Alpha/AXP with Linux/Redhat
SCO Openserver (v3.2.4.2 and 5)
IBM RS/6000 running AIX
(谁还测试过其它平台?)
4.4 IP Firewall Administration (ipfwadm)
这一节提供关於 ipfwadm 更深入的使用指引.
这是一个给在固定 PPP 位址之 PPP 连线後面的防火墙/伪装系统使用的设定.信赖(trusted) 界面为 192.168.255.1, PPP 界面已经修改过以避免犯错 :) .我分别列出每一个进入(incoming)以及送出(outgoing)界面来抓出变更递送路径(stuffed routing) 以及/或是伪装(masquerading)等等这些个 IP spoofing 技巧.同时任何没有明确允许的东西都是禁止的!
#!/bin/sh
#
# /etc/rc.d/rc.firewall, 定义防火墙配置,从 rc.local 执行.
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# 测试用,等待一段时间然後清除所有的防火墙规则.
# 如果你希望防火墙十分钟之後自动关闭就取消下列几行的注解.
# (sleep 600; \
# ipfwadm -I -f; \
# ipfwadm -I -p accept; \
# ipfwadm -O -f; \
# ipfwadm -O -p accept; \
# ipfwadm -F -f; \
# ipfwadm -F -p accept; \
# ) &
# 进入伪装闸道的设定,更新以及设定拒绝的策略(policy).事实上
# 预设的策略没什麽关系,因为原先就希望拒绝以及记录所有规则
ipfwadm -I -f
ipfwadm -I -p deny
# 伪装闸道的本地(local) 界面,区域网路里的机器,允许连往任何
# 地方
ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0
# 伪装闸道的远端(remote)界面,声称是区域网路里的机器,IP spoofing
# 拒绝
ipfwadm -I -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0/0 -o
# 伪装闸道的远端界面,任何来源,允许送往固定 (permanent) PPP
# 位址
ipfwadm -I -a accept -V your.static.PPP.address -S 0.0.0.0/0 -D your.static.PPP.address/32
# 回授(loopback)界面是允许的
ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
# 捕捉所有规则,任何其它的进入方式都会被拒绝并记录.可惜没有
# 记录用的选项但这可以代替
ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
# 送出伪装闸道的设定,更新以及设定拒绝的策略(policy).事实上
# 预设的策略没什麽关系,因为原先就希望拒绝以及记录所有规则
ipfwadm -O -f
ipfwadm -O -p deny
# 本地界面,允许任何来源送出至区域网路
ipfwadm -O -a accept -V 192.168.255.1 -S 0.0.0.0/0 -D 192.168.0.0/16
# 远端界面送出至区域网路,stuffed routing ,拒绝
ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/16 -o
# 区域网路的机器从远端界面送出,stuffed masquerading,拒绝
ipfwadm -O -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0/0 -o
# 区域网路的机器从远端界面送出,stuffed masquerading,拒绝
ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/16 -o
# 任何其它远端界面送出的东西都是允许的
ipfwadm -O -a accept -V your.static.PPP.address -S your.static.PPP.address/32 -D 0.0.0.0/0
# 回授(loopback)界面是允许的
ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
# 捕捉所有规则,任何其它的送出方式都会被拒绝并记录.可惜没有
# 记录用的选项但这可以代替
ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
# 伪装闸道的转送设定,更新以及设定拒绝的策略(policy).事实上
# 预设的策略没什麽关系,因为原先就希望拒绝以及记录所有规则
ipfwadm -F -f
ipfwadm -F -p deny
# 伪装区域网路的机器从本地界面送出至任何地方的资料
ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0
# 捕捉所有规则,任何其它的转送方式都会被拒绝并记录.可惜没有
# 记录用的选项但这可以代替
ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
你可以使用 -I, -O 或是 -F 来控制到某特定节点的流量.记得这些规则集是由上往下扫描的而 -a 代表"附加(append)"到目前现有的规则集中所以任何限制必须在全域(global)规则之前出现.例如(没测试过) :-
使用 -I 规则.可能是速度最快的但是它只能阻止区域网路里的机器,防火墙本身仍然可以存取"禁止"的节点.当然你可能想允许这样的组合.
... start of -I rules ...
# 拒绝并记录本地界面,区域网路里的机器通往 204.50.10.13
ipfwadm -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 ...
使用 -O 规则.最慢,因为封包首先经过伪装但这个规则阻止防火墙存取禁止的节点.
... 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 ...
使用 -F 规则.可能比 -I 慢而这仍然只能阻止伪装的机器(例如内部的机器),防火墙仍然可以取得禁止的节点.
... 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 ...
不需要有个特定的规则来允许 192.168.0.0/16 通往 204.50.11.0, 这涵盖於全域规则中.
有一种以上的方法可以对界面设定上述规则.例如可以使用 -W eth0 来取代 -V 192.168.255.1,可以使用 -W ppp0 来取代 -V your.static.PPP.address.个人的选择最重要.
4.5 IP Masquerade 以及需求式拨接(Demand-Dial-Up)
如果你想把网路设定成自动拨接上网际网路,那麽 diald demand 拨接套件将会是很棒的工具.
要设定 diald, 请查看 Setting Up Diald for Linux Page 网页
一旦 diald 以及 IP masq 设定完成,你可以在任何客户端机器上启动 web, telnet 或是 ftp 连线.
Diald 将会侦测到进入系统的请求,然後拨接到你的 ISP 并建立连线.
第一次连线将会发生逾时(timeout) 的情形.如果你使用类比式的数据机那这是无可避免的.建立数据机连结以及 PPP 连线所花费的时间将会使你的客户端软体不耐.如果你使用 ISDN 连线那这是可以避免的.你得做的只是结束客户端软体现行的程序再重新启动即可.
4.6 IPautofw 封包转送程式
IPautofw 是一个给 Linux masquerading 使用的一般性 TCP 及 UDP 转送程式.一般使用需要 UDP 的套件的时候,需要载入特定的 ip_masq 模组;ip_masq_raudio, ip_masq_cuseeme,... Ipautofw 以更一般化的方式运作,它将会转送包含这些应用程式特定模组都不会转送的任何资料流型态.如果没有正确地管理这可能造成安全上的漏洞.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
5. 其它
5.1 求助
** 请不要尝试送电子邮件给我问 IP Masquerade 的问题.因於个人工作的负担,我无法保证回覆所有非 website 相关的问题.请将你的问题送到 IP Masquerade mailing list (我想这是最佳的求助来源).这点很抱歉,但我不想让你等几个星期才收到回信. **
IP Masquerade Resource page 应该有足够的资讯设定 IP Masquerade.
加入 IP masquerade 邮递列表(建议)
要订阅的话,寄封标题为 "subscribe" (不包含引号)的邮件到 masq-request@indyramp.com
要取消订阅的话,寄封标题为 "unsubscribe" (不包含引号)的邮件到 masq-request@indyramp.com
要获得使用这个邮递列表的协助说明的话,寄封标题为 "archive help" 或 "archive dir" (不包含引号)的邮件到 masq-request@indyramp.com
IP masquerade 邮递列表档案 包含所有过去送到这个邮递列表的讯息。
本文件 Linux IP Masquerade mini HOWTO for kernel 2.x (如果你使用 1.3.x or 2.x 的核心)
IP Masquerade HOWTO for kernel 1.2.x 如果你使用比较旧的核心
IP masquerade FAQ 有些一般性的资讯
X/OS Ipfwadm page 包含关於 ipfwadm 套件的原始程式码,执行档,文件,以及其它资讯
由 Lee Nevo 所维护的网页 可与 Linux IP masquerading 运作的应用程式 提供提示与技巧使得应用程式能与 IP Masquerade 运作.
LDP Network Administrator's Guide 这是新手尝试设定网路的必要资讯
Linux NET-2 HOWTO 也有许多关於 Linux 网路方面有用的资讯
Linux ISP Hookup HOWTO 以及 Linux PPP HOWTO 给你如何把 Linux 主机连上网际网路的相关资讯
Linux Ethernet-Howto 有关设定执行乙太网路的区域网路很棒的资讯来源
你也可能对 Linux Firewalling and Proxy Server HOWTO 有兴趣
Linux Kernel HOWTO 将会指引你编译核心的过程
其它 Linux HOWTOs 像是 Kernel HOWTO
张贴到这个 USENET 新闻群组: comp.os.linux.networking
5.2 感谢
Gabriel Beitler, gbeitler@aciscorp.com
on providing section 3.3.8 (setting up Novel)
Ed Doolittle, dolittle@math.toronto.edu
on suggestion to -V option in ipfwadm command for improved security
Matthew Driver, mdriver@cfmeu.asn.au
on helping extensively on this HOWTO, and providing section 3.3.1 (setting up Windows 95)
Ken Eves, ken@eves.com
on the FAQ that provides invaluable information for this HOWTO
Ed. Lott, edlott@neosoft.com
for a long list of tested system and software
Nigel Metheringham, Nigel.Metheringham@theplanet.net
on contributing his version of IP Packet Filtering and IP Masquerading HOWTO, which make this HOWTO a better and technical in-depth document
section 4.1, 4.2, and others
Keith Owens, kaos@ocs.com.au
on providing an Excellent guide on ipfwadm section 4.2
on correction to ipfwadm -deny option which avoids a security hole, and clarified the status of ping over IP Masquerade
Rob Pelkey, rpelkey@abacus.bates.edu
on providing section 3.3.6 and 3.3.7 (setting up MacTCP and Open Transport)
Harish Pillay, h.pillay@ieee.org
on providing section 4.5 (dial-on-demand using diald)
Mark Purcell, purcell@rmcs.cranfield.ac.uk
on providing section 4.6 (IPautofw)
Ueli Rutishauser, rutish@ibm.net
on providing section 3.3.9 (setting up OS/2 Warp)
John B. (Brent) Williams, forerunner@mercury.net
on providing section 3.3.7 (setting up Open Transport)
Enrique Pessoa Xavier, enrique@labma.ufrj.br
on the bootp setup suggestion
developers of IP Masquerade for this great feature
Delian Delchev, delian@wfpa.acad.bg
Nigel Metheringham, Nigel.Metheringham@theplanet.net
Keith Owens, kaos@ocs.com.au
Jeanette Pauline Middelink, middelin@polyware.iaf.nl
David A. Ranch, trinity@value.net
Miquel van Smoorenburg, miquels@q.cistron.nl
Jos Vos, jos@xos.nl
还有其它我忘了提的(请让我知道)
所有送回馈及建议到邮递列表上的使用者,特别是那些报告文件上的错误以及已支援与未支援的客户端的.
如果我没有包括某些使用者送给我的资讯我感到抱歉.有如此多的建议与想法送到我这里,但我只是没有足够的时间去确定或者我不小心丢了.我正尽我最大的努力整合所有送给我的资讯到这份文件里.感谢你的辛劳,而我也希望你能谅解我的情况.
5.3 参考资料
Ken Eves 的 IP masquerade 常见问答集
Indyramp Consulting 之 IP masquerade 邮递列表
X/OS 的 Ipfwadm 网页
各个关於网路的 Linux HOWTOs
--------------------------------------------------------------------------------
Tags:IP Masquerade mini
编辑录入:爽爽 [复制链接] [打 印]- ››iphone图片拉伸的几种方法
- ››iphone正则表达式的简单使用
- ››iPhone开发Unresolved Symbols CAKeyframeAnimati...
- ››IPhone开发-“此证书是由未知颁发机构签名”解决方...
- ››IPhone开发-整合私钥和证书,生成.p12文件
- ››iPhone应用开发-UIPickerView选取器详解
- ››iphone 获取屏幕的宽度和高度
- ››iPhone读取工程包中的二进制文件
- ››iPhone新手机 不挂YouTube APP
- ››iPhone 获取指定格式的时间和日期
- ››IPad使用UIModalPresentationFormSheet时隐藏键盘...
- ››IPmt函数用法
更多精彩
赞助商链接