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 等。