chroot PHP-FPM com chdir

4

Estou tentando configurar um site dentro de um chroot PHP-FPM. Meus caminhos são os seguintes:

chroot = /var/www/
chdir = www/

O chroot funciona bem sem chdir. Mas quando eu adiciono chdir eu recebo este erro na inicialização do php-fpm:

ERROR: [pool www] the chdir path '/usr/www/' within the chroot path '/var/www/' ('/var/www///usr/www/') does not exist or is not a directory

Alguém sabe por que iria acrescentar /usr/ ao caminho chdir? Existe uma maneira de removê-lo desse caminho?

Além disso, se eu alterar o caminho chdir para /www/ , preciso procurar http://localhost/www/filename.php para ver meu arquivo. Não é o ponto de chuck fazer isso desnecessário?

    
por tubaguy50035 20.09.2012 / 23:02

2 respostas

1

Recebi ajuda do IRC do phpfreaks ontem à noite. Foi um problema no lado do Apache que eu precisei enviar o "/ www" para o PHP-FPM.

    
por 21.09.2012 / 18:51
2

Você já preparou um chroot apropriado para PHP?

Simplesmente configurar um diretório arbitrário não é suficiente - você realmente precisa construir o chroot e garantir que ele inclua todas as bibliotecas, dispositivos e binários necessários.

Caso contrário, coisas básicas como a resolução de DNS não funcionarão e você receberá erros aleatórios, interrupções ou segfaults de aplicativos. Parece que você está confundindo a simplicidade de open_basedir com a de um chroot.

Para começar, esse script, uma vez personalizado, deve fornecer uma base para um chroot.

link

Mas, realisticamente, se você não tem muita experiência com chroots ...

  1. Pode não ser mais seguro que o normal se for configurado incorretamente
  2. Pode ser muito mais inseguro do que o normal e pode permitir escalonamento de raiz se configurado incorretamente
  3. Você pode acabar com problemas aleatórios, que afetarão seu aplicativo ao longo do tempo, todos causados por um chroot mal construído

Eu acho que a segurança é o seu objetivo, mas é muito provável que você acabe com o exato oposto.

    
por 20.09.2012 / 23:23