iptables: Port 80 an Port 8080 weiterleiten

7

Wie kann ich Port 80 intern an Port 8080 weiterleiten?

Mein Ziel ist es, einen Web-App-Server (Glassfish) auf Port 8080 laufen zu lassen, damit die Außenwelt auf Port 80 normal darauf zugreifen kann. Dies geschieht, damit ich Glassfish nicht als Root ausführen muss.

Ich habe versucht, meiner / etc / sysconfig / iptables die folgende Regel hinzuzufügen:

-A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Dies führt jedoch zu folgendem Fehler:

Applying iptables firewall rules: iptables-restore v1.3.5: Line 21 seems to have a -t table option.
Koffein-Koma
quelle

Antworten:

8

Sie können die Tabelle nicht so angeben /etc/sysconfig/iptables. Jede Tabelle ist mit einem Sternchen und dem Tabellennamen versehen. Hier ist ein Grundgerüst dessen, was Sie tun würden:

*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination :8080
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

Anstatt die Datei zu bearbeiten, können Sie die gewünschten Regeln auch manuell mit dem iptablesBefehl einrichten und dann iptables-save > /etc/sysconfig/iptablesoder ausführen service iptables save.

Mark Wagner
quelle
3

Du warst nah

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT - zum Ziel: 8080

Es muss NAT ausführen, damit die Antwort, wenn sie an den Client zurückgesendet wird, anscheinend von Port 80 und nicht von 8080 stammt.

Patrick
quelle
Hmm, während dies in der Befehlszeile funktioniert, wird immer noch der obige Fehler angezeigt, wenn ich die Regel zu / etc / sysconfig / iptables hinzufüge.
Koffein Koma
1
Sobald es hinzugefügt wurde, speichern Sie einfach /etc/init.d/iptables
Patrick