Como restringir o acesso do usuário do SSH a um determinado diretório usando a prisão chrootada

Como restringir o acesso do usuário do SSH a um determinado diretório usando a prisão chrootada

Existem várias razões para restringir uma sessão de usuário SSH a um diretório específico, especialmente em servidores da web, mas o óbvio é a segurança do sistema. Para bloquear os usuários do SSH em um determinado diretório, podemos usar chroot mecanismo.

Alterar raiz (chroot) em sistemas semelhantes a Unix, como o Linux, é um meio de separar operações específicas do usuário do restante do sistema Linux; Altera o diretório raiz aparente para o processo de usuário atualmente em execução e seu processo filho (pai) com um novo diretório raiz chamado A Cadeia CHROOT.

Neste tutorial, mostraremos como restringir o acesso ao usuário do SSH a um determinado diretório no Linux. Observe que vamos executar todos os comandos como root, use o comando sudo se você estiver conectado ao servidor como um usuário normal.

Índice

1
  • Etapa 1: Crie prisão de chroot ssh
  • Etapa 2: Configurar shell interativo para a prisão de ssh chroot
  • Etapa 3: Crie e configure o usuário SSH
  • Etapa 4: Configure o SSH para usar a prisão de Chroot
  • Etapa 5: Testando SSH com Cade
  • Etapa 6. Crie o diretório inicial do usuário do SSH e adicione comandos Linux
  • Etapa 7. Testando o SFTP com a prisão de chroot

Etapa 1: Crie prisão de chroot ssh

1. Comece criando a prisão de chroot usando o comando mkdir abaixo:

# mkdir -p /home /teste 

2. Em seguida, identifique os arquivos necessários, de acordo com o sshd_config página de homem, o ChrootDirectory Opção Especifica o nome do caminho do diretório para Chroot para após a autenticação. O diretório deve conter os arquivos e diretórios necessários para apoiar a sessão de um usuário.

Para uma sessão interativa, isso requer pelo menos uma concha, geralmente sh, e básico /dev nós como NULL, ZERO, STDIN, STDOUT, STDERR e TTY DEVICES:

# ls -l /dev /null, zero, stdin, stdout, stderr, aleatório, tty 
Listando arquivos necessários

3. Agora, crie o /dev arquivos o seguinte usando o comando mknod. No comando abaixo, o -m A bandeira é usada para especificar os bits de permissões de arquivo, c significa arquivo de caracteres e os dois números são números principais e menores que os arquivos apontam para.

# mkdir -p/home/test/dev/ # cd/home/test/dev/ # mknod -m 666 null c 1 3 # mknod -m 666 tty c 5 0 # mknod -m 666 zero c 1 5 # mknod - M 666 Random C 1 8 
Criar /dev e arquivos necessários

4. Depois, defina a permissão apropriada na prisão de chroot. Observe que a prisão de chroot e seus subdiretos e subfiles devem ser de propriedade do raiz Usuário, e não gravável por qualquer usuário ou grupo normal:

# Raiz CHOW: raiz /home /teste # chmod 0755 /home /teste # ls -ld /home /teste 
Defina permissões no diretório

Etapa 2: Configurar shell interativo para a prisão de ssh chroot

5. Primeiro, crie o BIN diretório e depois copie o /BIN/BASH arquivos no BIN diretório usando o comando cp da seguinte forma:

# mkdir -p/home/test/bin # cp -v/bin/bash/home/test/bin/ 
Copie arquivos para o diretório de bin

6. Agora, identifique a festa necessária para compartilhar Libs, como abaixo, e copie -os para o lib diretório:

# ldd/bin/bash # mkdir -p/home/test/lib64 # cp -v/lib64/libbtinfo.então.5, libdl.então.2, libc.então.6, LD-Linux-X86-64.então.2/home/test/lib64/ 
Copiar arquivos de biblioteca compartilhada

Etapa 3: Crie e configure o usuário SSH

7. Agora, crie o usuário SSH com o comando useradd e defina uma senha segura para o usuário:

# userAdd tecmint # passwd tecmint 

8. Crie o diretório de configurações gerais da prisão de chroot, /home/teste/etc e copie os arquivos de conta atualizados (/etc/passwd e /etc/grupo) neste diretório da seguinte forma:

# mkdir/home/teste/etc # cp -vf/etc/passwd, grupo/home/teste/etc/ 
Copie arquivos de senha Observação: Cada vez que você adiciona mais usuários SSH ao sistema, você precisará copiar os arquivos de conta atualizados para o /home/teste/etc diretório.

Etapa 4: Configure o SSH para usar a prisão de Chroot

9. Agora, abra o sshd_config arquivo.

# vi/etc/ssh/sshd_config 

e adicione/modifique as linhas abaixo no arquivo.

#Define Nome de usuário para aplicar a prisão de chroot a Combine o usuário Tecmint #specifique a prisão de chroot ChrootDirectory /Home /Teste 
Configurar a cadeia SSH Chroot

Salve o arquivo e saia e reinicie os Serviços SSHD:

# SystemCTL Reiniciar SSHD ou # Service SSHD RESTART 

Etapa 5: Testando SSH com Cade

10. Neste ponto, teste se a configuração da prisão de chroot está funcionando como esperado:

# ssh [email protegido] -Bash-4.1 $ ls -bash -4.1 $ data -Bash -4.1 $ uname 
Testando a prisão do usuário ssh ssh

A partir da captura de tela acima, podemos ver que o usuário do SSH está bloqueado na prisão chroot e não pode executar nenhum comando externo (LS, data, uname, etc).

O usuário só pode executar o Bash e seus comandos construídos como (PWD, History, Echo, etc), como visto abaixo:

# ssh [email protegido] -Bash-4.1 $ PWD -Bash -4.1 $ eco "Tecmint -site de linux mais rápido" -Bash -4.1 $ HISTÓRIA 
Comandos internos ssh

Etapa 6. Crie o diretório inicial do usuário do SSH e adicione comandos Linux

11. A partir da etapa anterior, podemos notar que o usuário está bloqueado no diretório raiz, podemos criar um diretório doméstico para o usuário do SSH como assim (faça isso para todos os futuros usuários):

# mkdir -p/home/test/home/tecmint # CHOW 
Crie diretório inicial do usuário do SSH

12. Em seguida, instale alguns comandos de usuário, como LS, data e mkdir no BIN diretório:

# cp -v/bin/ls/home/test/bin/ # cp -v/bin/date/home/test/bin/ # cp -v/bin/mkdir/home/test/bin/ 
Adicionar comandos ao usuário SSH

13. Em seguida, verifique as bibliotecas compartilhadas para obter os comandos acima e movê -los para o diretório de bibliotecas da prisão da CHROOUT:

# ldd /bin /ls # cp -v /lib64 /libselinux.então.1, libcap.então.2, libacl.então.1, libc.então.6, libpcre.então.1, libdl.então.2, LD-Linux-X86-64.então.2, libattr.então.1, libpthread.então.0/home/test/lib64/ 
Copiar bibliotecas compartilhadas

Etapa 7. Testando o SFTP com a prisão de chroot

14. Fazer um teste final usando SFTP; Verifique se os comandos que você acabou de instalar estão funcionando.

Adicione a linha abaixo no /etc/ssh/sshd_config arquivo:

#Nable SFTP para acarretar a prisão force-command interna-sftp 

Salve o arquivo e saia. Em seguida, reinicie os Serviços SSHD:

# SystemCTL Reiniciar SSHD ou # Service SSHD RESTART 

15. Agora, teste usando o SSH e você receberá o seguinte erro:

# ssh [email protegido] 
Teste a prisão SSH Chroot

Tente usar o SFTP da seguinte maneira:

# sftp [email protegido] 
Testando o usuário SFTP SSH

Você pode gostar também:

  • Como restringir os usuários do SFTP a diretórios domésticos usando a prisão de chroot
  • Uso básico de comando ssh e configuração no Linux
  • 5 práticas recomendadas para impedir ataques de login de força bruta ssh no Linux
  • 5 melhores práticas de segurança do servidor OpenSsh

É isso por agora! Neste artigo, mostramos como restringir um usuário do SSH em um determinado diretório (prisão de chroot (prisão) no Linux. Use a seção de comentários abaixo para nos oferecer seus pensamentos sobre este guia.