Port-Routing von 80 auf 8080 beibehalten

23

Ich benutze eine Amazon EC2-Instanz, die über Ubuntu funktioniert. Gemäß Sicherheitsbeschränkungen kann ich meine Anwendung standardmäßig nicht an Port 80 binden. Daher binde ich ihn einfach an Port 8080 und setze die Routing-Umleitung von Port 80 auf 8080 über den folgenden Befehl:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

Ich stellte jedoch fest, dass beim Neustart des Servers diese Einstellungen nicht mehr aktiv sind, bis ich diesen Befehl erneut aufrufe.

Meine Frage ist also, wie die Umleitungsfunktion des Ports aktiviert werden kann, selbst wenn das System neu gestartet wurde.

Ph0en1x
quelle

Antworten:

18

Sie können diesen Befehl hinzufügen /etc/rc.local, damit er nach dem Neustart automatisch ausgeführt wird.

nux
quelle
Hab
begrüße meinen freund, das ist ein guter trick
nux
2
Dies funktioniert, aber die eigentliche Antwort lautet @ MeOMys Antwort unten.
Dirk Groeneveld
15

Verwenden Sie stattdessen den Befehl iptables-save. Firewall-Regeln sollten niemals in das rc.local-Skript aufgenommen werden. Als letztes wird rc.local ausgeführt. Wenn eine Blockierungsregel in rc.local platziert wurde, gibt es einen kleinen Zeitraum, in dem ein Angreifer eine nicht vorhandene Regel ausnutzen kann. Obwohl es in dieser Situation wahrscheinlich keine Rolle spielt, ist es immer noch am besten, sich keine schlechte Angewohnheit anzueignen, die Sie später beißen könnte.

MeOMy
quelle
1
Führen Sie "sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080" und "sudo iptables-save" aus. Das Routing wurde jedoch beim Neustart zurückgesetzt. Habe ich das falsch verstanden?
Gromit190
2
Die Antwort ist unvollständig. iptables-save > some-file-pathspeichert die Regeln, und dann würden Sie sie über iptables-restore < some-file-pathin wiederherstellen rc.local. Oder installieren Sie iptables-persistentdiese während des Bootens als Dienst.
Thomas Ward
Ich würde gerne verstehen, wie das geht. Seien Sie genauer, bitte
gromit190
4

So lehrt uns die offizielle ipttable-Dokumentation. Siehe hier

Fügen Sie diese beiden Zeilen in / etc / network / interfaces hinzu:
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules

In der Zeile "post-down iptables-save> /etc/iptables.rules" werden die Regeln gespeichert, die beim nächsten Start verwendet werden sollen.

Stavarengo
quelle
Ein großes Lob für die Verwendung der offiziell empfohlenen Methode und in diesem Fall der einfachsten Methode, um diese Aufgabe abzuschließen. Ich würde +2, wenn ich die KISS-Methode anwenden könnte.
DeeJayh
0

Ich habe eine Reihe von Verzeichnissen unter Ubuntu 16.04 entdeckt, in /etc/networkdenen Skripte zu verschiedenen Zeiten während der Netzwerkinitialisierung und des Herunterfahrens ausgeführt werden:

if-down.d
if-post-down.d  
if-pre-up.d  
if-up.d
interfaces.d

So stellte ich fest, dass ich die Konfiguration wie gewohnt sichern konnte:

$ sudo sh -c "iptables-save > /etc/iptables.rules"

Dann habe ich eine Datei `/etc/network/if-pre-up.d/restore erstellt:

#!/bin/sh

iptables-restore < /etc/iptables.rules

... und markiert es als ausführbar

$ sudo chmod 755 /etc/network/if-pre-up.d/restore
Mikebridge
quelle