Bloqueio de usuários com o chroot

Ao disponibilizarmos o acesso aos clientes em nossos servidores Linux, o ideal é podermos bloquear o que eles conseguem acessar e alterar, disponibilizando o acesso apenas aos diretórios relativos as suas pastas no servidor web. Para essa configuração de segurança, podemos enjaular os usuários com o chroot.

[ Hits: 6.114 ]

Por: Diego Mendes Rodrigues em 09/09/2020 | Blog: https://www.linkedin.com/in/diegomendesrodrigues/


Bloqueio de usuários com o chroot



Ao disponibilizarmos o acesso aos clientes em nossos servidores Linux, utilizando o SFTP (SSH File Transfer Protocol), o ideal é podermos bloquear o que cada usuário consegue acessar e alterar remotamente, liberando o acesso apenas aos diretórios relativos ao servidor web, como por exemplo, o Apache.

Para que esses usuários consigam enxergar apenas seus diretórios de trabalhamos, iremos enjaulá-los utilizando o chroot, desta forma, quando eles realizarem a conexão pelo SFTP, não poderão sair de seus diretórios.

Neste material utilizamos um servidor com o Debian GNU/Linux 10 (Buster).

Iniciaremos alterando nosso usuário atual para o root, com o comando:

su -l

Usuários para o SFTP

Iniciaremos criando um grupo de usuários, onde iremos colocar todos os clientes que terão acesso ao SFTP, desta forma, as configurações podem ser trabalhadas futuramente.

# groupadd usuarios_sftp

Irei criar um usuário com o username cliente, colocando ele no grupo criado anteriormente. Depois, irei atribuir a senha 12345678 ao usuário criado.

# useradd -m -G usuarios_sftp cliente
# echo "cliente:12345678" | chpasswd

Devemos alterar o grupo usuarios_sftp para que ele seja o principal do nosso novo usuário.

# usermod -G usuarios_sftp cliente

Devemos ajustar as permissões do diretório raiz deste usuário.

# chown root /home/cliente

Agora, criaremos o diretório onde este usuário pode salvar seu conteúdo web, ou seja, o conteúdo de seu website.

# mkdir /home/cliente/web
# chown cliente /home/cliente/web

Para finalizar a configuração, devemos alterar as configurações do servidor SSH para criarmos as regras de enjaulamento com o [B]chroot[/B].

# nano /etc/ssh/sshd_config

Iremos ao final do arquivo para localizar essa linha:


Devemos alterar da seguinte forma:

Subsystem       sftp    internal-sftp
Match Group usuarios_sftp
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp

Devemos reiniciar o serviço do SSH.

# systemctl restart sshd

Agora, ao utilizar o software FileZilla e realizar a conexão nesse servidor, com o protocolo SFTP na porta 22, com o usuário cliente criado anteriormente, ele possui acesso apenas ao seu diretório home.
Observe na imagem anterior, que o usuário consegue acessar apenas sua pasta pessoal.

Conclusões

Espero que esse material seja útil na segurança e no controle de acesso aos usuários em seus servidores. Você utiliza o enjaulamento, ou alguma outra configuração para limitar o acesso dos seus clientes em seus servidores?

   

Páginas do artigo
   1. Bloqueio de usuários com o chroot
Outros artigos deste autor

GoAccess - Analisador de log em tempo real do Apache

Varredura de PING Utilizando o Python

Instalar o GeoServer no Ubuntu

Gerar Códigos QRCode com Python

Ubuntu ou Debian com KDE Plasma

Leitura recomendada

Servidor de autenticação 802.1x com Freeradius

Backup gerenciável usando tar

Servidor de log no Debian com Syslog-ng

Instalando e integrando o amavis e o viruscan no sendmail

Criptografia de disco

  
Comentários
[1] Comentário enviado por maurixnovatrento em 09/09/2020 - 20:39h


Bom artigo.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[2] Comentário enviado por roomik em 13/09/2020 - 20:37h

Muito bom parceiro, parabéns.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts