Como faço para bloquear nginx no debian wheezy (executando o systemd)?

6

O arquivo da unidade systemd que vem com o pacote nginx-common executa o processo mestre como root, o que me deixa nervoso.

Eu assumo que a única razão pela qual ele é executado como root é ligar a porta 80, mas ser root é um exagero para isso, então estou executando-o como um usuário normal e dando a ele o recurso CAP_NET_BIND_SERVICE .

Eu ajustei o arquivo da unidade para ficar assim:

[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

Há alguma desvantagem nessa abordagem? O nginx espera ser root por algum outro motivo? Existe uma maneira melhor de bloquear o nginx? Eu sei que algumas pessoas gostam de chroot mas isso parece um monte de problemas.

    
por ashleyh 27.05.2013 / 14:46

1 resposta

4

O processo mestre deve ser executado como root, caso contrário o nginx não poderá ligar à porta 80, já que esta é uma porta privilegiada.

link

Você deve se certificar de que os processos de trabalho usem um usuário diferente. Este usuário pode ser especificado no seu nginx.conf .

    
por 27.05.2013 / 15:02