Pular para o conteúdo principal

Qual a melhor permissão para o diretório /home em servidores web?

Estava eu estudando como criar páginas em CGI e consegui criar um pequeno script em bash que dá um ls -la no diretório raiz do sistema. Posteriormente, eu o modifiquei para que também exibisse o conteúdo da pasta /home, a qual abriga as pastas de todos os usuários.


Foi aí que percebi um problema de segurança em potencial e logo entendi como resolvê-lo.



Basicamente, a maioria das empresas de hospedagem utiliza os hosts virtuais do Apache ou de outro servidor web para tornar vários sites diferentes disponíveis no mesmo servidor. Assim, quando você assina um plano de hospedagem, é criado um usuário para você em um servidor Linux e, na pasta desse usuário, existe uma pasta chamada public_html, que é onde você deve deixar as suas páginas. É essa pasta que é mapeada para o domínio ou o endereço que você registrou.


O fato, porém, é que os sistemas Linux possuem um rígido controle de permissões, o qual define o que os usuários podem e não podem fazer. Há alguns anos, eu criei um vídeo que explica direitinho essa questão, mas resumidamente, é o seguinte:




  • O Linux considera três níveis de permissões: Dono, Grupo e Outros.

  • O Dono é o usuário que criou o arquivo; O Grupo é o conjunto de todos os outros usuários que possuam pelo menos um grupo em comum com o Dono e os Outros são aqueles que não possuem grupos em comum com o Dono.

  • As permissões mais usadas são a 5 (leitura), 6 (leitura e escrita) e 7 (leitura, escrita e execução).


Na maioria das distribuições, o diretório /home (e, por conseguinte, os diretórios nele criados) vem, por padrão, com a permissão 755, o que significa que o dono daquele diretório (no caso o usuário) pode fazer nele o que bem entender e os demais usuários, tanto do grupo quanto os outros, podem apenas ler seu conteúdo.


Como o Apache acessa os arquivos das páginas Web através do seu próprio usuário (em geral, www-data nos sistemas baseados em Debian ou apache nos baseados em Red Hat) por uma questão de segurança, fica óbvio que a pasta public_html precisa ter permissão 755 pois, do contrário, o servidor Web não conseguirá ler os arquivos, visto que ele está na categoria "outros" (afinal, ele não possui quaisquer grupos em comum com o dono da página, nem mesmo o grupo users).


O problema, no entanto, é que se a pasta /home também possui permissão 755, o Apache vai conseguir listar seu conteúdo! Agora pense: servidor de hospedagem compartilhada, um cracker envia uma shell PHP (tipo c99) para o site através de uma falha de segurança e consegue listar o conteúdo da pasta /home... isto é, ele conseguiu uma lista de todos os sites que estão rodando naquela máquina! Em 2010, milhares de sites na Locaweb foram invadidos por um hacker turco e, provavelmente, uma brecha nas permissões deve tê-lo auxiliado nisso.


Assim, em um servidor web seguro, o usuário deve conseguir ler apenas o seu diretório. Logo, a permissão ideal para a pasta /home é 711, pois aí a pasta poderá ser acessada normalmente, mas seu conteúdo não poderá ser listado nem pelo usuário do servidor web nem pelo próprio dono da pasta, o que pode ser útil se a empresa oferece acesso SSH. Voltando ao nosso exemplo, o invasor que tivesse enviado uma shell para um site ficaria "preso" a esse site, não conseguindo descobrir quais são os outros usuários daquele sistema.

Comentários

Postagens mais visitadas deste blog

Como acessar configurações avançadas no Sagemcom F@st 2704N

NOVO TUTORIAL: GUIA DEFINITIVO DAS CONFIGURAÇÕES AVANÇADAS DO SAGEMCOM F@ST 2704N!
Atualização 23/01/2015: Alguns problemas apontados e descobertos nesse modem:
1. Alguns usuários relatam dificuldade em salvar alterações na configuração ADSL;
2. Não sei como acessar os logs do modem; mesmo habilitando, eles não aparecem;
3. Se você trocar o DNS do modem, ele voltará ao da Oi ao ser reiniciado;
4. Estou enfrentando alguns problemas sérios de lentidão. Não sei se isso é relacionado ao modem ou a algum dispositivo na minha rede interna.
-----
Os modens da marca Sagemcom estão se tornando muito populares no Brasil, não, quiçá, por sua qualidade, mas porque eles são os atuais queridinhos das operadoras: quando você assina um plano ADSL, geralmente a operadora envia um modem wireless para sua casa a fim de que você possa navegar sem precisar ter gastos extras com esse equipamento. É claro que os equipamentos fornecidos pelas operadoras são básicos, mas saciam as necessidades dos usuários comuns - …

O Guia Definitivo das configurações avançadas no Sagemcom F@st 2704N

Há alguns meses, eu contei minha experiência com o Sagemcom F@st 2704N e tenho recebido diversos comentários sobre suas configurações avançadas. Agora que minhas aulas na faculdade estão acabando, resolvi reservar um tempinho para explorar melhor esse modem que, diga-se de passagem, é muito bom.