Ich möchte einen Reverse-Proxy (nginx oder Apache) für meine Tomcat-Anwendung verwenden. Ich möchte die Ports 80,443 vom Reverse-Proxy auf die Tomcat-Ports 8080, 8443 umleiten. Welcher Port muss nach dem Einrichten des Reverse-Proxys für eingehende und ausgehende Verbindungen geöffnet sein?
ist das richtig? iptables eingehend: öffne Port 80, 443 iptables ausgehend: öffne Port 8080,8443
Mit freundlichen Grüße
Schwarzbart
Antwort1
ATCPDie Verbindung besteht immer zwischen zwei (nicht mehr) Teilnehmern. Jeder wird durch eine IP-Adresse identifiziertUndein Port. Wenn Sie also einen Reverse-Proxy verwenden, haben Sie in Wirklichkeit:
- Eine Verbindung zwischen dem Client
<client_IP>:<random_port>
undnginx<server_public_IP>:80
über Ihre physische Schnittstelle. - Eine Verbindung zwischennginx
127.0.0.1:80
UndKater127.0.0.1:8080
durch dasLoopback-Schnittstelle.
Es gibt keinen Grund für eine Firewall, die Kommunikation auf der Loopback-Schnittstelle zu blockieren. Daher möchten Sie wahrscheinlich eingehenden Datenverkehr zulassen mitZielPort 80
und 443
ausgehender Verkehr mitQuellePort 80
und 443
.
Normalerweise ist der ausgehende Verkehr jedochnichtblockiert (Richtlinie ACCEPT
), benötigen Sie lediglich die folgenden iptables-Regeln:
iptables -A INPUT -i lo -j ACCEPT # loopback interface
# don't block existing traffic
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m comment nginx -j ACCEPT
# Probably you want to allow ssh
iptables -A INPUT -p tcp --dport 22 -m comment SSH -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
PS: Sie können auchKaterdirekt auf Ports 80
und 443
mit den gleichen Firewall-Regeln.