在virtual box中準備2台server,並安裝好 httpd 等服務,啟動 httpd 服務和設定開機啟動
在2台server中的/var/www/html/建立基本頁面index.php,顯示各自主機的名稱
192.168.1.15 顯示以下畫面
192.168.1.16 顯示以下畫面
接下來的動作是要使用 nat 技術將到192.168.1.15的80port封包轉到192.168.1.16
所以輸入192.168.1.15應該會出現”ben server”,而不是出現原本的”halley server”
在192.168.1.16只要設定基本的防護iptables規責
在192.168.1.15的iptables要加入以下設定
echo "1" > /proc/sys/net/ipv4/ip_forward #echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter modprobe ip_tables modprobe ip_nat_ftp modprobe ip_nat_irc modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_conntrack_irc #disable all chains iptables -t filter -F iptables -t nat -F iptables -t mangle -F #nat iptables -F -t nat iptables -X -t nat iptables -Z -t nat iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -A POSTROUTING -p tcp --dport 80 -o eth0 -j MASQUERADE iptables -A PREROUTING -t nat -i eth0 -p tcp -d 192.168.1.15 --dport 80 -j DNAT --to 192.168.1.16:80 iptables -A FORWARD -p tcp -i eth0 -d 192.168.1.16 --dport 80 -j ACCEPT
注意!在 MASQUERADE 那行,參數不要亂加,之前加了 -s 0.0.0.0 反而無法成功
在halley使用tcpdump
當瀏覽者(192.168.1.5)向192.168.1.15請求資料時,變成192.168.1.15向192.168.1.16請求資料
然後由192.168.1.16回覆給192.168.1.15
再由192.168.1.15回覆給瀏覽者
在ben使用tcpdump
可以看到只有192.168.1.15向192.168.1.16請求
並由192.168.1.16回覆給192.168.1.15
並沒有任何封包直接傳向瀏覽者(192.168.1.5)
結果,現在不管是輸入192.168.1.15或是192.168.1.16都會出現192.168.1.16的資料
最後觀察一下192.168.1.15的nat表