utrzymuj routing portów od 80 do 8080

23

Używam instancji Amazon EC2, która działa za pośrednictwem Ubuntu. Domyślnie zgodnie z ograniczeniami bezpieczeństwa nie mogę binować mojej aplikacji do portu 80, więc po prostu wiążę ją z portem 8080, a następnie ustawiam przekierowanie routingu z portu 80 na 8080 za pomocą następującego polecenia:

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

Odkryłem jednak, że po ponownym uruchomieniu serwera ustawienia te nie są aktywne, dopóki nie wywołam tego polecenia ponownie.

Więc moje pytanie brzmi: jak włączyć przekierowanie portu, nawet jeśli system został ponownie uruchomiony?

Ph0en1x
źródło

Odpowiedzi:

18

Możesz dodać to polecenie /etc/rc.local, aby było ono wykonywane automatycznie po ponownym uruchomieniu.

nux
źródło
Już to zrobiłem, ale wciąż dziękuję za odpowiedź
Ph0en1x
witaj przyjacielu, to dobra sztuczka
oprócz
2
To działa, ale prawdziwą odpowiedzią jest odpowiedź @ MeOMy poniżej.
Dirk Groeneveld,
15

Zamiast tego użyj polecenia iptables-save. Reguły zapory nigdy nie powinny wchodzić w skrypt rc.local. rc.local jest ostatnią rzeczą do wykonania. Jeśli reguła blokująca została umieszczona w pliku rc.local, istnieje krótki przedział czasowy, w którym atakujący może wykorzystać nieistniejącą regułę. Chociaż prawdopodobnie nie ma to znaczenia w tej sytuacji, nadal najlepiej nie wpaść w zły nawyk, który może cię później ugryźć.

MeOMy
źródło
1
uruchomiono polecenie „sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080” i „sudo iptables-save”. Ale routing został zresetowany przy ponownym uruchomieniu. Czy źle zrozumiałem, jak to zrobić?
gromit190 11.04.16
2
Odpowiedź jest niekompletna. iptables-save > some-file-pathoszczędza zasady, a następnie przywróci je przez iptables-restore < some-file-pathw rc.local. Lub zainstaluj, iptables-persistentktóry robi to podczas rozruchu jako usługa.
Thomas Ward
Chciałbym zrozumieć, jak to zrobić.
Dokładniej
4

Oto jak uczy nas oficjalna dokumentacja ipttable. Spójrz tutaj

Dodaj te dwa wiersze w / etc / network / interfaces:
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules

Wiersz „post-down iptables-save> /etc/iptables.rules” zapisze reguły do ​​użycia przy następnym uruchomieniu.

Stavarengo
źródło
Wyrazy uznania za użycie oficjalnie zalecanej metody i, w tym przypadku, najprostszej metody, aby wykonać to zadanie. Dałbym +2, gdybym mógł za użycie metody KISS.
DeeJayh,
0

Odkryłem zestaw katalogów na Ubuntu 16.04, w /etc/networkktórym będą uruchamiane skrypty w różnych momentach podczas inicjowania i zamykania sieci:

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

Więc odkryłem, że mogę zrzucić konfigurację jak zwykle:

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

Następnie utworzyłem plik `/etc/network/if-pre-up.d/restore:

#!/bin/sh

iptables-restore < /etc/iptables.rules

... i oznaczył go jako wykonywalny

$ sudo chmod 755 /etc/network/if-pre-up.d/restore
mikebridge
źródło