关于伪装的基础知识关于伪装的基础知识

伪装是 Linux 特有的一种 NAT(网络地址转换)形式。 通过伪装可以将小型 LAN(其中的主机使用专用地址范围中的 IP 地址,请参阅第 30.1.2 节 “网络掩码和路由”)与因特网(使用正式的 IP 地址)连接起来。 为使 LAN 主机能连接到因特网,需要将其专用地址转换为正式地址。 这种转换是在路由器上完成的,路由器充当了 LAN 和因特网之间的网关。 其中的原理只有简单的一条:路由器有多个网络接口,通常是一个网卡和与因特网连接的另一个接口。后者将路由器与外部世界链接起来,同时,还会有一个或多个其他网络接口将路由器与 LAN 主机链接起来。 在本地网络中的这些主机连接到路由器的网卡(如 eth0)后,它们就可以将发往本地网络之外的所有包发送到其默认网关或路由器。

[Important]使用正确的网络掩码

在配置网络时,确保所有本地主机的广播地址和网络掩码都相同。 做不到这一点就会导致无法正确路由数据包。

如上所述,只要有某台 LAN 主机要向因特网地址发送包,这个包就会发送到默认路由器。 但是,必须先配置路由器,然后才能转发这些包。 由于安全原因,默认安装中未启用它。要提供这种支持,请将文件 /etc/sysconfig/sysctl 中的变量 IP_FORWARD 设置为 IP_FORWARD=yes

连接的目标主机可以看到路由器,但对内部网络中发出包的那台主机却毫不知情。 伪装技术就是因此而得名的。 由于要进行地址转换,路由器自然成为所有回复包首先到达的目标。 路由器必须能够识别这些入站包并转换其目标地址,这样才能将包转发给本地网络中的正确主机。

由于入站通讯数据的路由选择取决于伪装表,所以从外部根本无法打开与内部主机的连接。 对于这种连接,伪装表中不会有任何对应项。 此外,所有已建立的连接在该表中都被指派了一个状态项,所以其他连接无法再使用该项。

受以上各种因素影响,在使用某些应用程序协议,如 ICQ、cucme、IRC(DCC、CTCP)和 FTP(采用 PORT 方式)时,您可能会遇到一些问题。 万维网浏览器、标准 FTP 程序和许多其他程序都使用 PASV 方式。就包过滤和伪装而言,这种被动方式不容易出问题。