争怎路由网:是一个主要分享无线路由器安装设置经验的网站,汇总WiFi常见问题的解决方法。

IP 伪 装 法

时间:2024/3/13作者:未知来源:争怎路由网人气:

4 +----------+ <-Internal Network->

在这个例子中我们考虑 4 台电脑系统(想必遥远的右方还有些东西让你到网际网路的 IP 连线能够连接,以及一些(远超过这一页)在网际网路上你有兴趣交换资讯的东西)。这个 Linux 系统伪装闸道是 abox, bbox, cbox 内部网路机器连接网际网路的伪装闸道。内部网路使用指定的私用(private) 网路位址,在这个案例中是 class C网路 192.168.1.0, linux 机器拥有位址 192.168.1.1 而’其它’系统也拥有此网路上的位址。

这三台机器 abox, bbox 以及 cbox (它们可以执行任何作业系统-像是 Windows95, Macintosh MacTCP 或甚至是另一台 linux 机器,只要它们能了解 IP )可以连线到网际网路上的其它机器去,然而
这个伪装系统闸道转换它们所有的连线所以这些连线看起来像是原本即从伪装闸道本身发出的,而且还安排伪装连线传回的资料转回原先的系统-所以在内部网路上的系统看到的是直接通往网际网路的递送路径而且不知道他们的资料被伪装过。

2.6. 在 Linux 2.x 上使用 IP Masquerade 的需求核心 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)。你的 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 网页上有更多关於版本的资讯。你可以选择性地应用一些 IP Masquerade 修补档打开其它功能。从这里可以取的更多资讯, IP Masquerade Resources(这些修补档适用於所有的 2.0.x 核心)

3. IP Masquerade 的设定

  如果你的私用网路里有任何重要的资讯,在使用 IP Masquerade之前请三思。这可能成为你通往网际网路的闸道,反之亦然,也可能成为另一边的世界进入你私用网路的途径。

3.1. 编译核心加入 IP Masquerade 的支援。首先,你需要核心的原始程式码(最好是稳定的2.0.0 版或以上的核心)。如果这是你第一次编译核心,不要害怕。事实上,这非常容易而且涵盖於 Linux Kernel HOWTO。使用指令: tar zxvf 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_masq 程式码编译到核心里去

* 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: always defragment CONFIG_IP_ALWAYS_DEFRAG

- 高度建议

* Dummy net driver support CONFIG_DUMMY

- 建议使用

注意: 这些只是 ip_masq 所需要的,你还需选择其它任何你的设定需要的选项。

编译核心之後,你应该编译并安装模组:

make modules; make 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.x 分别为网路以及广播位址,是保留的。避免在你的机器上使用这些位址。

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是保留的。

3.3.1. 配置 Windows 95

1.如果你还没有安装网路卡以及界面驱动程式,现在做。

2.到’控制台/网路’里去。

3.如果你的网路配置里没有’TCP/IP 协定’则加进去。

4.在’TCP/IP 内容’中,选择’IP 位址’并且把 IP 位址设定为192.168.1.x,(1 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, 网路帐号管理套件

4.3.2. 无法使用的客户端软体

Intel Internet Phone Beta 2

可以连上但声音只能单向(往外)传送

Intel Streaming Media Viewer Beta 1

无法连上伺服器

Netscape CoolTalk

无法连接对方

talk,ntalk

这将不会运作 - 需要撰写一份核心代理程式。

WebPhone

目前无法运作(它做了不合法的位址假设)。

X 没有测试过,但我想除非有人建立一套 X 代理程式否则它无法运作,这可能是 masquerading 程式码之外的一个外部程式。一个让它运作的方式是使用 ssh 作为链结并且使用其内部的 X 代理功能来执行!

4.3.3. 已测试过可以作为”其它”机器的平台/作业系统

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 规则。可能是速度最快的但是它只能阻止区域网路里的机器,防火墙本身仍然可以存取”禁止”的节点。当然你可能想允许这样的组合。

拒绝并记录本地界面,区域网路里的机器通往 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

使用 -O 规则。最慢,因为封包首先经过伪装但这个规则阻止防火墙存取禁止的节点。

拒绝并记录送出至 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

使用 -F 规则。可能比 -I 慢而这仍然只能阻止伪装的机器(例如内部的机器),防火墙仍然可以取得禁止的节点。

拒绝并记录 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

不需要有个特定的规则来允许 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)

1.如果你想把网路设定成自动拨接上网际网路,那麽 diald demand拨接套件将会是很棒的工具。

2.要设定 diald, 请查看 Setting Up Diald for Linux 网页

3.一但 diald 以及 IP masq 设定完成,你可以在任何客户端机器上启动 web, telnet 或是 ftp 连线。

4.Diald 将会侦测到进入系统的请求,然後拨接到你的 ISP 并建立连线。

5.第一次连线将会发生逾时(timeout) 的情形。如果你使用类比式的数据机那这是无可避免的。建立数据机连结以及 PPP 连线所花费的时间将会使你的客户端软体不耐。如果你使用 ISDN 连线那这是可以避免的。你得做的只是结束客户端软体现行的程序再重新启动即可。

4.6. IPautofw 封包转送程式

IPautofw是

一个给 Linux masquerading 使用的一般性 TCP 及 UDP 转送程式。一般使用需要 UDP 的套件的时候,需要载入特定的 ip_masq 模组;ip_masq_raudio, ip_masq_cuseeme,... Ipautofw 以更一般化的方式运作,它将会转送包含这些应用程式特定模组都不会转送的任何资料流型态。如果没有正确地管理这可能造成安全上的漏洞。(出处:viphot)
网络的神奇作用吸引着越来越多的用户加入其中,正因如此,网络的承受能力也面临着越来越严峻的考验―从硬件上、软件上、所用标准上......,各项技术都需要适时应势,对应发展,这正是网络迅速走向进步的催化剂。



关键词:IP 伪 装 法




Copyright © 2012-2018 争怎路由网(http://www.zhengzen.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版