Ao desenvolver uma página em um host local, às vezes recebo um erro "Permissão negada" que posso resolver executando chmod -R 777 /var/www
. No entanto, as pessoas estão me dizendo que essa é uma má idéia por razões de segurança.
Por que não deveria /var/www
ter um chmod de 777?
permissions
security
apache2
www
Luis Alvarado
fonte
fonte
Respostas:
777 é uma permissão ruim em geral e eu mostrarei o porquê.
Apesar de parecer em um cassino ou em Las Vegas, o 777 não significa jackpot para você. Em vez disso, jackpot para quem deseja modificar seus arquivos. 777 (e seu feio primo 666) permitem permissões de Leitura e Gravação (e, no caso de 777, Executar) para outros . Você pode aprender mais sobre como as permissões de arquivo funcionam , mas, em suma, existem três grupos de permissões: proprietário, grupo e outros . Ao definir a permissão para 6 ou 7 (
rw-
ourwx
) para outro, você oferece a qualquer usuário a capacidade de editar e manipular esses arquivos e pastas. Normalmente, como você pode imaginar, isso é ruim para a segurança.Aqui está o meu exemplo:
Até agora, criei uma pasta e criei um arquivo com permissões "ruins" (777 e 666). Agora vou mudar para outro usuário e tentar manipular esses arquivos.
Como esse usuário "malicioso", consegui colocar arquivos no diretório e injetar texto em arquivos já existentes. Considerando que, abaixo, em um diretório com 755 e arquivos com 644, posso ver arquivos e diretórios internos, mas não consigo editar os arquivos nem criar novos:
Para permissões do Apache, convém usar 0755 e 0644 (AKA
umask 022
) para pastas e arquivos, respectivamente. Isso permite que você, como proprietário dos arquivos, edite e manipule-os enquanto fornece ao Apache os níveis mínimos de acesso necessários para operar.fonte
/etc/passwd
e você verá os usuários comomail
,news
, enobody
. Mesmo que seja bom que todos os usuários humanos reais do seu sistema possam modificar o conteúdo/var/www
, isso não significa que você deseja que todos os processos sejam executados, pois esses usuários "artificiais" poderão fazê-lo.ls -lah
,touch bad
ou quaisquer outros comandos. Como eles podem manipular pastas e arquivos? 2) Herança. Você não cobriu nenhuma herança entre pastas e arquivos dentro delas. Há pelo menos 2-3 passo antes de um arquivo:/var
,/var/www
,/var/www/project
. Quais permissões de usuário / grupo devem/var
ter? Quais permissões de usuário / grupo devem/var/www
ter? E assim por diante. Como eles cooperam?Essencialmente, ter permissões do 777 não o fará invadir por conta própria, mas se alguém entrar em qualquer lugar, ele poderá ser usado para escalar permissões e obter controle completo sobre o seu computador. A pior parte é que suas permissões estão usando "7" - isso significa ler, gravar e executar permissões.
Digamos que um hacker queira assumir o controle do seu computador. Ele pode se conectar ao seu computador usando um navegador da web, conectando-se a http://seucomputador.exemplo.com:80/. Se você tiver alguma página disponível que permita o upload de imagens, ele poderá renomear um executável para terminar com ".jpg" e enviá-lo ao seu servidor. Agora ele navega para esse arquivo em seu navegador e o executa, porque o linux não se importa com a extensão, apenas vê que é um arquivo executável. Isso pode não lhe agradar muito, mas, como funcionou, ele sabe que funcionou como usuário apache. Ele então carrega uma versão modificada que edita os arquivos de configuração do apache, concedendo a ele ainda mais acesso - digamos que o apache produza o conteúdo de / etc / passwd. Ele pode usar essas informações para ver quais usuários existem no sistema. Ele pode se conectar usando ssh e tentar senhas comuns para fazer login como esses usuários - se isso não funcionar, ele passará a usar um ataque de força bruta. Se ele entrar como usuário com acesso sudo,
Agora, você pode dizer que isso não é provável ou que não é assim que um hacker de verdade funcionaria. Isso é verdade, mas o ponto é que, ao configurar os arquivos para o chmod 777, você abriu uma brecha de segurança que um hacker pode usar da maneira que achar melhor.
Se você seguir o Princípio de menor privilégio , esse buraco não ocorrerá e seu sistema será muito mais difícil de invadir. Mesmo que seja mais difícil fazer as coisas corretamente, você ainda deve fazer todos os esforços para fazê-lo.
fonte