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: 76.262 ]

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

Balanceamento e alta disponibilidade com Bonding

Instalação do Funtoo GNU/Linux em VirtualBox

Deixando o GNOME mais adequado às leis de Fitts

Instalando e configurando o Java JDK no Slackware Linux

Apache2 + PHP5 + VirtualHosts no Debian e Ubuntu

  
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 HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts