Anda di halaman 1dari 5

Fortalecendo o kernel Linux com (Debian) Grsecurity

(HARDENING)

A segurança é baseada em três características: prevenção, proteção e de detecção. Grsecurity é um


patch para o kernel do Linux que permite que você aumente cada um desses pontos.

Neste artigo iremos ultilizar Debian Lenny.

Para compilar o kernel, você precisará instalar alguns pacotes específicos:

4security:~# aptitude install patch bin86 kernel-package build-essential

Se você gosta de configurar seu kernel em modo console gráfico (make menuconfig), você deve instalar
mais um pacote:

4security:~# aptitude install libncurses5-dev

Verifique se initramfs-tools está instalado:


(Usado para gerar a ramdisk init)

4security:/usr/src# dpkg -l initramfs*

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-
============================================
ii initramfs-tool 0.85i tools for generating an initramfs
4security:/usr/src#

Vá para a pasta de origem:

4security:/root# cd /usr/src

Baixe o patch grsecurity

4security:/usr/src# wget grsecurity.net/grsecurity-2.1.11-2.6.24.5-200804211829.patch.gz

4security:/usr/src# wget eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.5.tar.gz

Descompacte o arquivo do kernel:

www.4security.com.br
4security:/usr/src# tar xzvf linux-2.6.24.5.tar.gz

Crie um link simbólico na pasta novo kernel para aliviar as seguintes tarefas:

4security:/usr/src# ln -s linux-2.6.24.5 linux

Agora, o ambiente está pronto. Vamos ao Hardening!


Mova o patch grsecurity para o novo diretório:
4security:/usr/src# mv grsecurity-2.1.11-2.6.24.5-200804211829.patch.gz linux/grsecurity-2.1.11-
2.6.24.5-200804211829.patch.gz

Descompacte para corrigir o fonte do kernel:

4security:/usr/src# cd linux
4security:/usr/src/linux# gunzip < grsecurity-2.1.11-2.6.24.5-200804211829.patch.gz | patch -p1

Agora, o patch foi aplicado ea fonte do kernel foi modificado. Vamos configurar o kernel para permitir
Grsecurity.

Neste exemplo, vamos configurar o kernel usando um menu do console (make menuconfig). É por isso
que instalei o pacote libncurses5-dev No entanto, você pode configurar no modo console puro (make
config), ou em modo GUI (make xconfig).

Grsecurity tem predefinidos níveis: baixo, médio, alto. Ele também pode ser configurado em nível
personalizado, onde poderá optar por permitir ou não a opção por opção.
Veja http://www.grsecurity.net/confighelp.php/ para mais informações sobre cada opção. Neste artigo,
vamos configurar Grsecurity em alto nível.

4security:/usr/src/linux# make menuconfig

Agora, vamos permitir que Grsecurity no menu.

Ir para :Security options > Grsecurity > tick Grsecurity.

www.4security.com.br
www.4security.com.br
No seu servidor você provavelmente não precisa de suporte para bluetooth, infravermelho, wi-fi nem ,
ipx, X25, Token Ring, ATM, firewire, PCCard, joystick, mouse, som ....

Compilando o Kernel:

Agora é hora de compilar seu kernel hardened. Em primeiro lugar, apenas no caso, a limpeza:

4security:/usr/src/linux# make-kpkg clean

(isso pode demorar um pouco dependendo do seu poder de CPU e memória RAM !!!)

4security:/usr/src/linux# make-kpkg --initrd --append-to-version "grsec1.0" kernel_image

No caso de você não estiver usando uma distribuição Debian, você pode compilar a maneira clássica
com:

4security:# make mrproper


4security:# make menuconfig
4security:# make clean
4security:# make
4security:# make modules_install
4security:# mkinitramfs
4security:# make install

Instale o kernel:
Seu novo kernel é compilado e um arquivo .deb foi gerado na pasta /usr/src. Você precisa instalar o seu
kernel como qualquer outro pacote .deb:
4security:/usr/src# dpkg -i linux-image-2.6.24.5-grsec_grsec1.0_i386.deb

www.4security.com.br
Durante a instalação, uma imagem initrd será gerada. Isso pode demorar um pouco dependendo do seu
poder de processamento e disponibilidade de memória RAM! Você também pode verificar se a nova
imagem de kernel é realmente um kernel!

4security:/usr/src# file vmlinuz-2.6.24.5-grsec


vmlinuz-2.6.24.5-grsec: Linux kernel x86 boot executable RO-rootFS, root_dev 0x801, swap_dev 0x1,
Normal VGA

Agora é hora de reiniciar o sistema com seu novo kernel fortalecido:

4security:/usr/src/linux# shutdown -r now

Agora que o sistema foi reiniciado, você pode verificar seu novo kernel, executando:

4security:~# uname -r

2.6.24.5-grsec

Testando o kernel

Exceto o fato de que uname -r está dizendo que seu kernel é um grsec, como você sabe se está torando
o kernel que fortalecemos?
Usaremos o paxtest que irá simular um ataque sobre o kernel e mostrar se você está vulnerável ou não.
Download:
4security:/tmp# wget http://www.grsecurity.net/~paxguy1/paxtest-0.9.7-pre5.tar.gz

Extraí-lo:
4security:/tmp# tar xzvf paxtest-0.9.7-pre5.tar.gz
4security:/tmp# cd paxtest-0.9.7-pre5
Compilando:
4security:/tmp/paxtest-0.9.7-pre5# make generic

Executá-lo (há 2 modos diferentes: kiddie e blackhat):


4security:/tmp/paxtest-0.9.7-pre5# ./paxtest kiddie

Gabriel R. Vieira
www.4security.com.br

www.4security.com.br