iptables學習02 SNAT
打開linux的轉發功能。
[plain]
iptables -P FORWARD DROP
將FORWARD鏈的策略設置為DROP,這樣做的目的是做到對內網ip的控制,你允許哪一個訪問internet就可以增加一個規則,不在規則中的ip將無法訪問 internet
[plain]
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
這條規則規定允許任何地址到任何地址的確認包和關聯包通過。一定要加這一條,否則你只允許lan IP訪問沒有用,至於為什麼,下面我們再詳細說。
[plain]
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -j SNAT --to 60.1.1.1
這條規則做了一個 SNAT,也就是源地址轉換,將來自10.1.1.0/24的地址轉換為60.1.1.1
有這幾條規則,一個簡單的nat路由器就實現了。這時你可以將允許訪問的ip添加至FORWARD鏈,他們就能訪問internet了。
比如我想讓 10.1.1.9這個地址訪問internet,那麼你就加如下的命令就可以了。
[plain]
iptables -A FORWARD -s 10.1.1.9 -j ACCEPT
也可以精確控制他的訪問地址,比如我就允許10.1.1.99訪問3.3.3.3這個ip
[plain]
iptables -A FORWARD -s 10.1.1.99 -d 3.3.3.3 -j ACCEPT
或者只允許他們訪問 http端口。
[plain]
iptables -A FORWARD -s 10.1.1.0/24 -p tcp --dport http -j ACCEPT