Starten Sie den Dienst über systemd als Nicht-Root, um Port 80, 443 zu binden

Starten Sie den Dienst über systemd als Nicht-Root, um Port 80, 443 zu binden

ich führe Tomcat auf meinem Headless-Server Ubuntu 18.04 als Root aus. Wie bei Apache oder Nginx können Sie einen Dienst als Nicht-Root mit systemd starten und nur Root startet den Masterprozess, um die Ports 80 und 443 zu binden. Daher werde ich für meinen Tomcat denselben Startprozess wie Apache und Nginx verwenden. Nachdem ich Benutzer und Gruppe als Tomcat hinzugefügt habe (kein Superuser) und tomcat.service erstellt habe, welche Konfiguration brauche ich dann noch???

ich wäre sehr dankbar, wenn mir jemand weiterhelfen könnte.

Schwarzbart

Antwort1

Die meisten Dienste sind standardmäßig auf Port >1024 konfiguriert. Dafür gibt es mehrere Gründe...

Die Art und Weise, wie Sie versuchen, sich zu konzentrieren, ist möglich, kann aber dazu führen, dass einige zukünftige Schritte (zumindest für eine Weile) einen Root-Zugriff erfordern, um die Änderungen vorzunehmen. Ich kann jedoch nicht sagen, dass dies falsch wäre ;).

Bitte stimmen Sie nicht für die alternative Lösung (da dies nicht direkt die Antwort auf die Frage ist). Wie wäre es, den Dienst auf dem Standardport >1024 zu belassen und einen Reverse-Proxy (Haproxy, Nginx, Apache HTTP usw. – was auch immer Sie kennen) einzurichten, um die Verbindung auf 80 und/oder 443 zu akzeptieren und den Datenverkehr bedingt (SNI) oder unbedingt an den Standardport der Anwendung weiterzuleiten? Der Nebeneffekt wäre, dass Sie 80/443 zwischen mehreren Diensten auf dem Host „teilen“ können.

verwandte Informationen