Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa
 

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:

 

{code}
sudo apt-get update

sudo apt-get dist-upgrade

{/code}

 

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

 

{code}

sudo apt-get install vim

{/code}

 

Instalando o servidor OpenSSH:

 

{code}
sudo apt-get install openssh-server

{/code}

 

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:

 

{code}

sudo groupadd sftpusers

{/code}

 

Você pode ver o grupo criado executando:

 

{code}

cat /etc/group

{/code}

 

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:

 

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

sudo passwd usuario

{/code}

 

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:

 

{code}

vim /etc/ssh/sshd_config

{/code}

 

A linha:

 

{code}

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

{/code}

 

Deve ser alterada para:

 

{code}

Subsystem sftp internal-sftp

{/code}

 

Ao final do mesmo arquivo adicione as seguintes linhas:

 

{code}

Match group sftpusers

ChrootDirectory /ftp

X11Forwarding no

AllowTcpForwarding no

ForceCommand internal-sftp

{/code}

 

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:

 

{code}

sudo mkdir /ftp

{/code}

 

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

 

{code}

sudo mkdir /ftp/read

sudo mkdir /ftp/readwrite

{/code}

 

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

 

{code}

sudo chown root:sftpusers /ftp/read

sudo chown root:sftpusers /ftp/readwrite

sudo chmod 755 /ftp/read

sudo chmod 775 /ftp/readwrite

{/code}

 

Reinicie o serviço do SSH:

 

{code}

sudo service ssh restart

{/code}

 

Para realizar um teste você pode usar:

 

{code}

sftp usuario@localhost

{/code}