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

- 3288
- 204
- Loren Botsford
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

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

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

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/

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/

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/

/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

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

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

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

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/

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/

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]

Tente usar o SFTP da seguinte maneira:
# sftp [email protegido]

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.
- « 4 comandos úteis para limpar a tela do terminal Linux
- 6 Métricas principais de desempenho para monitorar em servidores Linux - Parte 1 »