So ist die Anwendung verpackt. Unter den meisten * nix-Betriebssystemen ist das Standardsetup ein nicht privilegierter Benutzer, der einen Port <1024 nicht überwachen kann und Webserver verwenden 80 und 443.
Linux 2.2+, Solaris 10+ und FreeBSD erlauben es Nicht-Root-Benutzern jedoch, auf Ports unter 1024 zu lauschen, nur nicht standardmäßig. Die meisten haben die Verwendung von akzeptiert, root
so bleibt es in Gebrauch.
Neben dem Zugriff auf den privilegierten Port müssen Sie sicherstellen, dass der Benutzer, auf dem nginx ausgeführt wird, Zugriff auf alle benötigten Dateien hat. Sie müssen wahrscheinlich nicht so weit gehen, sondern nur die richtigen Berechtigungen für Dateien / Verzeichnisse festlegen. Sie müssen auch sicherstellen, dass Startskripte keine hinterhältigen ulimit
Änderungen vornehmen (wie es bei MySQL immer der Fall ist).
setcap
und getcap
lassen Sie die cap_net_bind_service
Fähigkeit für eine ausführbare Datei ändern oder anzeigen . Dies gilt für alle, die die Binärdatei ausführen.
setcap cap_net_bind_service=+ep /usr/sbin/nginx
SELinux bietet die Möglichkeit, Funktionen auf Benutzerebene zu konfigurieren und zu steuern.
Freebsd Systemeinstellungen
Die reservierten Porteinstellungen gelten global für das System
sysctl net.inet.ip.portrange.reservedhigh=0
sysctl net.inet.ip.portrange.reservedlow=0
Solaris bietet eine differenzierte Steuerung der Berechtigungen auf Benutzerebene. Dies sind die Privilegien für Apache, aber sie funktionieren wahrscheinlich auch für Nginx.
/usr/sbin/usermod -K defaultpriv=basic,proc_exec,proc_fork,net_privaddr nginx