Pessoal, esta dica é para mostrar como é fácil trabalhar com
chroot, um sistema enjaulado é muito útil, em determinados casos.
Instalando e configurando
Vamos entender o que é um ambiente chroot e ver como ele funciona na prática.
Bem, o chroot nada mais é do que um ambiente isolado (enjaulado) dentro da sua máquina real, é um sistema dentro de outro que compartilham processos. É um ambiente recomendável para sistemas de acesso público.
A norma ABNT NBR ISO/IEC 27002:2005 diz, no item 11.6.2, que sistemas sensíveis devem ter um ambiente computacional dedicado (isolado), isto 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.
Para configurar um sistema chroot em nosso servidor, vamos precisar instalar um pacote chamado
debootstrap. Em distribuições baseadas no
Debian, utilize:
# aptitude install debootstrap
Depois que o pacote 'debootstrap' foi instalado, é preciso criar o diretório onde nosso sistema irá ficar.
# mkdir /var/khal-chroot
Obs.: Aqui irei chamar meu sistema de 'khal', mas pode colocar o nome que preferir.
Agora, nós iremos instalar o sistema em si, aqui optei por instalar o
Debian Squeeze, mas vocês podem instalar qualquer outra,
Debian Lenny, por exemplo.
O comando
debootstrap irá baixar todos os pacotes necessários do sistema operacional direto dos repositórios do Debian para o diretório
/var/khal-chroot.
Isto levará alguns minutos, tempo o suficiente para beber uma água, ir ao banheiro, enfim....
# debootstrap squeeze /var/khal-chroot
Pessoal, depois de instalar o nosso sistema, precisamos montar o diretório
proc do nosso sistema enjaulado, para fazer vínculo com os processos do nosso sistema real:
# mount --bind /proc/ /var/khal-chroot/proc
Agora execute o comando abaixo, para acessar o sistema instalado:
# chroot /var/khal-chroot
Aparentemente, nada irá acontecer, mas após este comando, já estamos dentro do chroot, sendo que o nome do host não mudou, e isso pode nos confundir. Mais adiante, iremos mudar o nome da variável do prompt para diferenciá-lo do sistema original.
# pico /root/.bashrc
Na quinta linha deste arquivo, iremos alterar seu conteúdo para:
PS1=' khal-chroot:\w\$ '
Feito isso, salve e saia do arquivo. Depois execute
exit, para sair do chroot. Após, volte para o chroot com o comando:
chroot /var/khal-chroot e prestem atenção no prompt, veja que ele irá mudar toda vez que você entrar no chroot.
Depois disso, atualize a base de dados do sistema com o comando:
# aptitude update
Depois altere a senha do root:
# passwd root
Agora, 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
Para montar, e depois dê:
# mount
Para verificar se ponto foi montado. Deverá aparecer o seguinte conteúdo:
devpts on /dev/pts type devpts (rw)
Se você possui 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:
# /etc/init.d/ssh stop
Depois entre no chroot novamente.
Vamos instalar o pacote SSH em nosso chroot, para que ele possa ser acessado remotamente:
# aptitude 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, é só acessar seu sistema enjaulado de qualquer lugar.
Bem pessoal, espero que este tutorial ajude a todos. :)
Dica previamente publicada em: