Cómo Configurar un Servidor FTP en CentOS 7 | 2020
Índice:
- Pré-requisitos
- Instalando o vsftpd no CentOS 7
- Configurando vsftpd
- 1. Acesso FTP
- 2. Habilitando uploads
- 3. Cadeia de Chroot
- 4. Conexões FTP passivas
- 5. Limitando o login do usuário
- 6. Protegendo transmissões com SSL / TLS
- Reinicie o serviço vsftpd
- Abrindo o Firewall
- Criando um usuário FTP
- Desativando o acesso ao shell
- Conclusão
FTP (File Transfer Protocol) é um protocolo de rede cliente-servidor padrão que permite aos usuários transferir arquivos de e para uma rede remota.
Existem vários servidores FTP de código aberto disponíveis para Linux. Os mais populares e amplamente utilizados são PureFTPd, ProFTPD e vsftpd.
Neste tutorial, instalaremos o vsftpd (Very Secure Ftp Daemon) no CentOS 7. É um servidor FTP estável, seguro e rápido. Também mostraremos como configurar o vsftpd para restringir os usuários ao diretório inicial e criptografar toda a transmissão com SSL / TLS.
Para transferências de dados mais seguras e mais rápidas, use SCP ou SFTP.
Pré-requisitos
Antes de continuar com este tutorial, verifique se você está conectado como um usuário com privilégios sudo.
Instalando o vsftpd no CentOS 7
O pacote vsftpd está disponível nos repositórios padrão do CentOS. Para instalá-lo, emita o seguinte comando:
sudo yum install vsftpd
Depois que o pacote estiver instalado, inicie o daemon vsftpd e permita que ele inicie automaticamente no momento da inicialização:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Você pode verificar se o serviço vsftpd está em execução imprimindo seu status:
sudo systemctl status vsftpd
A saída será semelhante a abaixo, mostrando que o serviço vsftpd está ativo e em execução:
● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Configurando vsftpd
A configuração do serviço vsftpd envolve a edição do arquivo de configuração
/etc/vsftpd/vsftpd.conf
. A maioria das configurações está bem documentada dentro do arquivo de configuração. Para todas as opções disponíveis, visite a página oficial do vsftpd.
Nas seções a seguir, abordaremos algumas configurações importantes necessárias para configurar uma instalação segura do vsftpd.
Comece abrindo o arquivo de configuração vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
1. Acesso FTP
Permitiremos o acesso ao servidor FTP apenas aos usuários locais, localizamos as diretivas
anonymous_enable
e
local_enable
e verificamos sua configuração correspondente às linhas abaixo:
anonymous_enable=NO local_enable=YES
2. Habilitando uploads
Remova o comentário da configuração
write_enable
para permitir alterações no sistema de arquivos, como upload e exclusão de arquivos.
3. Cadeia de Chroot
Impedir que os usuários do FTP acessem arquivos fora de seus diretórios pessoais, descomentando a diretiva
chroot
.
chroot_local_user=YES
Por padrão, quando o chroot está ativado, o vsftpd se recusará a enviar arquivos se o diretório em que os usuários estiverem bloqueados for gravável. Isso é para evitar uma vulnerabilidade de segurança.
Use um dos métodos abaixo para permitir uploads quando o chroot está ativado.
-
Método 1. - O método recomendado para permitir o upload é manter o chroot ativado e configurar os diretórios FTP. Neste tutorial, criaremos um diretório
/etc/vsftpd/vsftpd.confftp
dentro da página inicial do usuário, que servirá como o chroot e um diretório deuploads
graváveis para upload de arquivos.user_sub_token=$USER local_root=/home/$USER/ftp
Método 2. - Outra opção é adicionar a seguinte diretiva no arquivo de configuração vsftpd. Use esta opção se precisar conceder acesso gravável ao seu usuário no diretório inicial.
/etc/vsftpd/vsftpd.confallow_writeable_chroot=YES
4. Conexões FTP passivas
O vsftpd pode usar qualquer porta para conexões FTP passivas. Especificaremos o intervalo mínimo e máximo de portas e, posteriormente, abriremos o intervalo em nosso firewall.
Adicione as seguintes linhas ao arquivo de configuração:
/etc/vsftpd/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. Limitando o login do usuário
Para permitir que apenas alguns usuários façam login no servidor FTP, adicione as seguintes linhas após a linha
userlist_enable=YES
:
userlist_file=/etc/vsftpd/user_list userlist_deny=NO
Quando essa opção está ativada, você precisa especificar explicitamente quais usuários podem efetuar login adicionando os nomes de usuário ao arquivo
/etc/vsftpd/user_list
(um usuário por linha).
6. Protegendo transmissões com SSL / TLS
Para criptografar as transmissões FTP com SSL / TLS, você precisa ter um certificado SSL e configurar o servidor FTP para usá-lo.
Você pode usar um certificado SSL existente assinado por uma Autoridade de Certificação confiável ou criar um certificado autoassinado.
Neste tutorial, geraremos um certificado SSL autoassinado usando o comando
openssl
.
O comando a seguir criará uma chave privada de 2048 bits e um certificado autoassinado válido por 10 anos. A chave privada e o certificado serão salvos no mesmo arquivo:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Após a criação do certificado SSL, abra o arquivo de configuração vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
Localize as
rsa_cert_file
e
rsa_private_key_file
, altere seus valores para o caminho do arquivo
pam
e defina a diretiva
ssl_enable
como
YES
:
rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
Caso contrário, o servidor FTP usará apenas TLS para fazer conexões seguras.
Reinicie o serviço vsftpd
Depois de concluir a edição, o arquivo de configuração vsftpd (excluindo comentários) deve ser algo como isto:
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
Salve o arquivo e reinicie o serviço vsftpd para que as alterações entrem em vigor:
Abrindo o Firewall
Para abrir a porta
21
(porta de comando FTP), porta
20
(porta de dados FTP) e
30000-31000
(intervalo de portas passivas), emita os seguintes comandos:
sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
Recarregue as regras do firewall digitando:
Criando um usuário FTP
Para testar nosso servidor FTP, criaremos um novo usuário.
- Se você já possui um usuário que deseja conceder acesso ao FTP, pule a 1ª etapa. Se você definir
allow_writeable_chroot=YES
no seu arquivo de configuração, pule a 3ª etapa.
-
Crie um novo usuário chamado
newftpuser
:sudo adduser newftpuser
Em seguida, você precisará definir a senha do usuário:
sudo passwd newftpuser
Adicione o usuário à lista de usuários de FTP permitidos:
echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list
Crie a árvore de diretórios FTP e defina as permissões corretas:
sudo mkdir -p /home/newftpuser/ftp/upload
sudo chmod 550 /home/newftpuser/ftp
sudo chmod 750 /home/newftpuser/ftp/upload
sudo chown -R newftpuser: /home/newftpuser/ftp
Conforme discutido na seção anterior, o usuário poderá fazer upload de seus arquivos no diretório
ftp/upload
.
Nesse ponto, seu servidor FTP está totalmente funcional e você poderá se conectar ao servidor com qualquer cliente FTP que possa ser configurado para usar a criptografia TLS, como o FileZilla.
Desativando o acesso ao shell
Por padrão, ao criar um usuário, se não for especificado explicitamente, o usuário terá acesso SSH ao servidor.
Para desativar o acesso ao shell, criaremos um novo shell que simplesmente imprimirá uma mensagem informando ao usuário que sua conta está limitada apenas ao acesso ao FTP.
Execute os seguintes comandos para criar o shell
/bin/ftponly
e torná-lo executável:
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponly
Anexe o novo shell à lista de shells válidos no arquivo
/etc/shells
:
echo "/bin/ftponly" | sudo tee -a /etc/shells
Mude o shell do usuário para
/bin/ftponly
:
sudo usermod newftpuser -s /bin/ftponly
Use o mesmo comando para alterar o shell para outros usuários que você deseja dar apenas acesso FTP.
Conclusão
Neste tutorial, você aprendeu como instalar e configurar um servidor FTP rápido e seguro no seu sistema CentOS 7.
ftp centosUse o aplicativo Configurar os PCs da escola para configurar PCs com Windows em Escolas Baixe o aplicativo Configurar computadores da escola na Windows Store e use-o para configurar rapidamente seus computadores Windows 10 para melhores opções de aprendizado para os alunos
Os computadores agora se tornaram parte integrante da educação nas escolas, e quase todas as boas escolas têm os sistemas de computador definidos para seus alunos. O único problema com a educação em informática na escola ocorre quando os alunos se distraem com vários aplicativos e recursos dos PCs.
Como configurar o servidor ftp com vsftpd no debian 9
Neste tutorial, instalaremos o vsftpd. É um servidor FTP estável, seguro e rápido. Também mostraremos como configurar o vsftpd para restringir os usuários ao diretório inicial e criptografar toda a transmissão com SSL / TLS.
Como configurar o servidor ftp com o vsftpd no ubuntu 18.04
Neste tutorial, instalaremos o vsftpd. É um servidor FTP estável, seguro e rápido. Também mostraremos como configurar o vsftpd para restringir os usuários ao diretório inicial e criptografar toda a transmissão com SSL / TLS.