¿Cómo bloqueo nginx en debian wheezy (ejecutando systemd)?

Pregunta:

El archivo de unidad systemd que viene con el paquete nginx-common ejecuta el proceso maestro como root, lo que me pone nervioso.

Supongo que la única razón por la que se ejecuta como root es enlazar el puerto 80, pero ser root es excesivo para eso, así que lo estoy ejecutando como un usuario normal y le CAP_NET_BIND_SERVICE capacidad CAP_NET_BIND_SERVICE .

He modificado el archivo de la unidad para que se vea así:

[Service]
Type=forking
PIDFile=/var/run/nginx/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=/usr/sbin/nginx -s quit
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
Capabilities=cap_net_bind_service+=ep
user=www-data

¿Hay desventajas en este enfoque? ¿Nginx espera ser root por alguna otra razón? ¿Existe una mejor manera de bloquear nginx? Sé que a algunas personas les gusta hacer chroot, pero eso parece una gran molestia.

Respuesta:

El proceso maestro debe ejecutarse como root, de lo contrario, nginx no podrá vincularse al puerto 80, ya que este es un puerto privilegiado.

http://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html

En su lugar, debe asegurarse de que los procesos de trabajo utilicen un usuario diferente. Este usuario se puede especificar en su nginx.conf .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım