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 y
andENTER
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 y
andENTER
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).
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.
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.
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.
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)
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)
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!
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
)
ssl_enable=NO
mude para:
ssl_enable=YES
cole no seguinte abaixo.
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.
,
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