Instalar e configurar um servidor FTP no CentOS

Mostrarei, através deste artigo, como instalar e configurar um servidor FTP (vsftpd) na distribuição CentOS. Estou iniciando no mundo Linux, estudando para tentar a certificação LPI 1 e com a ajuda de um amigo que me ensinou a criar o servidor decidi montar este documento.

[ Hits: 83.814 ]

Por: Felipe Spagnolo Lorizola em 24/11/2010 | Blog: http://fspagnolo.blogspot.com


Introdução



Com o terminal aberto iremos seguir os passos. Primeiro baixaremos os pacotes necessários. Para isso digite:

# yum update vsf*

Estaremos baixando os pacotes de novas atualizações somente do serviço FTP, que no Linux é conhecido como vsftpd.
Feito o update iremos para o próximo passo, que é a instalação do serviço FTP. Para isso digite:

# yum install vsftpd

Ao aparecer igual a tela abaixo, pressione a tecla Y para aceitar e continuar a instalação.
Após a instalação teremos que iniciar o serviço FTP. Para isso digite:

# service vsftpd start
Pronto, instalamos e iniciamos o serviço FTP. Agora poderemos realizar os testes para ver o funcionamento do serviço. Chegou a hora de criar um usuário e uma senha para poder conectar em seu servidor FTP, para isso digite:

useradd <nome do usuário>

Exemplo:

# useradd teste
Vamos criar a senha para o usuário. que no meu caso é teste:

# passwd teste

Será solicitado para que você digite uma senha e ao teclar <Enter> será solicitado que você repita a senha. Feito isso, já criamos o usuário e senha liberados para acessar o servidor FTP.

Agora devemos alternar para o usuário criado. Para isso digite primeiramente o seguinte comando para logar como usuário teste:

# su - teste
Crie uma pasta dentro deste usuário:

# mkdir Softwares

Obs.: Lembrando que o Linux é case sensitive, portanto se você digitar a primeira letra maiúscula, lembre-se de digitar corretamente depois.
Pronto, agora precisamos saber o número de endereço IP que está no computador para podermos fazer a conexão do Windows no servidor FTP. Para isso digite:

# ifconfig
Obs.: Reparem que deixei selecionado o local onde mostra o número de IP, no meu caso é 10.0.0.207.

Agora poderemos fazer o teste de conexão através do comando cmd no Windows por exemplo. Clique em Iniciar > Executar > cmd

Ao abrir o prompt de comando digite o seguinte comando:

ftp <número do seu ip Linux> e tecle enter
Se estiver tudo certo, será apontado para o servidor solicitando usuário e senha, aí você digita o usuário e senha que foi criado anteriormente.
Vamos criar um arquivo qualquer de teste na raiz do Windows. Vá até a unidade c:\ e crie um arquivo de texto qualquer com o nome de envio.txt.
Volte ao prompt de comando e agora vamos direcionar esse arquivo .txt para o local criado no servidor, que no caso deste artigo foi a pasta chamada Softwares.

Primeiramente o local para onde você vai mandar, que é a pasta Softwares:

cd /Softwares

É para aparecer a seguinte mensagem:

Directory successfully changed * Isso significa que você está acessando o diretório Softwares.

Depois digite:

put c:\envio.txt

Pronto, foi enviado para o servidor, no diretório Softwares, o arquivo envio.txt. Você pode voltar até o servidor e conferir se realmente o arquivo está lá.

Aqui terminamos o tutorial, lembrando que isso é o básico do servidor FTP, só para entender como funciona o envio mesmo. Após isso podemos criar diretrizes de segurança para o servidor, isso postarei em outro artigo, até lá.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Acessando remotamente máquina Windows dentro de uma VPN através do Ubuntu

Batalha Apache, PHP e MySQL com vestígios de versão antiga

Configurando o CACIC (parte 2)

Servidor SSH - Prático e Seguro

Gerenciamento centralizado de usuários de rede com GOSA

  
Comentários
[1] Comentário enviado por marcrock em 09/12/2010 - 02:00h

Ótima iniciativa para mostrar pro pesssoal que está começando como é a lógica de instalação e administação de serviços em uma distribuição linux !!!

Até mais.

[2] Comentário enviado por evamberto em 23/01/2011 - 22:03h

Legal!!!

[3] Comentário enviado por david fonseca em 28/12/2011 - 17:11h

ótimo tuto ...

duvida - tenho um usuário " teste " , usei o programa " filiezilla " para conectar ao meu servidor de ftp conectou blz, mas esse use tem acesso a todas as pastas do meu servidor alem da pasta /home/teste

como faco o bloqueio?

ou seja ele tem ver as pastas /home/.. /root/.. /var... etc

[4] Comentário enviado por kleitoncore em 29/12/2011 - 22:11h

Muito bom cara, simples, limpo e objetivo

[5] Comentário enviado por diuliano01 em 01/06/2012 - 14:45h

como faço pra alterar a pasta padrão?

[6] Comentário enviado por edsial em 12/07/2012 - 06:22h

Pessoal, depois de muita pesquisa, consegui enfim fazer funcionar, levando o usuário a pasta /var/www/html, sem abrir mão da segurança, ou seja, fica restrito a sua pasta conforme definição.

Bom, vamos lá:

$ groupadd www #Adiciona um novo grupo chamado 'www'
$ cd /var/www
$ chgrp -R www html #Alterando o grupo da pasta html (root anteriormente) para o novo grupo 'www' que criamos antes.
$ chown -R apache html #o usuário apache agora é o 'dono' da pasta html, não o root.

Adicionando uma conta FTP para que você tenha acesso e possa alterar, adicionar ou apagar arquivos.
$ useradd –g www –d /var/www/html wwwweb
#Adicionamos o um novo usuário 'wwwweb' pertencente ao grupo 'www'.
#O diretório 'home' do usuário 'wwwweb' será o diretório do apache - /var/www/html
#O usuário, 'wwwweb', é o nome que foi adicionado, mas pode e deve ser substituído pelo usuário que você quiser.
$ passwd wwwweb
#Agora você acabou de adicionar uma senha de acesso pro seu usuário. Assim, finalizamos com a criação do usuário!

Agora, vamos configurar o arquivo vsftpd.conf localizado em /etc/vsftpd/;
$ cd /etc/vsftpd
$ vim vsftpd.conf

Lembrando que tudo que está após o # é comentário, ou seja, não é necessário adicionar a não ser por referência.
anonymous_enable=NO #Não libera os usuários anônimos!
local_enable=YES #habilita usuários locais de logar no servidor. (ex., wwwweb)
write_enable=YES #habilita os usuários locais de adicionar/modificar/apagar arquivos no servidor.
file_open_mode=0777 #configura a permissão inicial.
local_umask=0022
nopriv_user=ftp #executa o servidor ftp sem privilégios de usuários.
chroot_list_enable=YES #prende o usuário local no diretório /var/www/html.
dirmessage_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
ftpd_banner=Servico FTP Local
listen=YES
chroot_local_user=YES
log_ftp_protocol=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

Salve seu arquivo pressionando a tecla [ESC] depois [:wq].

vim chroot_list #caso não tenha criado antes.

Quase pronto, exceto pelo… SELinux. Você precisa ‘ajustar’ o SELinux para liberar as atividades ftp, usando esse comando:
$ setsebool –P allow_ftpd_full_access 1

Agora sim, reinicie o serviço FTP.
$ service vsftpd start

Faça o teste usando um cliente ftp, qualquer dúvida, poste ai!

[7] Comentário enviado por edsial em 12/07/2012 - 06:24h


[6]
Só esqueci de citar a fonte: http://ll.51f.us/?p=225

Já que foi através dessa que funcionou, nada mais justo.



[8] Comentário enviado por marcos.cavaco em 05/09/2012 - 12:59h

Boa tarde!

Tem alguma forma de identificar quem esta logado no servidor por ftp ?
E a partir dai disparar um e-mail informando quem esta logado via ftp naquele momento ?

[9] Comentário enviado por janduy em 20/03/2015 - 14:09h

Parabens, pratico e rapido!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts