[BIND chroot - receita - LINUX]
Rodar um daemon num chrooted enviroment pode diminuir potencialmente os danos causados num possivel
break-in do mesmo, porem nao eh 100% livre de falhas e nem impossivel do "jail" ser quebrado :)
Porem, como seguranca demais nunca eh de menos...
1) Criacao do usuario sob o qual o daemon ira rodar:
usuario: named
grupo: named
# /usr/sbin/useradd -d / -s /bin/false named
Criamos entao o usuario named (com o grupo automaticamente criado e designado), tendo como $HOME o
diretorio / (dentro do chrooted jail), shell /bin/false (devendo ser adicionada ao seu /etc/shells)...
2) Instalacao do daemon em si:
2.1) Atraves de seu src.rpm no Red Hat:
2.1.1) Baixando:
# wget -nH -nd -c http://www2.linuxsecurity.com.br/tools/bind-chroot-8.2.2p5-1.src.rpm
2.1.2) Rebuilding:
# rpm --rebuild bind-chroot-8.2.2p5-1.src.rpm
2.1.3) Instalando:
# cd /usr/src/redhat/RPMS/i386/
# rpm --force --nodeps --Uvh *
2.1.4) Rodando:
A estrutura chrooted ja estara prontinha em /home/named, basta executar seu daemon:
# named -t /home/named -u named -g named
e nao se esqueca de rodar seu syslogd com a opcao -a para poder logar seu daemon "enjaulado" :)
# syslogd -m 0 -a /home/named/dev/log
2.2) Atraves de seu tarball src:
2.2.1) Baixando:
# wget -nH -nd -c ftp://ftp.isc.org/isc/bind/src/8.2.2-P5/bind-src.tar.gz
2.2.2) Descompactando:
# tar zxvf bind-src.tar.gz
2.2.3) Compilando:
# make; make install
2.2.4) Compilando a versao estaticamente linkada:
Edite o arquivo src/ports/linux/Makefile.set mudando a linha:
CDEBUG="-O -g" (segunda linha)
para:
CDEBUG="-O -static"
2.2.5) Recompile:
A partir do src/:
# make clean; make
2.2.6) Criando sua estrutura chrooted:
Escolha o diretorio o qual sua tree sera expandida (ex: /home/named) e crie a partir desse:
etc/
usr/
usr/lib/zoneinfo/
usr/sbin/
var/
var/named/
var/run/
var/tmp/
dev/
Copie:
para seu etc/:
/etc/group
/etc/localtime
/etc/named.conf
para seu var/named/:
/var/named/[suas_zonefiles]
para seu usr/sbin/:
seu named e named-xfer estaticamente linkados (passos 2.2.4 e 2.2.5)
q estao no src/bin/named e src/bin/named-xfer da arvore do source do
seu BIND :)
Crie:
seu dev/null:
# mknod /home/named/dev/null c 1 3; chmod 666 /home/named/dev/null
links simbolicos em seu etc/lib/zoneinfo/ (a partir dele):
# ln -s ../../../etc/localtime localtime
# ln -s localtime posixrules
# ln -s localtime posixtime
2.2.7) Rodando:
Idem passo 2.1.14
2.2.8) Alterando seus initscripts:
named:
daemon /home/named/usr/sbin/named -t /home/named -u named -g named
touch /var/lock/subsys/named
syslogd:
daemon syslogd -m 0 -a /home/named/dev/log
Autor: Renato Murilo Langona (SuidBit/BEAVISII) [renato@linuxsecurity.com.br]
Ultima atualizacao: [Fri Jan 7 17:51:19 BRST 2000]
Referencias:
Psionic
Dns And Bind 3rd Edition
chroot(1)
ISC