A instalação de um servidor de FTP (vsftpd) no Ubuntu 18.04 / 18.10 / 19.04 / 19.10

posted in: Articles | 0

Antes de começar…

É surpreendente como muitos desenvolvedores web ainda não estão conscientes de SFTP e as vantagens sobre FTP/FTPS. SFTP vem com o servidor Linux pré-instalado e funciona exatamente como FTP normal, mas é mais seguro e menos problemas para configurar. Se seu cliente FTP suporta SFTP, você deve usá-lo!

  • Como configurar o SFTP para um servidor web de raiz do documento

Instalar o vsftpd

Vamos começar atualizando a lista de pacotes e instalar o vsftpd no Ubuntu 18.04 / 18.10 / 19.04 / 19.10.,

Abaixo temos dois comandos separados por &&. O primeiro comando irá atualizar as listas de pacotes para garantir que você obtenha a última versão e dependências para vsftpd. O segundo comando irá então baixar e instalar vsftpd. Press yandENTER when asked to continue.

sudo apt update && sudo apt install vsftpd

uma vez instalado, verifique o estado do vsftpd

sudo service vsftpd status

acima podemos ver que o nosso servidor de FTP está agora em funcionamento.,

Configure Firewall

se ainda não o tiver feito, recomenda – se que active o ufw firewall Para Ubuntu 18.04 / 18.10 / 19.04 / 19.10. Antes de activar o ufw firewall, certifique-se que adiciona uma regra para o SSH, caso contrário poderá ficar bloqueado do seu servidor se estiver ligado remotamente. Se não quiser montar uma firewall, passe para o Passo 3.

sudo ufw allow OpenSSH

Let’s open ports 20 and 21 for FTP, and ports 40000-50000 for passive FTP. Também abriremos a porta 990 para a TLS, que montaremos mais tarde.,

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp

Agora, ative o firewall se não estiver já instalado. Press yandENTER if warned about disrupting the SSH connection.

sudo ufw enable

Para verificar o status do firewall, execute:

sudo ufw status

Se o firewall está em execução, você deve ver Status: active e as regras de firewall que acabamos de adicionar.

Crie o Utilizador de FTP

iremos agora criar um novo utilizador que iremos usar para aceder ao FTP., Neste exemplo, vamos criar um novo usuário chamado ftpuser.

sudo adduser ftpuser

gerar uma senha forte e mantê-la segura.

pode também ser-lhe pedido para introduzir algumas informações de contacto. Você pode apenas pressionarENTER para cada um destes.

Se só quiser que oftpuser se faça login através do FTP, deverá desactivar o seu acesso de SSH, listando o seu nome de utilizador no ficheiro de configuração do SSH. Caso contrário, salta para o Passo 4.

abra a configuração da SSH em nano.,

sudo nano /etc/ssh/sshd_config

adicione o seguinte ao fundo do ficheiro que substitui ftpuser com o utilizador que deseja negar o acesso ao SSH e ao SFTP. Você pode adicionar vários usuários aqui separados por um único espaço. (Para colar em nano, pressione o botão direito do rato).

/etc/ssh/sshd_config
DenyUsers ftpuser

Para salvar o arquivo e sair, pressione CTRL + X, pressione Y e, em seguida, pressione ENTER.

reiniciar o serviço de SSH.,

sudo service sshd restart

Permissões de directório

terá agora de decidir onde este novo utilizador de FTP poderá ver e enviar os ficheiros.

vsftpd usa cadeias de chroot para restringir os utilizadores às suas pastas domésticas e requer que a pasta pessoal não seja escrita. Por essa razão, temos que configurar alguns diretórios e permissões.

se planeia usar esta conta de utilizador FTP para enviar ficheiros para um servidor web, continue a Passo 4.1. Se só quiser enviar para uma pasta pessoal, salte para o passo 4.2.

4.1., Enviar para um servidor web

em muitos casos, você deseja ser capaz de enviar arquivos para a raiz do documento no servidor web.

Se você seguiu um roteiro prévio aqui para configurar vários domínios, a sua raiz do documento pode ser localizado em algum lugar como /var/www/test1.com/public_html – nesse caso, você precisará definir a pasta raiz para o ftpuser para a pasta acima da raiz do documento: /var/www/test1.com (substituindo test1.com para o seu próprio domínio).,

Se não estiver a usar vários domínios, assumiremos que está a usar a raiz predefinida do documento /var/www/html tanto para o Apache como para o Nginx no Ubuntu 18.04 / 18.10 / 19.04 / 19.10. Neste cenário, temos que fazer /var/www/ o diretório home para o nosso usuário ftpuser.

vamos definir a pasta por cima da raiz do documento como a pasta pessoal para ftpuser.

sudo usermod -d /var/www ftpuser

isto permitirá ao nosso Utilizador FTP escrever e alterar ficheiros no directório raiz do documento.,

sudo chown ftpuser:ftpuser /var/www/html

agora Saltar para o Passo 5 para configurar o vsftpd.

4. 2 Enviar para uma pasta pessoal

se, em vez disso, quiser que este utilizador envie ficheiros para a pasta pessoal, crie uma nova pasta chamada ftp na pasta pessoal do utilizador e outra dentro dela chamada files. Neste exemplo abaixo nosso usuário é chamado ftpuser.

sudo mkdir /home/ftpuser/ftp

Set the ownership of the ftp directory to nonobody:nogroup.,

sudo chown nobody:nogroup /home/ftpuser/ftp

Definir permissões para ftp diretório usando chmod de modo que ele não é gravável por qualquer pessoa, caso contrário, vsftpd não vai permitir que você faça logon. a-w significa a = all/todos - = remover w = permissão para gravar, então, remover as permissões de escrita para todos.

sudo chmod a-w /home/ftpuser/ftp

em seguida, criaremos um novo directório dentro de /ftp onde o utilizador pode ver e enviar ficheiros.,

sudo mkdir /home/ftpuser/ftp/files

atribuir a propriedade deste directório ao nosso novo utilizador FTP, caso contrário, não serão capazes de O escrever.

sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files

Configure vsftpd

Existem algumas alterações que temos de fazer ao ficheiro de configuração do vsftpd antes de poder começar a usar FTP no Ubuntu 18.04 / 18.10 / 19.04 / 19.10.

Antes de editar o ficheiro de configuração, crie uma cópia de segurança.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Agora, abra o ficheiro de configuração emnano editor.,

sudo nano /etc/vsftpd.conf

Este é um arquivo bastante grande, mas é principalmente preenchido com comentários para ajudá-lo junto.

tem de ir ao ficheiro e certificar-se de que a configuração corresponde às opções abaixo. Nota: você pode procurar no nano uso de CTRL + W

Procure por #write_enable=YES e descomente-lo removendo o sinal#. Isto permitirá que os usuários FTP escrevam arquivos para o servidor.

etc / vsftpd.,conf
write_enable=YES

Look for #chroot_local_user=YES and uncomment it by removing the # sign. Isto irá evitar que os utilizadores de FTP naveguem fora do seu próprio directório.

etc / vsftpd.conf
chroot_local_user=YES

Look for #local_umask=022 and uncomment it by removing the # sign. Isto irá dar aos ficheiros enviados e pastas as permissões correctas.

etc / vsftpd.conf
local_umask=022

Agora precisamos adicionar algumas diretivas que não existem no arquivo.,

desde que o Linux não mostra os arquivos começando com um ponto, arquivos como .htaccess não serão visíveis em FTP. Este pode ser um problema se você pretende usar o Apache e quer trabalhar com .htaccess.

para forçar o vsftpd a mostrar nomes de arquivos que começam com um ponto, cole o seguinte para o fundo do arquivo. (Para colar em nano, pressione o botão direito do rato)

etc / vsftpd.conf
force_dot_files=YES

finalmente, vamos adicionar alguns intervalos de portas para FTP passivo para ter certeza de que conexões suficientes estão disponíveis. Cole o seguinte no fundo do ficheiro., (Para colar em nano, pressione o botão direito do rato)

etc / vsftpd.conf
pasv_min_port=40000pasv_max_port=50000

Se você seguiu o Passo 4.2 anteriormente e só querem isso de usuário para fazer upload de arquivos para a pasta raiz, devemos dizer vsftpd que o local_root é o /ftp pasta que criamos anteriormente.

não adicione estas duas linhas se quiser que o utilizador envie para a raiz do documento web!

etc / vsftpd.conf
user_sub_token=$USERlocal_root=/home/$USER/ftp

we are done with vsftpd.conf para o momento, mas vai voltar em etapas posteriores para configurar a segurança e SSL.,

Para salvar o arquivo e sair, pressione CTRL + X, pressione Y e, em seguida, pressione ENTER.

reiniciar o vsftpd.

sudo systemctl restart vsftpd

Test FTP

podemos agora testar vsftpd para ver se podemos entrar como o utilizador que criamos anteriormente. Recomendamos o FileZilla, que trabalha no Windows, Mac e Linux.

introduza o IP do seu servidor, o seu utilizador de FTP e a senha que criou anteriormente, e carregue em Quickconnect.,

acima podemos ver que estamos conectados com sucesso e que o diretório raiz webhtml é exibido, embora isto possa ser diferente no seu servidor.

tente carregar, criar e editar pastas e ficheiros dentro do directório raiz da web para garantir que as permissões estão a funcionar correctamente.

irá reparar que temos um aviso no Estado do FileZilla: servidor inseguro, que não suporta FTP sobre TLS.”É altamente recomendado que você agora configure TLS para que as credenciais de login e tráfego sejam criptografados através da conexão FTP.,se tiver problemas em aceder ao servidor FTP, tente verificar o registo do vsftpd. Para ver os últimos 200 entradas usando tail:

sudo tail /var/log/vsftpd.log -n 200

FTP Seguro com TLS (opcional)

É importante manter algumas coisas em mente ao usar o FTP – não é criptografado por padrão, o que significa que seu credenciais e arquivos que você enviar são vulneráveis à interceptação. Para tal, deverá ligar-se ao vsftpd utilizando FTPS (FTP sobre SSL/TLS).

vamos começar por criar um novo certificado com a ferramenta openssl.,

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

ser-lhe-á pedido para introduzir alguns detalhes como o país, etc. Não precisas de preencher isto. Você pode simplesmente pressionar ENTER para valores por omissão.

Agora que a sua chave privada foi criada, existem algumas alterações que temos de fazer no ficheiro de configuração do vsftpd.

abra o ficheiro de configuração em nano editor.

sudo nano /etc/vsftpd.conf

Localize a seguinte linha: (Nota: você pode procurar no nano uso de CTRL + W)

etc/vsftpd.,conf
ssl_enable=NO

mude para:

etc/vsftpd.conf
ssl_enable=YES

cole no seguinte abaixo.

etc / vsftpd.conf

ao Salvar o arquivo e sair (pressione CTRL + X, pressione Y e, em seguida, pressione ENTER).

reiniciar o vsftpd.

sudo systemctl restart vsftpd

testando TLS com FileZilla

podemos agora testar TLS. Recomendamos o FileZilla, que trabalha no Windows, Mac e Linux.,

introduza o IP do seu servidor, o seu utilizador de FTP e a senha que criou anteriormente, e carregue em Quickconnect.pode ser-lhe apresentado um aviso de certificado desconhecido. Carregue sempre neste certificado nas sessões futuras e carregue em OK.

Você também vai ver um cadeado no canto inferior direito.

,

4.79 (42 votos)

Deixe-me saber se isso ajudou. Siga-me no Twitter, Facebook e YouTube, ou compre-me um batido.I increased my AdSense revenue by 68% using AI 🤖. Leia a minha crítica Ezóica para descobrir como.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *