[LINUX] Redirection de port d'un serveur Web à l'aide d'iptables

Aperçu

Décrit comment transférer (c'est-à-dire la redirection de port) le "nom d'hôte: numéro de port" d'un serveur Web vers "un autre hôte: numéro de port" sous Linux. Pour réaliser cela, utilisez "iptables" qui est fourni en standard avec CentOS et Ubuntu. Le contenu introduit cette fois peut probablement être réalisé avec firewalld etc. qui est inclus par défaut dans CentOS 7 ou version ultérieure, mais à la suite de la recherche d'une méthode de redirection de port qui ne dépend pas autant que possible de l'environnement, j'ai décidé d'utiliser iptables. Il y a quelques articles qui présentent des méthodes de redirection de port avec iptable, mais même si j'ai essayé ces méthodes docilement, cela n'a pas fonctionné, et j'étais assez accro à la réalisation, donc je vais le résumer à nouveau dans cet article. Seul le protocole http (https) a été confirmé pour fonctionner cette fois, mais s'il s'agit d'une communication TCP, il devrait fonctionner avec d'autres protocoles (ssh, ftp, etc.).

Configuration que vous souhaitez réaliser

fig1.png

Implémentation par iptables

Exécutez la commande suivante sur le serveur source de transfert

(1) chaîne PREROUTING

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

(2) Chaîne POSTROUTING

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

(3) Chaîne AVANT

$ 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) Chaîne de SORTIE

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

Recommended Posts

Redirection de port d'un serveur Web à l'aide d'iptables
Transformez votre téléphone intelligent Android en serveur Web à l'aide de python.
Configurons un serveur WEB avec Chromebook
Apprendre un réseau neuronal à l'aide de Chainer
Serveur HTTP et client HTTP utilisant Socket (+ navigateur Web) --Python3
Commentaire sur la construction du serveur Web
À propos de WOL Port Forward
Serveur Web One Liner
Construction du serveur Web Ubuntu (18.04.3)
Application Web utilisant Bottle (1)
Serveur web joyeux Noël
Créez un serveur Web API à une vitesse explosive en utilisant HUG
Configurez votre propre serveur Web dans votre projet d'application Pepper
Optimisation d'image côté serveur à l'aide de l'API Web de TinyPNG
Utilisez le navigateur à l'aide des liaisons Python du pilote Web Selenium
À propos de WOL Port Forward
Essayez et apprenez iptablse, port forward
Paramètres de redirection de port ssh Linux (tunnel)
Redirection de port d'un serveur Web à l'aide d'iptables
Inclut le transfert de port docker-nginx sur AWS Linux 2
La liaison du transfert de port au socket de domaine Unix fonctionne mieux