ipchains的规则已经有很多人写了,这里就不多说了,重点是针对菜鸟讲一讲如何设置双网卡和网络配置。
使用Linux 操作系统,安装两张网卡,其中一张使用 public ip作为连外外部网络用,另外一张网卡使用 private ip 作为内部网络联接用。
在此架构之下,Linux 机器必须具有简单的路由(routing)功能,担任内外网络沟通的桥梁,并且必须执行 ip 伪装(IP_Masquerade)动作,将内部 private IP 转换成可在公共网络上合法的 public ip。
位于 private net 内的一般使用者,网络设置如下
ip address: 192.168.7.x
netmask: 255.255.255.0
broadcast: 192.168.7.255
dns server: 192.168.7.254
domain name: ascc
proxy: proxy.ascc:3128
本范例文件内所示范的动作,如果没有特别说明,都必须使用 root 来执行。
ps: 本范例中选用 140.109.7.65 作为此 Linux 对外的 public ip,此 public ip 的 FQDN 为 boyce.wsl.sinica.edu.tw
选用 192.168.7.x 作为 private network,使用 priv.net 作为内部的 domain name,并且指定 192.168.7.254 作为此 Linux上对内的 private ip 并将 FQDN 设定为 gw.priv.net 取其gateway 之意。
操作系统版本
Linux RedHat 6.0
Kernel 为 RedHat 6.0 内附的 2.2.5-15.
请注意,如果你的 Kernel 不是 RedHat 6.0 内定的版本,而是自行编译,
请在编译时开启下列参数
CONFIG_EXPERIMENTAL CONFIG_MODULES CONFIG_NET CONFIG_FIREWALL
CONFIG_INET CONFIG_IP_FORWARD CONFIG_IP_FIREWALL CONFIG_IP_MASQUERADE
以下是选用的参数,但仍然建议开启这些参数,
CONFIG_IP_MASQUERADE_IPPORTFW CONFIG_IP_MASQUERADE_IPAUTOFW
CONFIG_IP_MASQUERADE_ICMP CONFIG_IP_ALWAYS_DEFRAG CONFIG_DUMMY
CONFIG_IP_MASQUERADE_MFW
网络设置
安装两张网卡,对外使用 eth0 (Digital DS21140 Tulip),设置如下:
(/etc/sysconfig/network-scripts/ifcfg-eth0)
DEVICE=""eth0""
IPADDR=""140.109.7.65""
NETMASK=""255.255.255.0""
NETWORK=140.109.7.0
BROADCAST=140.109.7.255
ONBOOT=""yes""
BOOTPROTO=""none""
IPXNETNUM_802_2=""""
IPXPRIMARY_802_2=""no""
IPXACTIVE_802_2=""no""
IPXNETNUM_802_3=""""
IPXPRIMARY_802_3=""no""
IPXACTIVE_802_3=""no""
IPXNETNUM_ETHERII=""""
IPXPRIMARY_ETHERII=""no""
IPXACTIVE_ETHERII=""no""
IPXNETNUM_SNAP=""""
IPXPRIMARY_SNAP=""no""
IPXACTIVE_SNAP=""no""
对内使用 eth1 (Intel EtherExpress Pro 100),设置如下:
(/etc/sysconfig/network-scripts/ifcfg-eth1)
DEVICE=""eth1""
IPADDR=""192.168.7.254""
NETMASK=""255.255.255.0""
ONBOOT=""yes""
BOOTPROTO=""none""
IPXNETNUM_802_2=""""
IPXPRIMARY_802_2=""no""
IPXACTIVE_802_2=""no""
IPXNETNUM_802_3=""""
IPXPRIMARY_802_3=""no""
IPXACTIVE_802_3=""no""
IPXNETNUM_ETHERII=""""
IPXPRIMARY_ETHERII=""no""
IPXACTIVE_ETHERII=""no""
IPXNETNUM_SNAP=""""
IPXPRIMARY_SNAP=""no""
IPXACTIVE_SNAP=""no""
另外在 /etc/sysconfig/network 设定系统预设的网络参数
NETWORKING=yes
FORWARD_IPV4=true
HOSTNAME=""boyce.wsl.sinica.edu.tw""
DOMAINNAME=wsl.sinica.edu.tw
GATEWAY=140.109.7.1
GATEWAYDEV=eth0
最后在 /etc/rc.d/rc.local 里面加入下列三行,以便正确激活
系统的 IP Masquerade 功能
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.7.0/24 -j MASQ
/sbin/ipchains -M -S 86400 0 0
这里必须特别说明的是最后一行,由于 Linux 的 IP Masquerade预设将 TCP 联机于 IDLE 15 分钟 (900 秒) 之后自动切断,这个时间相当短,可能造成工作上的不便,因此使用 ipchains -M -S指令将 TCP IDLE 时间增加为一天 (86400 秒),而 TCP_FIN 与UDP IDLE 则以 0 保持原本的默认值 2 分钟与 5 分钟。