Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Implementando um servidor SFTP no Debian

Imprimir
Avaliação do Usuário: / 7
PiorMelhor 

O obsoleto protocolo FTP (File Transfer Protocol) é muito vulnerável por transmitir as informações de usuário, senha e os arquivos de forma não criptografada permitindo assim que um simples ataque de sniffer seja perigosamente comprometedor do seu servidor.

O ideal é utilizar o SFTP (Secure File Transfer Protocol) já que este executa as transmissões de forma criptografada e segura sobre o protocolo SSH.

Vamos realizar todas as tarefas no modo de linha de comandos (SHELL).

Primeiro, como sempre, garanta que seu sistema esteja atualizado:

 sudo apt-get update
sudo apt-get dist-upgrade

Caso não tenha ainda, vamos instalar um editor de textos para linha de comandos:

sudo apt-get install vim

Instalando o servidor OpenSSH:

 sudo apt-get install openssh-server

Vamos criar um grupo para o acesso ao SFTP, daremos o nome de sftpusers. Esta é a melhor prática no quesito segurança, permitir apenas contas com as devidas permissões acesso ao SFTP:

sudo groupadd sftpusers

Você pode ver o grupo criado executando:

cat /etc/group

Tome nota do número do grupo.

Vamos criar então um usuário que tenha acesso ao SFTP. Você pode usar esse exemplo para criar quantos usuários achar necessário:

 sudo useradd usuario –d / -g [número do grupo sftpusers] –M –N –o –u [número do grupo sftpusers]
sudo passwd usuario

Onde:

-d é o diretório home do usuário

-g é o grupo o qual o usuário fará parte

-M não criar o diretório home para o usuário (/home/usuario)

-N não criar um grupo para esse usuário

-u determina o número do ID do usuário, que deve ser o mesmo do grupo do SFTP

-o permite que o número do ID do usuário possa ser duplicado e não único

Edite o arquivo /etc/ssh/sshd_config:

vim /etc/ssh/sshd_config

A linha:

Subsystem sftp /usr/lib/openssh/sftp-server

Deve ser alterada para:

Subsystem sftp internal-sftp

Ao final do mesmo arquivo adicione as seguintes linhas:

Match group sftpusers
ChrootDirectory /ftp
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Com isso, temos:

Match group sftpusers – para os usuários terem acesso ao SFTP terão que estar no grupo sftpusers.

ChrootDirectory /ftp – os usuários terão acesso apenas ao diretório /ftp .

X11Forwarding no – não redirecionar o X11.

AllowTcpForwarding no – não permitir redirecionamento de TCP.

ForceCommand internal-sftp – o conjunto de comandos a serem utilizados será do SFTP.

Crie então o diretório /ftp:

sudo mkdir /ftp

Dentro do diretório ftp vamos criar mais dois, um somente leitura e um com leitura e gravação liberados:

sudo mkdir /ftp/read
sudo mkdir /ftp/readwrite

Vamos dar as devidas permissões a esses diretórios:

sudo chown root:sftpusers /ftp/read
sudo chown root:sftpusers /ftp/readwrite
sudo chmod 755 /ftp/read
sudo chmod 775 /ftp/readwrite

Reinicie o serviço do SSH:

sudo service ssh restart

Para realizar um teste você pode usar:

sftp usuario@localhost

Adicionar comentário


Código de segurança
Atualizar

You are here: