linux ip伪装(IP Masquerade)

它是linux提供的一种网络功能,最大的好处是:通过一个合法的IP, 把一些没有正式IP的机器连到网上,如:通过一台linux机器拨号上网,而把整个局域网带入internet。

比如一个局域网 192.168.100.0,其上有一linux机器192.168.100.10, 拨号上网后,通过以下指令即可实现IP Masquerade:

# Cause all hosts on the 192.168.100/24 network to be masqueraded.

ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.100.0/24 -D 0.0.0.0/0

加入对其它协议的支持,例如:

modprobe ip_masq_ftp
modprobe ip_masq_raudio
modprobe ip_masq_irc

这样,即可实现IP Masquerade。

不过应注意以下几点:

1、确定kernel支持IP  Masquerade,缺省情况下slackware3.5和redhat5.1都支持。

CONFIG_EXPERIMENTAL
CONFIG_NET
CONFIG_FIREWALL
CONFIG_INET
CONFIG_IP_FORWARD
CONFIG_IP_FIREWALL
CONFIG_IP_MASQUERADE
CONFIG_IP_ALWAYS_DEFRAG

共有以上各项,具体参考kernel-HOWTO。

2、redhat 中 /etc/sysconfig/network 的 FORWARD_IPV4设置为yes。

3、在配置前linux机器应该能够ping 通局域网和INTERNET。

如不行,应看route的设置。

route add -net 192.168.100.0 netmask 255.255.255.0 eth0
route add default ppp0

4、ipfwadm中24为netmask对应数字,具体如下:

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 | 单机

5、局域网中其它机器TCP/IP 的gateway 应设为linux机器的IP地址,DNS Server可设为任意可用 DNS server的地址,如 202.96.0.133 等。