Permitir acesso no diretório inicial para o apache, mas não para outros usuários?

1

Eu construo um site que gerencia automaticamente um servidor dedicado. Ele faz todo tipo de coisas, como criar usuários e configurações do apache para apontar para o diretório inicial.

Os binários de jogos do host de diretórios home e a pasta home podem ser acessados da web, mas somente arquivos de recursos não essenciais (.wav .mdl .spr etc) podem ser acessados, é assim que o apache é configurado. Então, para que isso funcione, preciso executar e ler permissões em todos os arquivos.

O problema é que os binários executados na pasta inicial de um usuário podem acessar a pasta base de outros usuários, ler e gravar em arquivos lá.

Como posso tornar o diretório pessoal de um usuário inacessível para qualquer outra pessoa, exceto ele e via apache? Aqui está a aparência da árvore de pastas:

link (nenhum representante para mostrar a imagem diretamente)

    
por Aron 12.08.2015 / 22:49

2 respostas

2

Defina uma ACL no diretório inicial de cada usuário, para o qual o Apache precisa de acesso. Isso permite que você evite truques bobos com grupos, que podem causar mais problemas do que resolvem.

Por exemplo:

setfacl -R -m u:httpd:rx,d:u:httpd:rx /home/username

permitirá que o usuário httpd leia tudo nesse diretório, incluindo subdiretórios e arquivos recém-criados.

    
por 12.08.2015 / 23:20
0

Sugiro que o diretório pessoal de cada usuário seja de propriedade do usuário e do grupo do usuário, e que apenas o usuário e o grupo entrem no diretório (770) e tornem o Apache membro do grupo de cada usuário.

Além disso, certifique-se de implementar alguma forma de proteção contra ataques de links simbólicos (consulte o link para algumas opções - este link não se aplica apenas ao cPanel).

Uma abordagem que manteria as coisas simples e não exigiria proteção de ataques de links simbólicos seria usar o MPM ITK se você não se importar com o acerto de velocidade (e ver também os "Peculiaridades e Avisos" em sua página inicial). Nesse caso, o Apache é executado como cada usuário individual do site.

Você também pode conferir Hospedagem multi-site - vulnerabilidade importante sendo perdida para proteger sites uns dos outros? para uma discussão sobre segurança de hospedagem multi-site e algumas outras abordagens.

Aviso: não posso prometer que qualquer sugestão acima é 100% segura, por isso, use a seu próprio risco =).

    
por 12.08.2015 / 23:15