====== Linux IP 分享(NAT)設定 ======
===== 必須安裝的模組 =====
* iptables (iptables-1.2.11-3.1.RHEL4)
===== 設定程序 =====
* vi /etc/sysctl.conf
:
net.ipv4.ip_forward = 1
:
* sysctl -p /etc/sysctl.conf
cat /proc/sys/net/ipv4/ip_forward
* lsmod | grep ip_tables
* 如果沒有出現 ip_tables 就輸入 modprobe ip_tables 然後再確認一次
* 規劃好預計達成的規則
- 來自 192.168.0.* 的 IP, 自動轉到 eth0 介面出去
- 來自 eth0 的 8080 自動轉到 192.168.0.241:80
- 來自 eth0 的 8081 自動轉到 192.168.0.22:8080
* vi /etc/sysconfig/iptables
:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
[0:0] -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j MASQUERADE
[0:0] -A PREROUTING -p tcp --dport 8080 -j DNAT --to 192.168.0.241:80
[0:0] -A PREROUTING -p tcp --dport 8081 -j DNAT --to-destination 192.168.0.22:8080
COMMIT
:
* CentOS 6 (RHEL6) 增加一些安全的控管, 因此在 *filter 的 :FORWARD 項目要增加開放 nat 的來源資訊
* 例如 來自 eth1 都允許 nat 出去就可增加以下的設定資料
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -o eth1 -j ACCEPT
:OUTPUT ACCEPT [0:0]
* service iptables restart
===== 參考資料 =====
* http://www.adj.idv.tw/server/linux_nat.htm
* http://www.linuxtopia.org/online_books/rhel6/rhel_6_security_guide/rhel_6_security_sect-Security_Guide-Firewalls-FORWARD_and_NAT_Rules.html
{{tag>linux iptables nat 網路}}