FORWARD策略與NAT 規則
FORWARD 和 NAT 規則
多數機構從它們的 ISP 處得到數量有限的可公開選路的 IP 地址。鑒于這種限額,管理員必須創建性地積極尋求分享互聯網服務的方法,而又不必把稀有的 IP 地址分配給 LAN 上的每一臺機器。使用專用 IP 地址是允許 LAN 上的所有機器正確使用內部和外部網絡服務的常用方法。邊緣路由器(如防火墻)可以接收來自互聯網的進入交通,并把這些分組選路發送它們意圖發送的 LAN 節點上;同時,防火墻/網關還可以把來自 LAN 節點的輸出請求選路發送到遠程互聯網服務中。這種轉發網絡交通行為有時會很危險,特別是隨著能夠假冒內部 IP 地址、使遠程攻擊者的機器成為你的 LAN 上的一個節點的現代攻擊工具的出現。為防止此類事件的發生,iptables 提供了選路發送和轉發策略,你可以實施它們來防止對網絡資源的變相利用。
FORWARD 策略允許管理員控制分組可以被選路發送到 LAN 內的哪些地方。例如:要允許整個 LAN 的轉發(假定防火墻/網關在 eth1 上有一個內部 IP 地址),你可以設置以下規則:
- iptables -A FORWARD -i eth1 -j ACCEPT
- iptables -A FORWARD -o eth1 -j ACCEPT
注記:按照默認設置,紅帽企業 Linux 內核中的 IPv4 策略禁用了對 IP 轉發的支持,這會防止運行紅帽企業 Linux 的機器成為專用邊緣路由器。要啟用 IP 轉發,請運行以下命令:
- sysctl -w net.ipv4.ip_forward=1
如果該命令是通過 shell 提示運行的,那么其設置在重新引導后就不會被保存。你可以通過編輯 /etc/sysctl.conf 文件來永久性地設置轉發。尋找并編輯以下行,把 0 改成 1:
- net.ipv4.ip_forward = 0
執行以下命令來啟用 sysctl.conf 文件中的改變:
- sysctl -p /etc/sysctl.conf
這會允許 LAN 節點彼此通信;不過,它們沒有被允許和外界(如互聯網)通信。要允許帶有專用 IP 地址的 LAN 節點和外部的公共網絡通信,配置防火墻的 IP 偽裝(IP masquerading),這會把來自 LAN 節點的請求都偽裝成防火墻的外部設備(在這個例子中是 eth0)的 IP 地址。
- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
以上就是FORWARD策略與NAT 規則。
【編輯推薦】