Como configurar o servidor FTP no Debian 9 Stretch Linux

Como configurar o servidor FTP no Debian 9 Stretch Linux

Objetivo

O objetivo é instalar e configurar o servidor FTP no Debian 9 Stretch Linux, permitindo acesso anônimo ou local.

Sistema operacional e versões de software

  • Sistema operacional: - Debian 9 Alongamento
  • Programas: - VSFTPD Versão 3.0.3

Requisitos

Acesso privilegiado a

Dificuldade

MÉDIO

Convenções

  • # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
  • $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Instruções

O seguinte tutorial explicará como instalar e configurar o servidor FTP usando vsftpd Daemon. Ele também discutirá várias configurações para permitir acesso apenas a leitura ou somente leitura ao usuário anônimo, bem como aos usuários locais.

Instalação vsftpd

Vamos começar pelo servidor VSFPTD e instalação do cliente FTP:

# APT Install vsftpd ftp 

Por padrão, o servidor vsftpd é configurado para permitir que os usuários do sistema acessem seus diretórios domésticos com acesso somente leitura. A seguir, é apresentado um arquivo de configuração padrão vsftpd /etc/vsftpd.conf:



listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert- óleo de cobra.PEM rsa_private_key_file =/etc/ssl/private/ssl-cert-snakeoil.chave ssl_enable = não 

Como já mencionado, o arquivo de configuração acima concede apenas um acesso somente leitura a qualquer usuário do sistema listado dentro /etc/passwd arquivo. Usar ftp Comando e tente se conectar usando o nome de usuário e a senha de qualquer um dos usuários do sistema local:

# FTP localhost conectado ao host local. 220 (VSFTPD 3.0.3) Nome (localhost: raiz): LinuxConfig 331 Especifique a senha. Senha: 230 Login bem -sucedido. O tipo de sistema remoto é Unix. Usando o modo binário para transferir arquivos. FTP> CUIXO ARQUIVO.TXT Local: Arquivo.TXT Remote: Arquivo.Comando txt 200 eprt bem -sucedido. Considere usar o EPSV. 550 Permissão negada. 

Se você precisar apenas de acesso somente leitura por seus usuários locais, você terminou.



Permitir acesso ao usuário Acesso

Para adicionar acesso de gravação para todos os usuários locais do sistema Uncomment ou adicionar a seguinte estrofe write_enable = sim. O novo arquivo de configuração consiste em:

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert- óleo de cobra.PEM rsa_private_key_file =/etc/ssl/private/ssl-cert-snakeoil.chave ssl_enable = não write_enable = sim 

Em seguida, reinicie seu vsftpd:

# SystemCtl Reiniciar vsftpd 

Realizar um novo teste com ftp comando para confirmar o acesso de gravação:

# FTP localhost conectado ao host local. 220 (VSFTPD 3.0.3) Nome (localhost: raiz): LinuxConfig 331 Especifique a senha. Senha: 230 Login bem -sucedido. O tipo de sistema remoto é Unix. Usando o modo binário para transferir arquivos. FTP> CUIXO ARQUIVO.TXT Local: Arquivo.TXT Remote: Arquivo.Comando txt 200 eprt bem -sucedido. Considere usar o EPSV. 150 OK para enviar dados. 226 Transferência completa. ftp> ls 200 eprt comando bem -sucedido. Considere usar o EPSV. 150 aqui vem a lista de diretórios. -RW ------- 1 1000 1000 0 Jun 07 12:45 Arquivo.TXT 226 Diretório Enviar OK. 


Permitir usuários específicos apenas

No momento, nosso servidor FTP permite o acesso a qualquer usuário do sistema definido dentro /etc/passwd arquivo. Para permitir que apenas usuários específicos possam fazer login, podemos incluir as seguintes linhas em nosso arquivo de configuração:

userlist_file =/etc/vsftpd.userlist userlist_enable = sim 

O exposto acima permitirá uma lista de usuários predefinidos em que qualquer usuário listado dentro /etc/vsftpd.Lista de usuários (Um nome de usuário por linha) terá acesso ao FTP negado, enquanto todos os outros usuários do sistema poderão fazer login. Vamos criar um novo /etc/vsftpd.Lista de usuários Lista de usuários composta por um único usuário LinuxConfig:

# eco linuxconfig> /etc /vsftpd.Lista de usuários 

Reinicie o servidor vsftpd:

# SystemCtl Reiniciar vsftpd 

Realizar um novo teste com ftp comando para confirmar o acesso negado ao servidor FTP para LinuxConfig do utilizador:

# FTP localhost conectado ao host local. 220 (VSFTPD 3.0.3) Nome (localhost: raiz): LinuxConfig 530 Permissão negada. falha no login. ftp> 

No entanto, se você precisar ser capaz de fazer login apenas com os usuários definidos dentro /etc/vsftpd.Lista de usuários, Adicione a seguinte opção de configuração userlist_deny = não no seu arquivo de configuração vsftpd /etc/vsftpd.conf. Abaixo está o nosso atual /etc/vsftpd.conf arquivo de configuração:

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert- óleo de cobra.PEM rsa_private_key_file =/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable = no write_enable = sim userlist_file =/etc/vsftpd.userlist userlist_enable = sim userlist_deny = não 


Deixe anônimo

Nesta fase, também vamos permitir o acesso somente leitura por usuários anônimos. Vamos começar a criar um novo diretório que será usado como um diretório raiz para o usuário anônimo, por exemplo,. /var/ftp. Para fins de teste, também podemos colocar algum arquivo de teste arbitrário dentro /var/ftp:

# mkdir/var/ftp/ # chmod 555/var/ftp/ # chown ftp.ftp/var/ftp/ # touch/var/ftp/anônimo.TXT 

Além disso, inclua as seguintes linhas em /etc/vsftpd.conf arquivo de configuração para definir o diretório doméstico anônimo e o acesso anônimo:

anon_root =/var/ftp anonymous_enable = sim 

Opcionalmente, adicione no_anon_password = sim linha para instruir o vsftpd para permitir que o usuário anônimo faça login automaticamente sem a senha. Como agora definimos a lista de usuários, também devemos adicionar o anônimo Usuário da lista:

# eco anônimo >> /etc /vsftpd.Userlist # Cat /etc /vsftpd.UserList LinuxConfig Anonymous 

Como geralmente reinicie o servidor FTP e execute uma validade da sua configuração atual:

# SystemCtl Reiniciar vsftpd 

Teste o login anônimo:

# FTP localhost conectado ao host local. 220 (VSFTPD 3.0.3) Nome (localhost: raiz): anônimo 230 Login bem -sucedido. O tipo de sistema remoto é Unix. Usando o modo binário para transferir arquivos. ftp> ls 200 eprt comando bem -sucedido. Considere usar o EPSV. 150 aqui vem a lista de diretórios. -RW-R-R-- 1 0 0 0 Jun 13 13:29 Anônimo.TXT 226 Diretório Enviar OK. ftp> 

Abaixo, você pode encontrar nosso arquivo de configuração atual do VSFTPD:

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert- óleo de cobra.PEM rsa_private_key_file =/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable = no write_enable = sim userlist_file =/etc/vsftpd.userlist userlist_enable = sim userlist_deny = não anon_root =/var/ftp anonymous_enable = sim no_anon_password = sim 


Ativar acesso anônimo a gravar

Em seguida, vamos permitir que o usuário anônimo envie arquivos e crie novos diretórios e mais. Para fazer isso, crie um novo diretório carregar dentro do /var/ftp diretório:

# mkdir/var/ftp/upload # chown ftp.ftp/var/ftp/upload/ 

Em seguida, adicione as seguintes linhas ao seu arquivo de configuração VSFTPD:

anon_upload_enable = sim anon_other_write_enable = sim anon_mkdir_write_enable = sim 

Reinicie seu servidor:

# SystemCtl Reiniciar vsftpd 

Após o reinício, o usuário anônimo poderá fazer upload de arquivos, criar diretórios renomear arquivos:

# FTP localhost conectado ao host local. 220 (VSFTPD 3.0.3) Nome (localhost: raiz): anônimo 230 Login bem -sucedido. O tipo de sistema remoto é Unix. Usando o modo binário para transferir arquivos. ftp> ls 200 eprt comando bem -sucedido. Considere usar o EPSV. 150 aqui vem a lista de diretórios. -RW-R-R-- 1 0 0 0 Jun 13 13:29 Anônimo.Txt drwxr-xr-x 2 108 112 4096 Jun 07 13:57 Upload 226 Diretório Enviar OK. FTP> Diretório de upload de CD 250 alterado com sucesso. FTP> CUIXO ARQUIVO.TXT Local: Arquivo.TXT Remote: Arquivo.Comando txt 200 eprt bem -sucedido. Considere usar o EPSV. 150 OK para enviar dados. 226 Transferência completa. ftp> ls 200 eprt comando bem -sucedido. Considere usar o EPSV. 150 aqui vem a lista de diretórios. -RW ------- 1 108 112 0 Jun 07 13:57 Arquivo.TXT 226 Diretório Enviar OK. FTP> Renomear o arquivo.Txt novo.Txt 350 pronto para RNO. 250 Renomear bem -sucedido. ftp> ls 200 eprt comando bem -sucedido. Considere usar o EPSV. 150 aqui vem a lista de diretórios. -RW ------- 1 108 112 0 Jun 07 13:57 Novo.TXT 226 Diretório Enviar OK. ftp> 

Abaixo, você pode encontrar nosso arquivo de configuração final do VSFTPD:

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert- óleo de cobra.PEM rsa_private_key_file =/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable = no write_enable = sim userlist_file =/etc/vsftpd.userlist userlist_enable = sim userlist_deny = não anon_root =/var/ftp anonymous_enable = sim no_anon_password = sim anon_upload_enable = sim anon_other_write_enable = sim anon_mkdir_write_enable = sim 

Apêndice

Mensagem de erro:

# FTP localhost conectado ao host local. 220 (VSFTPD 3.0.3) Nome (localhost: raiz): Anonymous 500 OOPS: VSFTPD: Recusando -se a correr com a raiz gravável dentro de chroot () falha no login. ftp> 

O acima indica que o seu anon_root O diretório é gravável. Solução é torná-lo somente leitura. Exemplo:

# chmod 555 /var /ftp 

Como alternativa, tente adicionar a seguinte linha ao seu arquivo de configuração VSFTPD:

allow_writEable_chroot = sim 

Tutoriais do Linux relacionados:

  • Configurar servidor FTP no Linux
  • Coisas para instalar no Ubuntu 20.04
  • Como configurar o vsftpd no Debian
  • Como configurar o servidor e o cliente FTP/SFTP no Almalinux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Arquivos de configuração do Linux: os 30 primeiros mais importantes
  • Coisas para instalar no Ubuntu 22.04
  • Download do Linux
  • Lista de clientes FTP e instalação no Ubuntu 22.04 Linux…