Como instalar e configurar o servidor FTP no Ubuntu

Como instalar e configurar o servidor FTP no Ubuntu

Ftp (Protocolo de transferência de arquivos) é um protocolo de rede padrão relativamente antigo e mais usado usado para fazer upload/download de arquivos entre dois computadores em uma rede. No entanto, Ftp por sua insegura original, porque transmite dados juntamente com as credenciais do usuário (nome de usuário e senha) sem criptografia.

Aviso: Se você planeja usar Ftp, Considere configurar a conexão FTP com SSL/TLS (cobrirá no próximo artigo). Caso contrário, é sempre melhor usar FTP seguro como SFTP.

Leia sugerida: Como instalar e proteger o servidor FTP no CentOS 7

Neste tutorial, mostraremos como instalar, configurar e proteger um Ftp servidor (Vsftpd na íntegra "Daemon FTP muito seguro") em Ubuntu ter uma segurança poderosa contra as vulnerabilidades do FTP.

Etapa 1: Instalando o servidor VSFTP no Ubuntu

1. Primeiro, precisamos atualizar a lista de fontes de pacote do sistema e depois instalar Vsftpd Pacote binário da seguinte forma:

$ sudo apt-get update $ sudo apt-get install vsftpd 

2. Após a conclusão da instalação, o serviço será desativado inicialmente, portanto, precisamos iniciá -lo manualmente para o tempo médio e também permitir que ele inicie automaticamente a partir da próxima inicialização do sistema:

------------- No Systemd ------------- # SystemCtl START VSFTPD # SystemCtl Ativar vsftpd ------------- Em sysvinit ------------- # Service vsftpd Iniciar # chkconfig -Nível 35 vsftpd 

3. Em seguida, se você tiver o Firewall do UFW ativado (não está ativado por padrão) no servidor, você deve abrir portas 21 e 20 Onde os daemons FTP estão ouvindo, a fim de permitir o acesso aos serviços FTP de máquinas remotas e adicione as novas regras do firewall da seguinte forma:

$ sudo ufw permitir 20/tcp $ sudo ufw permitir 21/tcp $ sudo ufw status 

Etapa 2: Configurando e protegendo o servidor VSFTP no Ubuntu

4. Vamos agora executar algumas configurações para configurar e proteger nosso servidor FTP, primeiro criaremos um backup do arquivo de configuração original /etc/vsftpd/vsftpd.conf igual a:

$ sudo cp /etc /vsftpd.conf /etc /vsftpd.conf.orig 

Em seguida, vamos abrir o vsftpd arquivo de configuração.

$ sudo vi /etc /vsftpd.conf ou $ sudo nano /etc /vsftpd.conf 

Adicione/modifique as seguintes opções com estes valores:

anonymous_enable = não # desative o login anônimo local_enable = sim # permitir logins locais write_enable = sim # Ativar comandos FTP que alteram o sistema de arquivos local_umask = 022 # valor de umkask para criação de arquivos para usuários locais Dirmessage_enable = sim # HOLEF Um novo diretório xferlog_enable = sim # Um arquivo de log será mantido detalhando uploads e downloads connect_from_port_20 = sim # use a porta 20 (ftp-dados) na máquina do servidor para conexões de estilo por porta xferlog_std_format = sim # mantenha o formato de arquivo de log padrão = não # # Evite que o vsftpd seja executado no modo independente ouve_ipv6 = yes # vsftpd ouvirá em um soquete IPv6 em vez de um IPv4 ONE PAM_SERVICE_NAME = VSFTPD # Nome do serviço PAM VSFTPD usará Userlist_enable = Sim # ENLAPPD para carregar a lista de usernames # Ligue as embalagens do TCP 

5. Agora, configure Vsftpd Para permitir/negar o acesso do FTP aos usuários com base no arquivo da lista de usuários /etc/vsftpd.Lista de usuários.

Observe que, por padrão, os usuários listados em userlist_file =/etc/vsftpd.Lista de usuários são negados o acesso de login com userlist_deny = sim opção se userlist_enable = sim.

Mas, a opção userlist_deny = não torce o significado da configuração padrão; portanto, apenas os usuários cujo nome de usuário está explicitamente listado em userlist_file =/etc/vsftpd.Lista de usuários terá permissão para fazer login no servidor FTP.

userlist_enable = sim # vsftpd carregará uma lista de nomes de usuário, no nome do arquivo dado pelo userlist_file userlist_file =/etc/vsftpd.Userlist # armazena nomes de usuário. userlist_deny = não 

Importante: Quando os usuários fazem login no servidor FTP, eles são colocados em uma prisão de chroot, este é o diretório raiz local que atuará como seu diretório residencial apenas para a sessão FTP.

Em seguida, examinaremos dois cenários possíveis de como definir o diretório da prisão (raiz local), conforme explicado abaixo.

6. Neste ponto, vamos adicionar/modificar/descomentar essas duas opções a seguir para restringir os usuários de FTP aos seus diretórios domésticos.

CHROOT_LOCAL_USER = SIM ALIMS_WRITEABE_CHROOT = SIM 

A opção CHROOT_LOCAL_USER = SIM É importante ressaltar que os usuários locais serão colocados em uma prisão de chroot, seu diretório residencial por padrão após o login.

E também devemos entender que o VSFTPD não permite que o diretório da prisão chroot seja gravável, por padrão por razões de segurança, no entanto, podemos usar a opção allow_writEable_chroot = sim Para desativar esta configuração.

Salve o arquivo e feche-o. Então temos que reiniciar os serviços vsftpd para as alterações acima para entrar em vigor:

------------- No Systemd ------------- # SystemCtl Reiniciar vsftpd ------------- Em sysvinit ------------- # serviço vsftpd reinicialização 

Etapa 3: Testando o servidor VSFTP no Ubuntu

7. Agora, testaremos o servidor FTP criando um usuário FTP com o comando useradd da seguinte forma:

$ sudo userAdd -m -c "Aaron Kili, colaborador" -s /bin /bash aaronkilik $ sudo passwd aaronkilik 

Então, temos que listar explicitamente o usuário Aaronkilik no arquivo /etc/vsftpd.Lista de usuários com o comando de eco e comando tee como abaixo:

$ eco "aaronkilik" | sudo tee -a /etc /vsftpd.Userlist $ CAT /etc /vsftpd.Lista de usuários 

8. Agora é hora de testar nossas configurações acima estão funcionando conforme necessário. Começaremos testando logins anônimos; Podemos ver claramente a saída abaixo que os logins anônimos não são permitidos no servidor FTP:

# ftp 192.168.56.102 Conectado a 192.168.56.102 (192.168.56.102). 220 Bem -vindo ao Tecmint.serviço ftp. Nome (192.168.56.102: Aaronkilik): permissão anônima 530 negado. falha no login. ftp> Bye 221 Adeus. 

9. Em seguida, vamos testar se um usuário não listado no arquivo /etc/vsftpd.Lista de usuários receberá permissão para fazer login, o que não é verdadeiro a partir da saída a seguir:

# ftp 192.168.56.102 Conectado a 192.168.56.102 (192.168.56.102). 220 Bem -vindo ao Tecmint.serviço ftp. Nome (192.168.56.10: raiz): Usuário1 530 Permissão negada. falha no login. ftp> Bye 221 Adeus. 

10. Agora vamos realizar um teste final para determinar se um usuário listado no arquivo /etc/vsftpd.Lista de usuários, é realmente colocado em seu diretório inicial depois de fazer login. E isso é verdade na saída abaixo:

# ftp 192.168.56.102 Conectado a 192.168.56.102 (192.168.56.102). 220 Bem -vindo ao Tecmint.serviço ftp. Nome (192.168.56.102: Aaronkilik): Aaronkilik 331, especifique a senha. Senha: 230 Login bem -sucedido. O tipo de sistema remoto é Unix. Usando o modo binário para transferir arquivos. ftp> ls 
Verifique o login do FTP no Ubuntu

Aviso: Definir a opção allow_writEable_chroot = sim pode ser tão perigoso que tem possíveis implicações de segurança, especialmente se os usuários tiverem permissão de upload, ou mais, acesso de shell. Use apenas se você souber exatamente o que está fazendo.

Devemos observar que essas implicações de segurança não são específicas para o VSFTPD, elas também podem afetar todos os outros daemons de FTP que oferecem para colocar usuários locais em prisões chroot.

Devido a esse motivo, na seção abaixo, explicaremos um método mais seguro de definir um diretório raiz local não criativo diferente para um usuário.

Etapa 4: Configure diretórios residenciais do usuário do FTP no Ubuntu

11. Agora, abra o arquivo de configuração do VSFTPD mais uma vez.

$ sudo vi /etc /vsftpd.conf ou $ sudo nano /etc /vsftpd.conf 

e comente a opção não segura usando o # Personagem como mostrado abaixo:

#allow_writEable_chroot = sim 

Em seguida, crie o diretório raiz local alternativo para o usuário (Aaronkilik, O seu possivelmente não é o mesmo) e defina as permissões necessárias, desativando as permissões de gravação a todos os outros usuários para este diretório:

$ sudo mkdir/home/aaronkilik/ftp $ sudo chown Ninguém: Nogroup/home/aaronkilik/ftp $ sudo chmod a-w/home/aaronkilik/ftp 

12. Em seguida, crie um diretório sob a raiz local com as permissões apropriadas em que o usuário armazenará seus arquivos:

$ sudo mkdir/home/aaronkilik/ftp/arquivos $ sudo chown -r aaronkilk: aaronkilik/home/aaronkilik/ftp/arquivos $ sudo chmod -r 0770/home/aaronkilik/ftp/arquivos/ 

Posteriormente, adicione/modifique as opções abaixo no arquivo de configuração vsftpd com seus valores correspondentes:

user_sub_token = $ user # insere o nome de usuário no diretório raiz local local_root =/home/$ user/ftp # define qualquer usuário do diretório raiz local dos usuários 

Salve o arquivo e feche-o. E reinicie os serviços VSFTPD com as configurações recentes:

------------- No Systemd ------------- # SystemCtl Reiniciar vsftpd ------------- Em sysvinit ------------- # serviço vsftpd reinicialização 

13. Agora, vamos realizar uma verificação final e garantir que o diretório raiz local do usuário seja o diretório FTP que criamos em seu diretório doméstico.

# ftp 192.168.56.102 Conectado a 192.168.56.102 (192.168.56.102). 220 Bem -vindo ao Tecmint.serviço ftp. Nome (192.168.56.10: Aaronkilik): Aaronkilik 331, especifique a senha. Senha: 230 Login bem -sucedido. O tipo de sistema remoto é Unix. Usando o modo binário para transferir arquivos. ftp> ls 
FTP User Home Directory Login

É isso! Lembre -se de compartilhar sua opinião sobre este guia por meio do formulário de comentário abaixo ou possivelmente nos forneça qualquer informação importante sobre o tópico.

Por último, mas não menos importante, não perca nosso próximo artigo, onde descreveremos como proteger um servidor FTP usando conexões SSL/TLS no Ubuntu 16.04/16.10, até então, sempre fique ligado a Tecmint.