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:
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.
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
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
Fonte: http://www.4security.com.br
Configurando Apache SSL (Habilitando HTTPS)
Alguns links para quem deseja trabalhar com computação forense
Lynis - Unix Security Tool
TARA - Tiger Analytical Research Assistant - Auditoria em sistemas Linux
GTS (Grupo de Trabalho em Segurança) e e GTER