ArtigosDefensive

Implantando um Ambiente Chroot

Fala galera… Hoje aqui no Guia do Ti iremos abordar um pouco de hardening, ou melhor, como deixar seu sistema mais seguro utilizando Chroot. Bem para que não entende nada de sistemas enjaulados, vamos entender um pouco o que é esse tal de Chroot e saber como esse carinha pode nos ajudar a aumentar a segurança de nossos servidores.

“Um chroot em sistemas operacionais Linux, é uma operação que muda o diretório raiz do sistema para os processos em execução. Um programa que é executado em um ambiente modificado não pode acessar ou modificar arquivos fora da árvore de diretórios do sistema designado. Esse ambiente modificado é chamado de jaula.”

Fonte: http://en.wikipedia.org/wiki/Chroot

Sua utilização é altamente recomendável e consta na norma ABNT NBR ISSO/IEC 27002:2005, no item 16.6.2 diz que sistemas sensíveis devem ter um ambiente computacional dedicado (isolado), isso impede que se um possível atacante tiver acesso ao servidor ele ficará preso dentro do chroot, ele não terá acesso ao servidor real.

Vamos ver como colocar esse carinha pra rodar agora. Aqui no meu laboratório estou utilizando um Ubuntu server 14.04, mas fique à vontade para escolher seu sistema operacional.

Obs: Esses passos foram testados nos sistemas Ubuntu e Debian, caso você esteja utilizando CentOS ou outra distribuição os nomes dos pacotes podem variar um pouco.

Primeiramente iremos precisar instalar o pacote que faz toda essa “mágica” funcionar, o Debootstrab, ele é o responsável por instalar a base de um sistema dentro do subdiretório de outro sistema já instalado:

# apt-get install debootstrap

Agora precisamos criar o diretório onde será instalado nosso sistema:

# mkdir /var/khal-chroot

Depois de criar o diretório iremos instalar a base do novo sistema, para isso é preciso escolher a versão que você deseja, abaixo segue a lista de algumas versões das distribuições Debian e Ubuntu:

Debian 7: wheezy
Debian 6: squeeze
Debian 5: lenny

Ubuntu 14.04: Trusty
Ubuntu 13.10: Saucy
Ubuntu 13.04: Raring
Ubuntu 12.10: Quantal
Ubuntu 12.04: Precise

Obs: Lembre de escolher uma versão da mesma distribuição que você esteja utilizando no sistema local, caso contrário pode dar alguns problemas caso você compartilhe os processos.

# debootstrap quantal /var/khal-chroot

Nesse momento você pode ir tomar um café ou ler as notícias aqui do blog, vai demorar alguns minutos, rsrsrs.

Depois que esse processo terminar iremos precisar vincular os processos com nossa máquina real, para isso iremos executar:

# mount –bind /proc/ /var/khal-chroot/proc

Agora para entrar na nossa jaula iremos rodar o seguinte commando:

# chroot /var/khal-chroot

Obs: Preste atenção que nada irá mudar no console, e devido a isso podemos nos confundir facilmente de onde estamos, então iremos resolver isso, entre no arquivo .bashrc:

# pico /root/.bashrc

Obs: Você pode usar o vi ou outro editor de sua preferência, caso o comando pico não esteja instalado basta executar:

# apt-get install nano

Procure a linha que contém o seguinte conteúdo:

PS1=”\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1″

Comente essa linha e insira a linha abaixo:

PS1=’ khal-chroot:\w\$ ‘

Caso seu sistema seja Debian a linha que deve ser alterada esta na quinta linha.

Salve e saia do arquivo, aparentemente nada aconteceu mas basta sair com exit e entrar no sistema enjaulado novamente para ver o que acontece com a identificação na shell.

Obs: Coloque o nome que mais lhe agradar, fique à vontade.

Depois disso atualize o sistema com o comando:

# apt-get update
# apt-get upgrade

Agora iremos mudar a senha de root:

# passwd root

Calma, estamos quase no fim, no fstab do chroot crie os pontos de montagem dos dispositivos dos terminais virtuais, assim depois que instalarmos o ssh por exemplo iremos conseguir acessar nosso chroot, caso contrário não iremos conseguir.

# pico /etc/fstab

Adicione a seguinte linha no arquivo:

devpts /dev/pts devpts defaults 0 0

Salve e saia do arquivo, depois dê o comando:

# mount –a && mount

Você deverá receber a seguinte saída:

devpts on /dev/pts type devpts (rw)

Caso você possua um servidor SSH no seu sistema original é preciso dar um stop nele, pois como os processos são vinculados não pode ter dois servidores do mesmo serviço rodando, antes de instalarmos o SSH em nosso Chroot saia do mesmo e pare o SSH no sistema original:

# servisse ssh stop

Entre no chroot novamente e instale o pacote do SSH:

# apt-get install ssh

Depois que o SSH estiver instalado dê o comando abaixo e verifique se o SSH está rodando:

# ps aux | grep ssh

Se estiver tudo certo você receberá uma saída parecida com essa:

root 836 0.0 0.4 7796 2496 ? Ss 15:13 0:00 /usr/sbin/sshd -D
root 1021 0.0 0.7 11192 3664 ? Ss 15:14 0:00 sshd: user [priv]
ricardo 1069 0.0 0.3 11192 1964 ? S 15:15 0:03 sshd: user@pts/0

Então é só acessar seu sistema enjaulado de qualquer lugar. Espero que essa dica possa ajudar algumas pessoas. Fique à vontade para postar dúvidas nos comentários e nos ajude compartilhando esse conteúdo.

Ricardo Galossi
Siga me
Últimos posts por Ricardo Galossi (exibir todos)

Ricardo Galossi

É um apaixonado por segurança da informação, atua profissionalmente há mais de 7 anos na área de tecnologia da informação, onde é focado em análise de vulnerabilidades e testes de invasão. Criou o blog Guia do TI para compartilhar conhecimento, ajudar os mais novos, incentivar debates e manter a comunidade atualizada com as principais notícias da área de TI.

Um comentário sobre “Implantando um Ambiente Chroot

Deixe seu comentário