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