Configuração segura de hospedagem compartilhada (Apache, PHP, MySQL)

3

Então, estou configurando uma hospedagem compartilhada com Apache, PHP, MySQL e a maior questão é como fazer com o PHP, já que há um milhão de opções disponíveis para configurá-lo com segurança.

O plano é:

  • Chroot para MySQL (suporte integrado ao chroot)
  • Chroot para o Apache (mod_security)
  • Cada usuário executando seus scripts PHP como seu próprio usuário (veja abaixo)
  • Definir open_basedir
  • Desabilitar todas as funções php "malvadas" (allow_url_fopen, system, exec e assim por diante)

Eu olhei para suexec e suphp , mas eles parecem muito lentos;

link link

Então eu olhei mais um pouco e encontrei algumas outras soluções:

  • apache2-mpm-itk + mod_php (?)
  • mod_fcgid + php-fpm
  • mod_fastcgi + php-fpm

Eu tentei uma configuração simples com mod_fastcgi + php-fpm e parece funcionar, ser executado como usuário correto e assim por diante, mas a proteção contra o diretório de viagem ainda é open_basedir (?)

Uma solução para isso pode ser usar a opção chroot do php-fpm, mas isso causa muitos outros problemas, como

    O
  • resolvedor de nomes de domínio não funciona
  • o envio de e-mails não funciona

Dicas?

    
por Apaz 07.10.2011 / 15:42

2 respostas

1

O projeto fpm fez um ótimo trabalho permitindo a implantação de soluções de hospedagem compartilhada com bastante facilidade, mesmo fazendo chrooting dos usuários (no entanto, existem alguns problemas com o apache que poderiam ser resolvidos através de links simbólicos; há muitos tutoriais na internet sobre ))

A solução que envolve o php5-fpm requer o mod_fastcgi e permite que o hoster faça configurações por usuário (memory_limit, max_execution_time ... apenas como um exemplo) e, pelo que pude ver, é bastante estável;)
Sobre os problemas com a resolução e uso dos e-mails, eles são facilmente resolvidos adicionando as bibliotecas ao ambiente chrooted e os executáveis necessários (sendmail, por exemplo).

O problema que encontrei e estou resolvendo, é sobre as variáveis erradas passadas para os scripts php pelo php-fpm (após o chrooting, o php-fpm deve remover os diretórios externos, passando para o script apenas os que estão dentro do chroot ... mas isso não acontece e outra coisa deve cuidar disso, algo como um proxy entre mod_fastcgi e php-fpm). Consegui resolver o problema usando um proxy fcgi entre o php-fpm e o apache que corrige automaticamente as variáveis, pois o php-fpm no momento em que escrevo não consegue consertá-las.

    
por 26.06.2012 / 23:00
0

Desde quando essa pergunta foi perguntada e respondida, o CloudLinux realmente se tornou uma distribuição Linux de mainstream no espaço de hospedagem compartilhada. É baseado no RHEL / CentOS como seu upstream, embora com algumas modificações. Aqui estão alguns detalhes:

  • Ele fornece algo chamado CageFS para manipular chrooting.
  • Para executar o PHP, ele oferece algo chamado mod_lsapi, que é uma maneira de executar o PHP com um bom desempenho de uma forma muito semelhante àquela com a qual você estaria acostumado. com mod_php (ou seja, capaz de usar php_flag e php_value em .htaccess arquivos e ele opcode caching em um bom caminho). É capaz de fazer isso com bom isolamento de privilégios entre usuários.
  • Ele também fornece uma modificação no nível do kernel para proteger contra o symlink ataques.
por 11.07.2015 / 05:31