Linux 核心內建 IP 偽裝 (IP Masquerade) 機制,除最專業的駭客攻擊外,足以抵擋絕大多數網路威脅。本文解析原理、設定方法與實務考量。
撥號上網獲取公網 IP,駭客即可透過此 IP 存取主機。IP 偽裝將內部私有 IP 隱藏,讓外部無法直接看見。私有 IP 範例:192.168.x.x,Internet 骨幹路由器無法識別,外部無法直接存取。
但瀏覽網頁需伺服器回傳資料,伺服器只能送至合法公網 IP。IP 偽裝即解決此兩難:架設於內外網間,自動轉譯雙向 IP 位址,即網路位址轉換 (NAT)。
IP 偽裝伺服器雙網卡:eth0 連外網(如纜線 Modem 207.176.253.15),eth1 連內網(如 192.168.1.254)。內網主機 192.168.1.25 存取外網時:
可同時管理多台內網主機封包不混淆。作者曾用 486 老機器跑 Slackware 同時處理四台電腦封包,速度無損。
核心 2.0 前用 IPFWADM,2.0 提供 IPCHAINS 但保留 IPFWADM wrapper 相容。範例雙網卡 eth0/eth1:
IPADDR="207.175.253.15" # 纜線 Modem 公網 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}
/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
# IPFWADM 初始化
/sbin/ipfwadm -F -p deny # 預設拒絕轉發
/sbin/ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 # 內網源位址偽裝轉發
/sbin/ipfwadm -M -s 600 30 120 # 逾時設定
完成上述設定即可運作。IPCHAINS 用法參考 IPCHAINS-HOWTO。
EQL 模組可同時用多張 Modem,但除非 ISP 為多線路提供同一公網 IP,否則僅對外發封包有幫助,回傳封包仍受單一 IP 限制。ISDN 由 ISP 處理此問題,部分 ISP 提供多線路對應 IP 但價格昂貴。
六用戶共享 56K Modem 經 IP 偽裝運作良好,僅大檔下載時變慢。決定加裝多線前,先架設 IP 偽裝伺服器試用。Windows 多 IP 處理效率低,隔離 Windows 網路與 Modem 效能提升驚人。
簡言之:Linux IP 偽裝就是藏起你的 IP,不讓網路上其他人看見。