[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