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/httpd

Compilar 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/httpd

Agora, 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

 

tags:
publicado por gamito às 15:02
link
Os comentários são da exclusiva resonsabilidade dos seus autores.
Mário Gamito, 2004 - 2007
Todos os direitos reservados.

Mais sobre mim

pesquisar

Janeiro 2008

Dom
Seg
Ter
Qua
Qui
Sex
Sab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Subscrever por e-mail

A subscrição é anónima e gera, no máximo, um e-mail por dia.

Posts recentes

Portagens

Há 20 anos atrás... *sigh...

Vou criar a minha própria...

Finalmente

SAPO codebits

Sporting

Caixa Mágica e Mandriva

A1 Aveiro - Lisboa

Browser mamão

gFTP

PlayStation 3 e Sony

Mas quem é o gajo ?

Negócios do Open Source

Não estão fartos disto ?

Naughty, naughty

PHP chrooted

Joomla

Novo Projecto

MySQL :: It's the ctl, st...

MySQL :: Just a little ti...

MySQL chrooted

BASH, stdout e stderr

4 kb stack ou 8kb stack

A funny guy...

Truques, Minas e Alçapões...

Truques, Minas e Alçapões...

Logs do mrtg

Salmos, 23

Servidor caseiro - XXVII

Servidor caseiro - XXVI

Servidor caseiro - XXV

Números de telemóvel aban...

Servidor caseiro - XXIV

Humm...

Servidor caseiro - XXIII

Servidor caseiro - XXII

Servidor caseiro - XXI

Servidor caseiro - XX

Servidor caseiro - XIX

Ubuntu : O Enigma

Leixões 1 - Benfica 1

Servidor caseiro - XVIII

Servidor caseiro - XVII

Servidor caseiro - XVI

Servidor caseiro - XV

Servidor caseiro - XIV

Servidor caseiro - XIII

Servidor caseiro - XII

Servidor caseiro - XI

Servidor caseiro - X

Contacto

gamito@gmail.com

tags

todas as tags

subscrever feeds