Como restringir os usuários do SFTP a diretórios domésticos usando a prisão de chroot

Como restringir os usuários do SFTP a diretórios domésticos usando a prisão de chroot

Neste tutorial, estaremos discutindo como restringir Sftp Usuários para seus diretórios domésticos ou diretórios específicos. Isso significa que o usuário só pode acessar seu respectivo diretório doméstico, não todo o sistema de arquivos.

Restringir os diretórios domésticos dos usuários é vital, especialmente em um ambiente de servidor compartilhado, para que um usuário não autorizado não se espalhe pelos arquivos e pastas do outro usuário.

Importante: Por favor, observe também que o objetivo deste artigo é fornecer apenas acesso ao SFTP, não os logins SSH, seguindo este artigo, terá as permissões para transferir arquivos, mas não permissão para fazer uma sessão SSH remota.

Leia sugerida: Restrinja o acesso ao usuário do SSH a um determinado diretório usando a prisão de chrootas

A maneira mais simples de fazer isso é criar um ambiente de prisão de chroot para acesso SFTP. Este método é o mesmo para todos os sistemas operacionais UNIX/Linux. Usando o ambiente de chrootas, podemos restringir os usuários ao diretório doméstico ou a um diretório específico.

Restringir os usuários a diretórios domésticos

Nesta seção, criaremos um novo grupo chamado sftpgroup e atribua a propriedade e as permissões corretas às contas de usuário. Existem duas opções para restringir os usuários a diretórios domésticos ou específicos, veremos os dois vão neste artigo.

Criar ou modificar usuários e grupos

Vamos restringir o usuário existente, por exemplo Tecmint, para seu diretório doméstico chamado /Home/Tecmint. Para isso, você precisa criar um novo sftpgroup grupo usando grupo comando como mostrado:

# groupadd sftpgroup 

Em seguida, atribua o usuário 'Tecmint' para sftpgroup grupo.

# userMod -g sftpgroup tecmint 

Você também pode criar um novo usuário usando o comando useradd, por exemplo Senthil e atribuir o usuário a sftpusers grupo.

# adduser senthil -g sftpgroup -s /sbin /nologin # passwd tecmint 

Modificar o arquivo de configuração SSH

Abra e adicione as seguintes linhas a /etc/ssh/sshd_config arquivo de configuração.

Subsistema SFTP Grupo de correspondência interna-sftp Sftpgroup ChrootDirectory /home forceCommand 

Salve e saia do arquivo, reinicie o serviço SSHD para levar novas mudanças em vigor.

# SystemCTL Reiniciar SSHD ou # Service SSHD RESTART 

Se você Chroot vários usuários para o mesmo diretório, altere as permissões do diretório inicial de cada usuário para impedir que todos os usuários naveguem nos diretórios domésticos entre si usuários.

# chmod 700 /home /tecmint 

Verifique o login dos usuários SSH e SFTP

Agora, é hora de verificar o login de um sistema local. Tente ssh seu sistema remoto do seu sistema local.

# ssh [email protegido] 

Aqui,

  1. Tecmint - nome de usuário do sistema remoto.
  2. 192.168.1.150 - Endereço IP do sistema remoto.
Saída de amostra:
[Email Protected] Senha: não foi possível Chdir para diretório /casa /Tecmint: nenhum arquivo ou diretório esse serviço permite apenas conexões SFTP. Conexão com 192.168.1.150 fechado. 

Em seguida, acesse o sistema remoto usando SFTP.

# sftp [email protegido] 
Saída de amostra:
[Email Protected] senha: conectado a 192.168.1.150. sftp> 

Vamos verificar o diretório de trabalho atual:

sftp & gt pwd Diretório de trabalho remoto: / sftp & gt ls Tecmint 

Aqui, Tecmint é o diretório doméstico. CD para o Tecmint diretório e crie os arquivos ou pastas de sua escolha.

SFTP & GT CD Tecmint Diretório de trabalho remoto: / teste SFTP & GT MKDIR Tecmint 

Restringir os usuários a um diretório específico

Em nosso exemplo anterior, restringimos os usuários existentes ao diretório inicial. Agora, veremos como restringir um novo usuário a um diretório personalizado.

Crie grupo e novos usuários

Crie um novo grupo sftpgroup.

# groupadd sftpgroup 

Em seguida, crie um diretório para o grupo SFTP e atribua permissões para o usuário raiz.

# mkdir -p/sftpusers/chroot # chown root: root/sftpusers/chroot/ 

Em seguida, crie novos diretórios para cada usuário, para os quais eles terão acesso total. Por exemplo, vamos criar Tecmint Usuário e seu novo diretório doméstico com permissão de grupo correta usando a série de comandos a seguir.

# adduser Tecmint -g sftpGroup -s/sbin/nologin # passwd Tecmint # mkdir/sftpusers/chroot/tecmint # chown tecmint: sftpgroup/sftpusers/chroot/tecmint/ # chmod 700/sftSers 

Configure o acesso SSH para SFTP

Modifique ou adicione as seguintes linhas no final do arquivo:

#Subsystem sftp/usr/libexec/openSsh/sftp-server subsistema sftp interno-sftp Grupo sftpgroup ChrootDirectory/sftpusers/chroot/forceCommand interno-sftp x11 parawarding sem permitir que não 

Salvar e sair do arquivo. Reinicie o serviço SSHD para entrar em vigor as mudanças salvas.

# SystemCTL Reiniciar SSHD ou # Service SSHD RESTART 

É isso, você pode verificar logon no seu servidor SSH e SFTP remoto usando a etapa fornecida acima no Login Verificado SSH e SFTP.

Lembre -se de que esse método desabilitará o acesso da concha, eu.e você não pode acessar a sessão de shell do sistema remoto usando SSH. Você só pode acessar os sistemas remotos via SFTP e transferir arquivos para e para os sistemas locais e remotos.

Conclusão

Agora você sabe como restringir os usuários diretórios domésticos usando um ambiente de chroot no Linux. Se você achar isso útil, compartilhe este artigo em suas redes sociais e informe -nos na seção de comentários abaixo se houver outros métodos para restringir os usuários diretórios domésticos.