ID-DEB-001 - Configuração Do Servidor SFTP Para Consignado
ID: KB-ID-DEB-001
Responsável: Thiago Amaral, TI
Status: Publicado
Última Atualização: 16/09/2025
Propósito
Padronizar e guiar o time de Suporte TI Nível 1 na criação, configuração e gerenciamento de um servidor SFTP, incluindo a criação de usuários com acesso restrito a diretórios específicos via autenticação por chave SSH.
Aplica-se a
Time de Suporte TI Nível 1 da Fictor.
Servidores Linux designados para operar como SFTP.
Pré-requisitos
Acesso com permissões
sudoao servidor Linux.Conhecimento básico de comandos de terminal e do editor de texto
vim.Um cliente SFTP (como WinSCP) instalado na máquina local para testes de conexão.
Instruções
Este procedimento é dividido em etapas: criação de grupos e usuários, configuração de diretórios, autenticação por chave e configuração do cliente.
1. Criação de Grupos e Usuários Base
Primeiro, crie um grupo geral para usuários de SFTP e um usuário de exemplo.
Crie um grupo principal para todos os usuários SFTP:
sudo groupadd sftp-groupCrie um novo usuário (ex:
sftpuser):sudo useradd sftpuserAdicione o usuário ao grupo recém-criado:
sudo usermod -aG sftp-group sftpuser
Para verificar, use o comando
groups sftpuser.
2. Configuração da Estrutura de Diretórios e Permissões
Crie uma estrutura de pastas para os uploads e configure grupos específicos para cada diretório, garantindo que os usuários só acessem as áreas permitidas.
Defina as permissões do diretório de upload principal. O proprietário deve ser
roote o gruposftp-group:sudo chown root:sftp-group /srv/sftp/uploads sudo chmod 750 /srv/sftp/uploadsCrie os grupos departamentais que terão acesso a subpastas específicas:
sudo groupadd operations sudo groupadd products sudo groupadd has-health sudo groupadd asset-sinqiaAjuste a propriedade e as permissões de cada subpasta para o respectivo grupo. O modo `770` permite que o dono (`root`) e os membros do grupo leiam, escrevam e executem, mas ninguém mais.
# Permissões para Operações sudo chown root:operations "/srv/sftp/uploads/Operações" sudo chmod 770 "/srv/sftp/uploads/Operações" # Permissões para Produtos sudo chown root:products /srv/sftp/uploads/Produtos sudo chmod 770 /srv/sftp/uploads/Produtos # Permissões para Tem Saúde sudo chown root:has-health "/srv/sftp/uploads/Tem Saúde" sudo chmod 770 "/srv/sftp/uploads/Tem Saúde" # Permissões para Asset E SINQIA sudo chown root:asset-sinqia "/srv/sftp/uploads/Asset E SINQIA" sudo chmod 770 "/srv/sftp/uploads/Asset E SINQIA"Adicione um usuário aos grupos específicos para conceder acesso às pastas:
# Exemplo: Dar à usuária 'silvania' acesso a três diretórios sudo usermod -aG operations,products,has-health silvania
3. Configuração da Autenticação por Chave SSH
Para aumentar a segurança, o login será feito com um par de chaves SSH em vez de senha.
Na sua máquina local (não no servidor), gere um par de chaves para o usuário:
ssh-keygen -t ed25519 -f sftpuser_ssh_keyIsso criará dois arquivos: `sftpuser_ssh_key` (chave privada) e `sftpuser_ssh_key.pub` (chave pública).
No servidor, crie a estrutura de diretórios `home` e `.ssh` para o usuário:
sudo mkdir -p /home/sftpuser/.ssh sudo usermod -d /home/sftpuser sftpuserAjuste a propriedade e as permissões dos diretórios criados:
sudo chown sftpuser:sftpuser /home/sftpuser sudo chmod 700 /home/sftpuser sudo chown sftpuser:sftpuser /home/sftpuser/.ssh sudo chmod 700 /home/sftpuser/.sshCrie o arquivo
authorized_keyse cole o conteúdo da chave pública (sftpuser_ssh_key.pub) dentro dele:sudo touch /home/sftpuser/.ssh/authorized_keys sudo vim /home/sftpuser/.ssh/authorized_keysAjuste as permissões do arquivo
authorized_keyssudo chmod 600 /home/sftpuser/.ssh/authorized_keys sudo chown sftpuser:sftpuser /home/sftpuser/.ssh/authorized_keys
4. Restringir o Acesso do Usuário ao Diretório (Chroot)
Edite a configuração do serviço SSH para "prender" (chroot) o usuário em seu diretório designado ao fazer login.
Abra o arquivo de configuração do SSH:
sudo vim /etc/ssh/sshd_configAdicione o seguinte bloco no final do arquivo:
Match User sftpuser ChrootDirectory /srv/sftp/uploads ForceCommand internal-sftp AllowTcpForwarding noReinicie o serviço SSH para aplicar as alterações:sudo systemctl restart sshd
5. Conectar via Cliente SFTP (WinSCP)
Instrua o usuário final a configurar seu cliente SFTP.
Envie o arquivo da chave privada (
sftpuser_ssh_key) para o usuário de forma segura.No WinSCP, o usuário deve clicar em Nova Sessão.
Preencha os campos da seguinte forma: * Host:
fictor.suporte.com.br* Porta:22* Usuário:sftpuser(ou o nome de usuário criado)Para adicionar a chave privada, clique em Avançado.
Navegue até SSH > Autenticação.
No campo Arquivo de Chave Privada, selecione o arquivo
sftpuser_ssh_keyque você enviou.Clique em Ok e, em seguida, em Login.
Resultado Esperado
Ao final do processo, um usuário SFTP consegue se conectar ao servidor usando uma chave SSH e terá acesso de leitura e escrita apenas nos diretórios para os quais seu usuário foi explicitamente autorizado (Operações, Produtos, etc.), sem conseguir navegar para outras partes do sistema de arquivos do servidor.
Solução de Problemas
Problema/Erro: Falha na autenticação ou erro "Permission denied".
Solução: Verifique triplamente as permissões nos diretórios e arquivos do usuário no servidor:
/home/sftpuser(deve ser700),/home/sftpuser/.ssh(deve ser700), e/home/sftpuser/.ssh/authorized_keys(deve ser600). Certifique-se de que todos pertencem ao usuário (sftpuser:sftpuser). Verifique os logs do sistema comsudo journalctl -u sshdpara mensagens de erro detalhadas.
Problema/Erro: O usuário foi criado com informações incorretas.
Solução: Para remover completamente um usuário e seu diretório home, use
sudo deluser --remove-home sftpuser. Isso permite recomeçar o processo de criação do zero.
Problema/Erro: Usuário consegue remover outros usuários de grupos.
Solução: Para remover um usuário de um grupo de forma segura, utilize o comando
sudo gpasswd -d nome_do_usuario nome_do_grupo.
Artigos Relacionados
Não se aplica.
Anexos
Não se aplica.
Referências
Não se aplica.
Histórico de Revisões
22/11/2024
v1.0
Thiago Amaral
Confecção do documento.
25/11/2024
v2.0
Thiago Amaral
Adicionado detalhes para autenticação do usuário com chaves.
05/12/2024
v2.1
Thiago Amaral
Adicionado instruções para o WinSCP e seção de agendamento.
05/12/2024
v2.1
Gabriel Briz
Colaboração e revisão técnica.
16/09/2025
v3.0
Thiago Amaral
Revisão para novo modelo.
Last updated