Iptables

我的 iptables 有什麼問題?

  • April 30, 2013

問題

我無法在埠 80 上向伺服器請求重定向到埠 8080 上的客戶端

伺服器

我使用 CentOS 6.3 VM 作為伺服器,客戶端是 Arduino

伺服器 eth0 - 172.16.145.139 eth1 - 10.14.4.1

客戶端 eth0 - 10.14.45

最終目標

任何可以讓我從內部客戶端獲取網頁的修復程序

我試過的

我試圖以各種方式修改我的 iptables 以允許我訪問。我得到的最接近的是我的客戶註冊了一個連接,但網頁不會載入。這也發生在我使用 SSH 隧道時。所以我認為有一些設置我忽略了它不允許它正確轉發

# cat /proc/sys/net/ipv4/ip_forward
1

平板電腦

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 10.14.4.5:8080
-A POSTROUTING -s 10.14.4.0/25 -o eth0 -j SNAT --to-source 172.16.145.139
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -s 10.14.4.0/25 -o eth0 ! -d 10.14.4.0/25 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

提前感謝您的任何幫助!

以下是在我的 VM 伺服器上對我有用的方法(適用於您的 IP):

## Allow through firewll
iptables -I FORWARD -d 10.14.4.5/32 -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
## Set up NAT forwarding rule
iptables -t nat -I PREROUTING -p tcp -i eth0 --destination-port 8080 -j DNAT --to-destination 10.14.4.5:80

看起來您缺少第一條規則,它允許數據包通過防火牆。不過,你的 nat 規則看起來還不錯。

請注意,“-I”插入規則鏈的頂部,“-A”附加到底部。對於第一條規則,我們希望它出現在過濾表中的“拒絕”規則之前——最簡單的方法是繼續並將其插入頂部(如果你正在修改現有表——否則,如果修改現有配置文件,繼續將其轉換為“-A”並將其放在“拒絕”規則之前)。

引用自:https://serverfault.com/questions/503733