Encapsulamento de Apache com chroot
E o chroot é um módulo para o apache, que possibilita a execução do apache em um ambiente encapsulado e seguro.
Introdução e Preparação do Ambiente
Introdução
Desde abril de 1996 o servidor Web Apache é o servidor web mais conhecido e utilizado no mundo.O Apache HTTP Server ("httpd ou apache2") é um projeto da Apache Software Foundation, que pode ser encontrado na URL http://httpd.apache.org/, e utilizado livremente.
E o chroot é um módulo para o apache, que possibilita a execução do apache em um ambiente encapsulado e seguro.
O módulo chroot está incluído nos repositórios das distribuições FreeBSD, DarwinPorts, PLD Linux, Gentoo Linux, Debian e NetBSD.
Nas outras distribuições os fontes podem ser baixados em: http://core.segfault.pl/~hobbit/mod_chroot/dist, e a mais recente no momento da criação deste artigo foi http://core.segfault.pl/~hobbit/mod_chroot/dist/mod_chroot-0.5.tar.gz.
Preparando o ambiente
Criando o volume, com 100M:# mkdir -vp /mnt/vm /httpdjail;
# dd if=/dev/zero of=/mnt/vm/httpdjail.img bs=1k seek=100k count=1;
# mke2fs /mnt/vm/httpdjail.img;
# mount -o loop,noexec,nodev,nosuid -t ext4 /mnt/vm/httpdjail.img /httpdjail;
Criando os diretórios necessários:
# mkdir -vp /httpdjail/var/www/html /httpdjail/{tmp,home} /httpdjail/var/{run,www,log} /httpdjail/var/run/{apache2,httpd};
Ou:
# mkdir -vp /httpdjail/var/{run,www};
# chown -R root.root /httpdjail/var/run;
# chmod 1777 /httpdjail/tmp;
Editando /etc/fstab:
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/mnt/vm/httpdjail.img /httpdjail ext4 loop,nodev,noexec,nosuid 0 0
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/mnt/vm/httpdjail.img /httpdjail ext4 loop,nodev,noexec,nosuid 0 0
Instalando o módulo chroot no Apache através dos fontes no Debian-Like:
# aptitude install apache2-mpm-prefork apache2-threaded-dev; # wget http://core.segfault.pl/~hobbit/mod_chroot/dist/mod_chroot-0.5.tar.gz # tar -zxvf mod_chroot-0.5.tar.gz -C /tmp # apxs2 -cia /tmp/mod_chroot-0.5/mod_chroot.c
Instalação repositório Debian: Instalação repositório Ubuntu: Instalando o modulo chroot no Apache através dos fontes no RedHat-Like:
# yum install httpd-devel; # wget http://core.segfault.pl/~hobbit/mod_chroot/dist/mod_chroot-0.5.tar.gz # tar -zxvf mod_chroot-0.5.tar.gz -C /tmp # apxs -cia /tmp/mod_chroot-0.5/mod_chroot.c
Isso sim que é um artigo bacana. Eu não cheguei a testar mas parabéns pela iniciativa.