Configuração de Servidor SFTP

Este documento tem o objetivo de explicar como instalar e configurar passo a passo um servidor Linux SFTP e as permissões de pastas para acesso de um mesmo usuário em várias delas. Esse é meu primeiro artigo no Viva o Linux e espero que eu possa ter ajudado.

[ Hits: 38.030 ]

Por: Wagner em 13/06/2017


Introdução



Este documento é dirigido ao pessoal da área de TI, especialmente aos administradores de redes, sistemas e/ou segurança, que são os responsáveis pelo planejamento, implementação ou operação de redes e sistemas. Também podem se beneficiar da sua leitura gerentes com conhecimento técnico de redes ou até mesmo pessoas leigas.

Este documento também tem o objetivo de explicar como instalar e configurar passo a passo um servidor Linux SFTP e as permissões de pastas para acesso de um mesmo usuário em várias delas. Esse é meu primeiro artigo no Viva o Linux e espero que eu possa ter ajudado.

Primeiramente é preciso deixar o SO atualizado, para efetuar a atualização do SO digite:

# yum update

Passo 1 - criar um grupo de usuários para o SFTP.

Primeiro passo é criar um grupo para o SFTP, vamos criar um grupo chamado "sftp" e adicionar para um usuário que será criado com o nome "teste1". Digite:

# groupadd sftp

Passo 2 - criar usuário e adicioná-lo a um grupo.

Criar o usuário para acesso o SFTP. Neste caso será criado o usuário "teste1", definir uma senha e adicioná-lo ao grupo "sftp".

Digite:

# adduser teste1

Obs.: lembre-se que o Linux é case-sensitive, se caso criar um usuário com a letra maiúscula ele sempre deverá ser digitado dessa forma.

Para definir uma senha a um usuário digite "passwd" e o nome do usuário:

# passwd teste1

Ele pedirá para entrar com uma senha nova, depois deve-se repeti-la.

Agora vamos vincular o usuário criado ao grupo do SFTP que foi criado no primeiro passo. Digite:

# usermod -G sftp teste1

Para verificar se o usuário está vinculado ao grupo corretamente digite:

# id "nome do usuário"

Passo 3 - estrutura e permissões de pastas.

Após criar o usuário e colocá-lo no grupo, é necessário configurar as permissões das pastas para acesso no SFTP, neste caso será criado dentro da pasta "/home/nome_do_usuario", porém na pasta raiz o usuário não terá permissão para colocar nenhum arquivo, então criaremos uma pasta com o nome do próprio usuário para que possa ser liberado o a acesso full da mesma. A estrutura da pasta neste caso ficará da seguinte forma:

/home/teste1/teste1

Digite:

# mkdir /home/teste1/teste1

Quando um usuário é criado, automaticamente ele cria a pasta em "/home/nome_do_usuario" sem permissões, somente para o proprietário da pasta que no caso é o próprio usuário.

Porém é necessário dar permissão ao usuário root na pasta raiz, caso não fizer o usuário não conseguirá logar, para isso digite:

# chmod 755 /home/teste1

Dessa forma agora, será possível o usuário conseguir logar no SFTP porém ainda não conseguira enviar arquivos ou baixar se necessário.

Após configurar a estrutura da pasta do usuário, deve-se criar uma pasta com o mesmo nome da pasta do usuário e nela das as permissões para e ele possa ler, escrever e executar. Para criar a pasta digite:

# mkdir /home/teste1/teste1

Para alterar o proprietário da pasta de acesso do SFTP, digite o comando:

# chown teste1:sftp /home/teste1/teste1/

Foi feita a alteração do proprietário da pasta, agora o último passo é dar a permissão de leitura, escrita e execução para o grupo sftp e o usuário que irá acessar a pasta.

Para o usuário ter permissão de leitura, escrita e gravação via sftp, digite:

# chmod 770 /home/teste1/teste1

Passo 4 - acesso a múltiplas pastas de usuários.

Para permitir que um usuário acesse mais de uma pasta de um usuário específico será necessário montar um "compartilhamento" de pastas dentro da pasta do usuário do SFTP que precisará acessar.

Ex.: o usuário "teste1" precisa ter acesso a pasta do usuário "teste2", mas o usuário "teste2" não poderá fazer o acesso inverso.

Por padrão existe somente uma pasta na raiz do usuário "teste1". Essa estrutura será de todos os novos usuários do SFTP.

/home/teste1 (pasta raiz sem permissão)/teste1 (pasta de acesso full)

A pasta que será compartilhada para o usuário "teste1" é a seguinte:

/home/teste2/teste2

Criar a pasta que deverá ser compartilhada, no caso é a pasta do usuário "teste2" para o usuário "teste1", digite:

# mkdir /home/teste1/teste2

OBS: o proprietário da pasta é o root porém não devemos mudar isso agora porque quando montarmos o compartilhamento ai sim deverá ser feito as alterações.

Para montar a pasta deve ser digitado primeiro a origem e depois o destino que queremos que acesse a pasta, digite:

# mount --bind /home/teste2/teste2/ /home/teste1/teste2/

O comando acima compartilha o conteúdo da pasta "/home/teste2/teste2" para "/home/teste1/teste2/".

Passo 5 - configuração SFTP.

Após a criação do grupo e do usuário, precisamos configurar o SFTP. Será necessário fazer alteração apenas em um arquivo, o sshd_config.

Digite:

# vi /etc/ssh/sshd_config

Comente a linha:

#Subsystem       sftp    /usr/libexec/openssh/sftp-server

Após isso precisará adicionar algumas informações para a liberação e configuração do SFTP no final do mesmo arquivo. Adicione o conteúdo abaixo no arquivo:

Subsystem sftp internal-sftp

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

Após adicionar, salvar e sair.

Reinicie o serviço do ssh:

# systemctl restart sshd

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Servidor de Repositório Yum - CentOS / Oracle Linux

Expandir Disco no Linux - VMware

Instalação Tesseract 4.1 e Apache Airflow no CENTOS 7

Integrando Servidores Linux no Active Directory com Samba

Integração de servidores Linux com Active Directory

Leitura recomendada

Você sabe o que é INODE?

Dm-crypt - Criptografia no filesystem - Kernel 2.6

Aplicações em 32 bits para seu Ubuntu 64 bits (Feisty Fawn)

Linux - Manipulando partições de disco

Sistemas de arquivos no Unix - Arquivos, Diretórios e Partições

  
Comentários
[1] Comentário enviado por rodrigo_leonel em 28/06/2017 - 14:21h

Não tive como testar no Debian ou Ubuntu, mas seria interessante realizar esse teste e adaptar o tutorial para que exibisse as duas opções de configuração, tanto baseados em RH quanto Debian.

[2] Comentário enviado por wagner31 em 19/07/2017 - 12:43h


[1] Comentário enviado por rodrigo_leonel em 28/06/2017 - 14:21h

Não tive como testar no Debian ou Ubuntu, mas seria interessante realizar esse teste e adaptar o tutorial para que exibisse as duas opções de configuração, tanto baseados em RH quanto Debian.

vou ver se faço Rodrigo, é que aqui na empresa trabalho praticamente com RH só.

[3] Comentário enviado por rodrigo_leonel em 26/07/2017 - 13:47h


[2] Comentário enviado por wagner31 em 19/07/2017 - 12:43h


[1] Comentário enviado por rodrigo_leonel em 28/06/2017 - 14:21h

Não tive como testar no Debian ou Ubuntu, mas seria interessante realizar esse teste e adaptar o tutorial para que exibisse as duas opções de configuração, tanto baseados em RH quanto Debian.

vou ver se faço Rodrigo, é que aqui na empresa trabalho praticamente com RH só.



Valeu meu camarada!

[4] Comentário enviado por jsfarias em 18/08/2017 - 14:57h

Muito bom artigo.

https://www.vivaolinux.com.br/topico/vsFTP/Configurando-um-servidor-SFTP-com-Chroot-Centos-67


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts