[LINUX] Portweiterleitung eines Webservers mithilfe von iptables

Überblick

Beschreibt, wie der "Hostname: Portnummer" eines Webservers unter Linux auf "einen anderen Host: Portnummer" übertragen (dh Portweiterleitung) wird. Verwenden Sie dazu "iptables", die standardmäßig in CentOS und Ubuntu enthalten sind. Der diesmal eingeführte Inhalt kann wahrscheinlich mit Firewalld usw. realisiert werden, die standardmäßig in CentOS 7 oder höher enthalten ist. Als Ergebnis der Suche nach einer Methode zur Portweiterleitung, die nicht so stark von der Umgebung abhängt, habe ich mich für die Verwendung von iptables entschieden. Es gibt einige Artikel, die Portweiterleitungsmethoden mit iptable einführen, aber selbst wenn ich diese Methoden gehorsam ausprobiert habe, hat es nicht funktioniert, und ich war ziemlich süchtig nach der Realisierung, daher werde ich es in diesem Artikel noch einmal zusammenfassen. Diesmal wurde bestätigt, dass nur das http (https) -Protokoll funktioniert. Wenn es sich jedoch um eine TCP-Kommunikation handelt, sollte es mit anderen Protokollen (ssh, ftp usw.) funktionieren.

Konfiguration, die Sie realisieren möchten

fig1.png

Implementierung durch iptables

Führen Sie den folgenden Befehl auf dem Übertragungsquellenserver aus

(1) PREROUTING-Kette

$ sudo iptables -t nat -A PREROUTING -p tcp \
                --dport 10080 -j DNAT \
                --to-destination 23.45.67.89:80

(2) POSTROUTING-Kette

$ sudo iptables -t nat -A POSTROUTING -p tcp \
                -d 23.45.67.89 --dport 80 \
                -j MASQUERADE

(3) VORWÄRTS-Kette

$ sudo iptables -A FORWARD -p tcp \
                -d 23.45.67.89 --dport 80 \
                -j ACCEPT
$ sudo iptables -A FORWARD -p tcp \
                ! --syn -m state --state ESTABLISHED \
                -s 23.45.67.89 --sport 80 \
                -j ACCEPT

(4) AUSGANGSKETTE

$ sudo iptables -t nat -A OUTPUT -p tcp \
                --dport 10080 -j DNAT \
                --to-destination 23.45.67.89:80

Recommended Posts

Portweiterleitung eines Webservers mithilfe von iptables
Verwandeln Sie Ihr Android-Smartphone mithilfe von Python in einen Webserver.
Lassen Sie uns einen WEB-Server mit Chromebook einrichten
Lernen eines neuronalen Netzes mit Chainer - Erstellen eines Web-API-Servers
HTTP-Server und HTTP-Client mit Socket (+ Webbrowser) - Python3
Kommentar zum Aufbau des Webservers
Über WOL Port Forward
One Liner Webserver
Ubuntu (18.04.3) Webserverkonstruktion
Webanwendung mit Flasche (1)
Frohe Weihnachten Webserver
Erstellen Sie mit hug einen Web-API-Server mit explosiver Geschwindigkeit
Richten Sie Ihren eigenen Webserver in Ihrem Pepper-App-Projekt ein
Image Optimize auf der Serverseite mithilfe der Web-API von TinyPNG
Bedienen Sie den Browser mit den Python-Bindungen des Selenium Web Driver
Über WOL Port Forward
Versuchen Sie, iptablse zu lernen, portieren Sie vorwärts
Einstellungen für die Weiterleitung von Linux-SSH-Ports (Tunnel)
Portweiterleitung eines Webservers mithilfe von iptables
Beinhaltet Docker-Nginx-Port Forward unter AWS Linux 2
Die Weiterleitung des Bindungsports an den Unix-Domain-Socket funktioniert besser