Terça-feira, 25 de Setembro de 2007
PHP chrooted
Na sequência do artigo anterior sobre como correr o MySQl num ambiente
chrooted, aqui vai a vez do PHP.
# gzip -dc apache_1.3.47.tar.gz | tar xvf -# gzip -dc php-5.2.3.tar.gz | tar xvf -# gzip -dc mod_security_1.95.tar.gz | tar xvf -# cp mod_security_1.95/apache1/mod_security.c apache_1.3.37/src/modules/extra/# cd apache_1.3.37# ./configure --prefix=/usr/local/httpdCompilar o PHP:
# cd ../php-5.3.2
# ./configure --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.37 --enable-safe-mode (etc. mais opções)# make# make install# cp php.ini-dist /usr/local/lib/php.ini
# chown root:sys /usr/local/lib/php.ini
# chmod 644 /usr/local/lib/php.ini
O Apache:
# cd ../apache_1.3.37# ./configure --prefix=/usr/local/httpd --disable-module=all --server-uid=apache --server-gid=apache --enable-module=access --enable-module=log_config --enable-module=dir --enable-module=mime --enable-module=auth --activate-module=src/modules/extra/mod_security --enable-module=security --activate-module=src/modules/php5/libphp5.a# make# make install#chown -R root:sys /usr/local/httpdAgora, prepara-se o ambiente
chrooted para o Apache com o módulo PHP:
# cp /usr/local/mysql/lib/mysql/libmysqlclient.so.12 /chroot/httpd/usr/lib/# cp /usr/lib/libm.so.2 /chroot/httpd/usr/lib/# cp /usr/lib/libz.so.2 /chroot/httpd/usr/lib/Adicionamemte, temos que copiar o ficheiro de configuração do PHP:
# umask 022# mkdir -p /chroot/httpd/usr/local/lib# cp /usr/local/lib/php.ini /chroot/httpd/usr/local/lib/# mkdir /chroot/httpd/tmp
# chown -R root.root /chroot/httpd/tmp
# chmod 1777 /chroot/httpd/tmp
# chroot /chroot/httpd /usr/local/httpd/bin/httpd
# ln /tmp/mysql.sock /chroot/httpd/tmp/
Configuração do Apache para defesa contra cross side scripting e SQL injection, através do mod_secutity:
<IfModule mod_security.c>
AddHandler application/x-httpd-php .php
SecAuditEngine On
SecAuditLog logs/audit_log
SecFilterScanPOST On
SecFilterEngine On
SecFilterDefaultAction "deny,log,status:500"
SecFilter "<(.|\n)+>"
SecFilter "'"
SecFilter "\""
</IfModule>
Ok, para a próxima, explico como tornar o Apache chrooted, ok ?
A ouvir: Just Good Friends, Fish.
YouTube: http://www.youtube.com/watch?v=ApxexrzQQas
Os comentários são da exclusiva resonsabilidade dos seus autores.
Mário Gamito, 2004 - 2007
Todos os direitos reservados.