Como fazer: chroot SSH (SSH mais seguro)

hra

Este tutorial explica como configurar um ambiente para o servidor sshd de forma que o usuário só tenha acesso ao seu diretório home e tenha o mínimo de comandos disponíveis, só o necessário para executar suas tarefas, assim incrementando a segurança.

[ Hits: 106.539 ]

Por: Hamilton R. Amorim em 15/10/2003 | Blog: http://www.algorista.tk


Configurando o Linux



Daqui pra frente as configurações devem ser efetuadas no "Linux mesmo", estas alterações de arquivos devem ser feitas no sistema de arquivos real.

A configuração do Linux fica por conta de alterar a shell do usuário "teste", de forma a acessar uma shell alternativa que colocará sua seção em uma "chain root", essa cela que impedirá o usuário de enxergar o sistema de arquivos real, vendo apenas nosso "pseudo sistema de arquivos".

Primeira coisa a fazer: crie um shell script em /bin com as seguintes linhas:

#!/bin/bash
# arquivo: /bin/chroot-shell

/usr/bin/sudo /usr/sbin/chroot /home/$USER /bin/su - $USER

Acerte a permissão deste arquivo (eu sempre esqueço isso, hehehe):

# chmod ugo+x /bin/chroot-shell

Altere o shell do usuário em /etc/passwd para apontar para essa nova shell:

teste:x:515:515::/home/teste:/bin/chroot-shell

É necessário acertar as permissões de sudo para o usuário "teste". Para isso, edite o arquivo /etc/sudoers adicionando a linha abaixo:

teste   ALL=    NOPASSWD: /usr/sbin/chroot /home/teste /bin/su - teste*

Tem que fazer isso com todos os seus usuários, uma linha para cada, não é nenhum martírio, só uma linha para cada usuário.

Não precisa nem dizer que pra alterar esses arquivos você precisa estar logado como root né?

Está pronto, agora é só logar como teste e navegar pela máquina, logo perceberá que está "preso" em nossa pseudo-árvore, sem nenhuma chance de acessar o sistema de arquivos real.

Suas oportunidades de executar comandos estão limitados aos programas em /bin e em /sbin, com isso não dá pra fazer muita coisa na máquina, sem gcc, sem make e sem chmod você fica com as mãos atadas.

É preciso validar isso, não fiz muitas tentativas de furar a segurança, mas com certeza alguém cheio de disposição o fará por nós e dirá se essa solução é segura mesmo, hehehe.

Página anterior     Próxima página

Páginas do artigo
   1. Considerações iniciais
   2. Introdução
   3. Requisitos
   4. Criando a raíz
   5. Permissões dos arquivos
   6. Configurando o Linux
   7. Considerações finais
Outros artigos deste autor

cal2svg - brincando com shell script e arquivos vetoriais SVG

Porque tanta gente não usa o Linux? Será que o Linux é ruim mesmo?

Copiando programas dos LiveCDs (Kurumin) para seu Debian sem usar a internet

Como fazer: Chroot Dosemu (Clipper no Linux)

Onde estão os programadores da era DOS?

Leitura recomendada

Remover vírus do Windows usando pendrive com Linux

Nmap do início ao fim (parte 1)

Monitorando máquinas Windows com o Nagios

PaX: Solução eficiente para segurança em Linux

Hardering com Red Hat 5

  
Comentários
[1] Comentário enviado por fabio em 15/10/2003 - 09:46h

Excelente artigo! É a primeira vez que vejo algo falando sobre criação de "celas" ssh em Português.

[2] Comentário enviado por y2h4ck em 31/03/2004 - 13:51h

Bom fiz o teste aqui ... estou tendo uma pequena dificuldade nao sei se com permissoes ...
porem o quando me logo o usuario esta caindo fora do home dele ... okei

falow

[3] Comentário enviado por y2h4ck em 31/03/2004 - 13:59h

(root@unsekurity)(/)$ ssh -l guest localhost
guest@localhost's password:
Last login: Sat Mar 27 11:35:22 2004 from localhost
Have a lot of fun...
/bin/chroot-shell: Exec format error
Connection to localhost closed.

heys meu erro
meu /bin/chroot-shell esta igualzinho ao do seu explo
so tive que modificar o path do /usr/sbin/chroot para /usr/bin/chroot
espero que possa je ajudar :D

[4] Comentário enviado por peter_77_schultz em 20/11/2005 - 12:09h

Beleza Amilton! Pois é, voce já escreveu o artigo a quase dois anos e mesmo depois de tanto tempo e ainda desperta interesse.

No meu caso estou tentando instalar o Chroot SSH na minha máquina. Segui todos os passos que voce descreveu, mas no final eu nao consigo me logar na area chroot. Isso acontece tanto com o comando "su" quanto com o comando "ssh".

Eu nao obtenho nenhum erro. Mas toda vez que eu digito a senha a pergunta aparece novamente- "password:"

será que voce pode me dar uma força. Valeu, Peter

[5] Comentário enviado por tatototino em 19/08/2006 - 20:39h

no meu tb igual na do peter pede duas vezes a passwd /etc/passwd

pq pede vcs sabem ?

[6] Comentário enviado por apscherbach em 02/10/2006 - 16:50h

Comigo aqui está dando esse erro:

Usuário não existente. O que pode ser. O usuário está criado... claro, e os arquivos passwd e group copiados e modificados.

Adriano

[7] Comentário enviado por K1LL -9 em 15/11/2007 - 17:34h

Dúvida boba ( não tive tempo pra testar essa solução):

Obteria exito em executar algo ('uploadeado') usando a ld-2.2.5.so ?
Obteria né ?


[8] Comentário enviado por TigonesBuell em 04/09/2008 - 15:26h

Ignorante

[9] Comentário enviado por diesel em 04/11/2012 - 09:47h

Obrigado pela contribuição.
Me ajudou muito.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts