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.
- Metasploit Framework de cabo a rabo – Parte 6 - 4 de junho de 2018
- Metasploit Framework de cabo a rabo – Parte 5 - 28 de maio de 2018
- CEH – Scanning Networks – Parte 2 - 24 de maio de 2018
Ricardo Galossi,
Essa forma de enjaular a aplicação que criar o produto/conceito de container “DOCKER” ???
https://www.docker.com/what-docker