Depois de muita pesquisa e ajuda do Garme, conseguimos colocar o server de ftp no ar \o/
Requisitos: o obejtivo era criar um servidor ftp semelhante ao de host sharing, onde cada usuario tem acesso apenas a pasta do seu site.
segue aqui como foi que funcionou.
em /etc/vsftpd/vsftpd.conf
temos esse arquivo de configuração
# nao aceita conexao de usuario anonimo
anonymous_enable=no
# usuarios cadastrados localmente podem usar o ftp
local_enable=YES
# eles podem escrever nos diretorios
write_enable=YES
# permissao padrao
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
# --- aqui vem o pulo do gato ---
#Diz que os usuarios locais vao logar em chroot
chroot_local_user=yes
# uma lista com usuarios em chroot
# os usuarios nessa lista NAO vao estar em chroot
chroot_list_enable=YES
# a lista com os usuarios que nao vao participar do chroot
chroot_list_file=/etc/vsftpd/chroot_list
#usa o arquivo /etc/passwd
passwd_chroot_enable=YES
#escutando em IPV4
listen=YES
OBS: isso é o básico para que funcione, você pode achar mais documentação no site do Centos.
ok. temos o arquivo configurado =)
# service vsftpd restart
agora iremos criar um usuario pro ftp.
# adduser ftpuser
# passwd ftpuser
New UNIX password:
Retype new UNIX password:
pronto, temos o usuario criado.
edite o arquivo /etc/passwd
procure a linha referente ao usuario que vc acabou de adicionar.
Nnormalmente, ela estará no final do arquivo.
ftpuser:x:502:502::/home/ftpuser:/bin/bash
Edite a linha , trocando o home do usuário pra onde você quer que ele tenha acesso. e somente naquele diretório.
Ex.: você quer que o usuário tenha acesso apenas ao diretório /var/www/meusite
entao vamos fazer o seguinte
Antes: ftpuser:x:502:502::/home/ftpuser:/bin/bash
Depois: ftpuser:x:502:502::/var/www/meusite:/bin/bash
se o diretório desejado ja exsitir, tudo bem, se nao tiver, vamos criar...
# mkdir /var/www/meusite
vamos dar as permissoes ao novo usuário
chwon -R ftpuser:ftpuser /var/www/meusite
prontinho.
Bem. Com isso, ele ainda nao vai conectar, dependendo as configuraçoes de segurança do Selinux.
para ver se o ftp está habilitado para que os usuários loguem em seus diretorios home , rode o seguinte comando como root:
# getsebool -a | grep ftp
a saida será semelhante a essa :
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off
tftpd_disable_trans --> off
veja que o ftp_home_dir está off, ou seja, o usuario nao pode logar no seu home =)
pra ativar, é simples. Rode o comando como root:
-->
# setsebool -P ftp_home_dir on
Pronto, está ativado. Vamos verificar ?
# getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> on
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off
tftpd_disable_trans --> off
Pronto ! Com isso o seu servidor FTP irá funcionar :D
Poderia me dar uma ajuda, fiz todo esse processo mais ainda não consigo conectar pelo filezilla.
ResponderExcluirOlá Eduardo. Qual é o erro que o filezilla está reportando? você desativou o Selinux?
ExcluirE como anonimo consigo conectar.
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirEsta retornando essa msg:
ResponderExcluirEstado: Conexão estabelecida, esperando mensagem de boas-vindas...
Resposta: 220 (vsFTPd 2.2.2)
Comando: USER uftp
Resposta: 530 Permission denied.
Erro: Não foi possível conectar ao servidor
Eduardo, acho que esse erro é pq vc não deu a permissão do usuário lá no diretorio root dele.
Excluirchown usuario:usuario /home/ -R
veja também se o interpretador é o bash.
posta aqui a sua configuração =}
Este comentário foi removido pelo autor.
ExcluirCorrigindo:
Excluirchown usuario:usuario /home/usuario -R
Dei essa permissão que você falou, mais continuo sem conseguir acessar.
Excluirallow_ftpd_anon_write --> on
ResponderExcluirallow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> on
ftpd_connect_db --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> on
Agora é o seguinte, consegui logar com autenticação. Queria saber como faço para as pastas ja existentes serem exibidas, ex:. No filezilla o caminho exibido é:
ResponderExcluir/home/uftp
e eu gostaria que fosse exibido o caminho:
/var/www/html/
como faço isso?
Ou também mapear todas as pastas do servidor para que o usuário possa navegar nas pastas.
ResponderExcluir