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?

Odpowiedzi:


18

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


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źć.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.