kernel grsec no debian lenny
Grsec é um patch para o kernel que foi desenvolvido com o intúito de aumentar a segurança. Seu desenvolvimento começou em fevereiro de 2001 e teve sua primeira versão para o kernel 2.4.1. Ele possui vários tipos de recursos como por exemplo: ACLs; Proteção contra buffer-overflow; Auditoria; Suporte a sysctl; Proteção no uso chroot; Negar escrita no /dev/kmem, /dev/mem; Restrições ao /proc e dmesg; Esconder processos do kernel.
Para utilizar o sistema de ACLs, utiliza-se o software gradm, o mesmo faz um total controle do que pode ou não ser utilizado, além de ter um sistema de aprendizagem, no qual ele fica apenas monitorando o que determinado serviço utiliza e com isso pode criar configurações baseadas no que foi monitorado. Este sistema é similar ao selinux.
As atuais versões do grsecurity contam com o PAX, que é um completo sistema de proteção a memória. Sua idéia principal é proteger o sistema contra técnicas usadas para ler e gravar em determinados segmentos de memória. Para tal tarefa é utilizada técnicas como a ASLR (Address Space Layout Randomization).
Para todos aqueles que não querem compilar um kernel, o pessoal do teamix.net disponibiliza todos os pacotes do kernel 2.6.26 com suporte a grsec. Para instalar, primeiramente, baixe os pacotes:
debian:~# wget -c http://people.teamix.net/~ms/debian/lenny/grsec/linux-doc-2.6.26-grsec_2_all.deb debian:~# wget -c http://people.teamix.net/~ms/debian/lenny/grsec/linux-headers-2.6.26-grsec_2_i386.deb debian:~# wget -c http://people.teamix.net/~ms/debian/lenny/grsec/linux-image-2.6.26-grsec_2_i386.deb
Agora instale os pacotes:
debian:~# dpkg -i linux-doc-2.6.26-grsec_2_all.deb linux-headers-2.6.26-grsec_2_i386.deb linux-image-2.6.26-grsec_2_i386.deb
Com os pacotes grsec instalados, dê um boot no seu debian (o que você instalou o kernel grsec) e na opção do grub selecione o kernel que instalamos, após o sistema inicializar, remova o kernel antigo:
debian:~# apt-get remove --purge linux-image-2.6-686 linux-image-2.6.26-2-686
Pode ser que ocorra algum problema na hora do dpkg rodar o update-grub, caso isto ocorra, edite o /boot/grub/menu.lst e remova os outros kernels, deixando somente as opções referentes ao kernel grsec.
Se o seu debian tem postfix instalado ou qualquer outro serviço que utilize chroot, adicione as seguinte linhas no seu /etc/sysctl.conf:
# Disabilita o log do grsec kernel.grsecurity.resource_logging = 0 # Disabilita limites do grsec execve kernel.grsecurity.execve_limiting = 0 # Disabilita log de mount kernel.grsecurity.audit_mount = 0 # Disabilita log de mudança de horário kernel.grsecurity.timechange_logging = 0
Como o grsec limita acessos ao /proc, crie o grupo grsec com gid 1001. Caso este gid já exista em algum outro grupo, sugiro você alterá-lo para outro gid e após isto, criar o grupo grsec. Você deve estar pensando o porque deste grupo correto? isto é necessário porque na configuração do kernel, quem o compilou, definiu que o grupo grsec necessita ter o gid 1001 e este grupo tem acesso ao /proc. Sem este acesso, usuários comuns ficam restritos a visualizem somente seus processos.
Para adicionar usuários a este grupo utilize o comando:
gpasswd -a usuario grsec
Substitua usuario pelo usuário que você quer que tenha acesso ao /proc, como por exemplo o usuário snmp, pois caso tenha snmp rodando e o usuário não tiver acesso ao /proc ele não conseguirá coletar informações das interfaces de rede.
Caso necessite do kernel source, baixe o pacote:
debian:~# wget -c http://people.teamix.net/~ms/debian/lenny/grsec/linux-source-2.6.26-grsec_2_all.deb
Caso queira utilizar também o gradm, baixe o pacote:
debian:~# wget -c http://people.teamix.net/~ms/debian/lenny/grsec/gradm2_2.1.12-1_i386.deb
Maiores informações sobre grsec, consulte o site do desenvolvedor.