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 分鐘。