Construir serviço FTP baseado em ECS (Alibaba Cloud)

Introdução

Descreve como instalar e configurar o vsftpd em uma instância do Linux.

conhecimento prévio

Este cenário envolve principalmente os seguintes produtos e serviços em nuvem:

O servidor de nuvem ECS
(Elastic Compute Service, ECS para abreviar) é um serviço de computação em nuvem de nível IaaS (Infraestrutura como serviço) fornecido pela Alibaba Cloud com excelente desempenho, estabilidade, confiabilidade e expansão elástica. O servidor em nuvem ECS elimina a preparação preliminar para a compra de hardware de TI, permitindo que você use o servidor da maneira mais conveniente e eficiente que usa recursos públicos como água, eletricidade e gás natural, percebendo o dimensionamento pronto e elástico dos recursos de computação. O Alibaba Cloud ECS continua a fornecer servidores inovadores para resolver uma variedade de necessidades de negócios e ajudar no desenvolvimento de seus negócios.

FTP
FTP (File Transfer Protocol) é um dos protocolos do conjunto de protocolos TCP / IP. O protocolo FTP inclui dois componentes, um é o servidor FTP e o outro é o cliente FTP. O servidor FTP é usado para armazenar arquivos e os usuários podem usar o cliente FTP para acessar recursos localizados no servidor FTP por meio do protocolo FTP. Ao desenvolver um site da Web, o protocolo FTP é geralmente usado para transferir páginas da Web ou programas para um servidor da Web. Além disso, devido à alta eficiência da transmissão FTP, esse protocolo é geralmente usado ao transferir arquivos grandes na rede.

Por padrão, o protocolo FTP usa as duas portas 20 e 21 na porta TCP, onde 20 é usada para transmitir dados e 21 é usada para transmitir informações de controle. No entanto, usar ou não 20 como a porta para transmissão de dados está relacionado ao modo de transmissão usado por FTP. Se o modo ativo for adotado, a porta de transmissão de dados é 20; se o modo passivo for adotado, a porta final a ser usada é determinada pelo servidor e pelo cliente por meio de negociação.

vsftpd
vsftpd (daemon FTP muito seguro) é o servidor FTP mais respeitado em distribuições Linux. Ele pode ser executado em sistemas como Linux, BSD, Solaris, HP-UNIX, etc. É um software de servidor ftp de código aberto totalmente gratuito que oferece suporte a muitos recursos não suportados por outros servidores FTP. Por exemplo: requisitos de segurança muito altos, limitações de largura de banda, boa escalabilidade, usuários virtuais podem ser criados, suporte IPv6, alta velocidade, etc.

Experiência de cena

O endereço a seguir é uma instância ECS (servidor em nuvem) configurada com CentOS 7.7 fornecida pelo Alibaba Cloud Experience Lab e configurada com um IP público elástico. Você pode consultar a operação deste tutorial para construir rapidamente um serviço FTP.
Recursos de cena da nuvem Alibaba :
https://developer.aliyun.com/adc/scenario/74b64efe414c47fbaf305957a7fb458b

Etapa 1: Instale o vsftpd

1. Execute o seguinte comando para instalar o vsftpd.

yum install -y vsftpd

Ao retornar para a interface conforme mostrado na figura abaixo, a instalação foi bem-sucedida.install_vsftp_successfully

2. Execute o seguinte comando para definir o serviço FTP para iniciar automaticamente.

systemctl enable vsftpd.service

3. Inicie o serviço FTP.

systemctl start vsftpd.service

4. Execute o seguinte comando para visualizar a porta monitorada pelo serviço FTP.

netstat -antup | grep ftp

A interface conforme mostrado na figura abaixo aparece, indicando que o serviço FTP foi iniciado e o número da porta de escuta é 21. Neste ponto, vsftpd habilitou o acesso anônimo por padrão.Você pode fazer login no servidor FTP sem inserir um nome de usuário e senha, mas você não tem autoridade para modificar ou carregar arquivos.install_vsftpd_3

Etapa 2: Configurar vsftpd

vsftpd (daemon FTP muito seguro) é o servidor FTP mais respeitado em distribuições Linux. vsftpd suporta dois métodos de acesso: acesso anônimo e modo de usuário local. Modo de acesso anônimo Qualquer usuário pode acessar o serviço de FTP integrado; o modo de usuário local só oferece suporte a usuários locais adicionados para acessar o serviço de FTP integrado.

Nota: Apenas um modo de usuário anônimo e modo de usuário local pode ser configurado ao mesmo tempo.

  • Modo de usuário anônimo

a. Modifique o arquivo de configuração vsftpd.conf.

vim /etc/vsftpd/vsftpd.conf

Pressione a tecla i para entrar no modo de edição e
desatar o comentário da permissão de upload anônimo anon_upload_enable = YES.
Configure vsftpd.conf

b. Pressione a tecla ESC para sair do modo de edição, digite: wq para salvar e sair do vim.
c. Altere as permissões do diretório / var / ftp / pub e adicione permissões de gravação para usuários de FTP.

chmod o+w /var/ftp/pub/

d. Reinicie o serviço FTP.

systemctl restart vsftpd.service

Permissão anônima 2

  • Modo de usuário local

a. Crie um usuário Linux para o serviço FTP.

adduser ftptest

Defina uma senha para o usuário.

passwd ftptest   

Criar usuário no Linux

b. Crie um diretório de arquivos para o serviço FTP.

mkdir /var/ftp/test

c. Altere o proprietário do diretório / var / ftp / test para ftptest.

chown -R ftptest:ftptest /var/ftp/test

d. Modifique o arquivo de configuração vsftpd.conf.

  • Para configurar o FTP para o modo ativo, execute o seguinte comando.
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf                     #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf         #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录

Para configurar o FTP para o modo passivo, execute o seguinte comando.

sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf                     #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf         #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录

echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #开启被动模式
echo "pasv_address=<FTP服务器公网IP地址>" >> /etc/vsftpd/vsftpd.conf #本教程中为Linux实例公网IP
echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最小值
echo "pasv_max_port=1000" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最大值

e) Crie um arquivo chroot_list no diretório / etc / vsftpd e escreva uma lista de usuários de exceção no arquivo.

#使用vim命令编辑chroot_list文件,添加例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。
vim /etc/vsftpd/chroot_list

Nota: Quando não há usuários de exceção, o arquivo chroot_list também deve ser criado e o conteúdo pode estar vazio.
f. Reinicie o serviço FTP.

systemctl restart vsftpd.service

Etapa 3: configurar o grupo de segurança

Depois de configurar o serviço FTP, adicione uma regra na direção de entrada do grupo de segurança da instância do ECS e permita as seguintes portas FTP.

Observação: a maioria dos clientes está localizada na rede local e o endereço IP é convertido, portanto, o IP retornado pelo ipconfig ou comando ifconfig pode não ser o endereço IP público real do cliente. Se o cliente subsequente não puder fazer login no servidor FTP, reconfirme seu endereço IP público.
1. Na página de experiência da plataforma de experiência, clique em um clique para copiar o URL de login e digite o nome de usuário e a senha da subconta criada para fazer login no console do ECS.

ecs

2. Na barra de navegação esquerda, clique em Rede e segurança> Grupo de segurança.

3. Selecione o grupo de segurança que precisa ser configurado e, na coluna Operação, clique em Configurar regras.

4. Selecione a direção da regra do grupo de segurança, clique em Direção de entrada> Adicionar regra de grupo de segurança. A configuração específica é a seguinte: Adicionar um grupo de segurança
Insira a descrição da imagem aqui

Etapa 4: teste do cliente

O cliente FTP, a ferramenta de linha de comando do Windows ou o navegador podem ser usados ​​para testar o servidor FTP.

Nota: Quando ocorre um erro ao usar um navegador para acessar o servidor FTP, é recomendável limpar o cache do navegador e tentar novamente.
1. Abra o navegador Chrom e digite ftp: // <endereço IP da rede pública do servidor FTP>: porta FTP na barra de endereços. Neste tutorial, é o endereço IP da rede pública da instância do Linux. Por exemplo: ftp://139.0.0.1:21.
2. Na caixa de diálogo pop-up, digite o nome do usuário e a senha, você pode operar o arquivo FTP com a autoridade correspondente.
Nota: O modo anônimo não requer operações de login de entrada.
A interface de login é semelhante à seguinte:
Insira a descrição da imagem aqui

A interface de login é semelhante à seguinte:
Insira a descrição da imagem aqui

Trecho do
texto original do Alibaba Cloud Experience Lab :
https://developer.aliyun.com/adc/scenario/74b64efe414c47fbaf305957a7fb458b

Acho que você gosta

Origin blog.51cto.com/14827683/2539317
Recomendado
Clasificación