Weiterleitungsports auf Centos 7

9

Ich arbeite an einem CentOS 7-Server und versuche, JBoss so zu machen, wie ich es auch möchte. Ich verwende Java 8 und JBoss (wild) 8. Ich habe diese installiert und arbeite an den Standardports, aber ich möchte, dass JBoss auf Port 80 funktioniert. Ich weiß, dass ich es auf Port 80 zum Laufen bringen kann, wenn ich Führen Sie es als Root aus, aber ich weiß, dass dies keine gute Idee ist, und ich möchte es auf keinen Fall als Root ausführen.

Ich habe versucht, Port 80 an 8080 weiterzuleiten, aber ich habe es nicht zum Laufen gebracht. Ich glaube, ich vermisse einen Schritt, aber ich weiß nicht, was ich vermisse.

Ich benutze Firewall-Cmd. Ich habe beide Ports (80 & 8080) geöffnet und das Maskieren für die öffentliche Zone aktiviert. Ich habe diesen Befehl auch verwendet, um den Port weiterzuleiten

firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080.  

Irgendeine Idee, was mir fehlt?

zzzsys
quelle
Was ist falsch daran, httpd oder nginx davor auszuführen?
Michael Hampton
Nichts, ich habe versucht, es nicht so zu machen, wenn ich es ändern könnte.
zzzsys

Antworten:

10

Ich habe gerade einen Weg gefunden, der mir dies ermöglicht hat:

firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=3001 --permanent
just_user
quelle
1
richtig +1 für dich. Ich musste viel kämpfen, um hierher zu kommen.
Guru
FirewallD läuft nicht
Steve Yakovenko
@SteveYakovenko dann zu starten ist ein guter erster Schritt.
just_user
0

firewall-cmdDer Add-Forward-Port fügt der PREROUTINGNAT-Kette Regeln hinzu , die nur für extern generierte Pakete gelten. Wenn Sie versuchen, eine Verbindung zu localhost (oder der lokalen IP des Servers) über Port 80 auf dem Server herzustellen, schlägt dies fehl, da diese Pakete niemals weitergeleitet werden PREROUTING.

Wenn Sie von einer externen Quelle aus eine Verbindung zu Port 80 herstellen, firewall-cmdsollte die von Ihnen aufgeführte ordnungsgemäß funktionieren. Ich würde vorschlagen, zu überprüfen, ob sich Ihre Schnittstelle tatsächlich in der "öffentlichen" Zone befindet.

Sie können auch den folgenden Befehl ausführen, um die Anzahl der Pakete für die Regel abzurufen und sicherzustellen, dass sie tatsächlich getroffen wird:

iptables -t nat -vnL | grep 8080 -B1

Wenn die Paketanzahl bei jedem Versuch zunimmt, funktioniert die Firewall ordnungsgemäß und Sie haben ein Problem außerhalb der Firewall (möglicherweise eine ACL unter JBOSS?). Wenn die Pakete nicht bei jedem Versuch erhöht werden, wird die Firewall-Regel überhaupt nicht getroffen, was darauf hindeutet, dass Sie sich entweder in der falschen Zone befinden oder dass eine andere Regel die Portweiterleitungsregel vorwegnimmt.

alienth
quelle
Danke, ich werde das überprüfen. Die Verbindung erfolgt von einer externen Quelle.
zzzsys