Torne o usuário do apache um usuário sem shell:
Exemplo:
chsh -s /sbin/nologin apache
Estamos executando um aplicativo da web em python usando o wsgi com o apache2 e devemos enviar um teste de penetração. Os testadores estarão explorando o potencial de danos se os invasores obtiverem acesso ao shell como o usuário do apache.
Atualmente, o potencial de dano é enorme, pois temos as credenciais para o banco de dados, o serviço s3, etc., todos armazenados em um arquivo de texto legível pelo usuário do apache. Este parece ser o conselho padrão ao configurar esses tipos de aplicativos, mas existe uma maneira mais segura de fazer isso?
Eu estava pensando em usar o apache (como root) para passar variáveis de ambiente com setenv para o aplicativo wsgi, mas isso é realmente mais seguro? Algum conselho para isso?
Obrigado!
Torne o usuário do apache um usuário sem shell:
Exemplo:
chsh -s /sbin/nologin apache
mod_wsgi
tem a capacidade de ser executado como outro usuário, portanto, implemente-o e configure as permissões do sistema de arquivos adequadamente.
Se o apache for executado como root, faça também os privilégios de drop e execute sob outra conta sem acesso aos arquivos wsgi.
Pergunto-me se você tem que avaliar o dano incorrido pelo mod_wsgi
use ser descascado:)
Editar:
Cuidado, chsh
'usuário do apache para nologin
não não impedirá o acesso ao shell caso o processo do Apache seja atingido por uma exploração. Eu olharia para o selinux
se isso é um grande problema.