防火牆可依需求設定不同安全等級。Linux 核心內建「IP 偽裝」機制,除極專業駭客攻擊外,足以抵擋絕大多數入侵。
撥號上網時電腦獲指派 IP 位址,駭客利用此 IP 存取資料。IP 偽裝將本地 IP 隱藏,不讓外界看見。保留給區域網路的私有 IP(如 192.168.x.x)Internet 骨幹路由器無法識別,外界自然無法存取入侵。但瀏覽網頁仍需伺服器回傳資料,伺服器只認合法公網 IP。
IP 偽裝(即 NAT,網路位址轉換)架設於內外網之間,自動轉換內外封包 IP。以雙網卡為例:eth0 連外網(纜線數據機),eth1 連內網。內網機器(如 192.168.1.25)存取外網時,Linux 攔截封包,將來源 IP 從私有 IP 替換為公網 IP(如 207.176.253.15);伺服器回傳時,Linux 再將目的 IP 改回私有 IP 轉發給內網機器。可同時管理多台內網電腦且不混淆。作者曾用 486 機器跑 SlackWare 同時處理四台電腦封包,速度無損。
核心 2.0 以前用 IPFWADM,2.x 提供 IPCHAINS 但保留 IPFWADM 相容。以下以 IPFWADM 示範(IPCHAINS 用法參考 IPCHAINS HOWTO)。
作者伺服器雙網卡於核心啟動時設為 eth0/eth1。rc.inet1 初始化步驟:
IPADDR="207.175.253.15" # 你的纜線數據機公網 IP
NETMASK="255.255.255.0"
NETWORK="207.175.253.0"
BROADCAST="207.175.253.255"
GATEWAY="207.175.253.254"
# 設定外網卡 eth0
/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK}
# 設定 IP 路由表
/sbin/route add -net ${NETWORK} netmask ${NETMASK} eth0
# 設定內網卡 eth1
/sbin/ifconfig eth1 192.168.1.254 broadcast 192.168.1.255 netmask 255.255.255.0
/sbin/route add -net 192.168.1.0 netmask 255.255.255.0 eth1
# IP 偽裝初始化
/sbin/ipfwadm -F -p deny # 預設拒絕轉發
/sbin/ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 # 允許內網 192.168.1.0/24 經偽裝存取外網
/sbin/ipfwadm -M -s 600 30 120 # 設定 TCP/TCPFIN/UDP 逾時
完成上述設定,IP 偽裝即可運作。進階細節請參考 Bridge+Firewall MINI HOWTO,更高安全性防火牆參考 Firewall HOWTO。
簡言之,Linux IP 偽裝就是隱藏你的 IP,不讓網路上其他人看見。