O nginx realmente precisa do dac_override em sua política do AppArmor?

3

Estou criando uma política do AppArmor para nginx no Ubuntu 14.04 e não consigo fazê-lo funcionar sem ativar o recurso dac_override .

O nginx realmente precisa disso ativado ou há alguma maneira de contornar isso? Ignorar todo o controle de acesso discricionário parece arriscado, mas talvez seja comum dentro das restrições do AppArmor.

nginx é executado sem restrições, portanto, não acho que haja um problema de permissão, mas sou novo no AppArmor, por isso posso estar errado.

    
por Federico B. 15.05.2016 / 23:39

2 respostas

3

As permissões de arquivo padrão para os logs nginx no Ubuntu são rw-r----- . Esses arquivos são de propriedade de www-admin:adm .

nginx começa com o usuário root , que tem o recurso CAP_DAC_OVERRIDE por padrão (lembre-se que root pode ler e gravar em qualquer arquivo no sistema) mas quando o confinamento do AppArmor entra em ação, o processo perde essa capacidade mesmo que seja executado como root , o processo nginx principal não pode abrir os arquivos de log.

A solução está alterando as permissões para que root também possa gravar nesses arquivos ou adicionar o recurso dac_override ao perfil do nginx do AppArmor.

    
por 29.05.2016 / 18:01
2

Além de sua própria resposta acima, talvez você possa atenuar a questão do acesso excessivamente amplo percebido usando uma " restrição dac_override "política:

capability dac_override {
    /var/log/nginx* rw,
}

De acordo com os documentos , deve-se notar também que mesmo uma política dac_override irrestrita não é possível fornecer um acesso irrestrito a todo o sistema de arquivos, de modo que um processo root regular, sem confinamento, desfrute:

"... to be able to access file that is not owned by someone else the task must have the dac_overide capability and the profile must contain both a file access rule and capability dac_override."

    
por 11.08.2016 / 13:05