Como instalar e configurar um servidor FTP com usuários virtuais Pure-FTPd +

Sou daqueles que gostam de inovar e aprender coisas novas, há pouco tempo tive que instalar e configurar um servidor FTP e decidi fazer de forma diferente de sempre.

Neste caso optei por um serviço de FTP com usuários virtuais, usuários que ficarão armazenados em um arquivo criptografado (usuário, senha, configurações, etc.), todos com FTPd puro.

Aqui vou mostrar como fazer ... bem, vamos começar 😉

Em primeiro lugar, especifique que os comandos neste tutorial são destinados a distros como o Debian ou baseados neles, no entanto, se alguém usar outra distro em seu servidor, deve instalar os mesmos pacotes e usar as configurações definidas abaixo, a única coisa que precisa ser alterada é o comando de instalação.

Todos os comandos que eles irão ler serão executados como root, se desejar, você pode acrescentar "sudo" a cada linha.

1. Primeiro, devemos instalar o Pure FTPd:

apt-get install pure-ftpd

A saída terminará mais ou menos assim:

installation-pure-ftpd

2. O serviço já está ativado, mas de nada nos serve se não o configuramos adequadamente, vamos colocar um arquivo de configuração extenso mas é quase padrão, contém o normal, estabelecendo que usuários anônimos não são permitidos, etc.

cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf

3. Bem, suponha que nossa pasta FTP seja / var / www / ftp / e queremos criar um usuário que possa enviar informações para a pasta / var / www / ftp / sysadmin /, vamos colocar o seguinte em um terminal:

pure-pw useradd sysadmin -u 2001 -g 2001 -d /var/www/ftp/sysadmin/

Isso significa o seguinte:

pure-pw: comando usado para manipular usuários Pure-FTPd
useradd: indicamos que adicionaremos um usuário
sysadmin: o usuário que desejo criar
-u 2001: UserID desse usuário
-g 2001: GroupID desse usuário
-d / var / www / ftp / sysadmin /: a pasta que será a casa desse usuário, ou seja, para onde ele fará o upload das coisas

Ao entrar na linha anterior, será solicitada a senha desse usuário.

Eles devem ter criado anteriormente a pasta sysadmin dentro de / var / www / ftp /

4. Agora eles devem atualizar o arquivo de banco de dados do usuário, para isso entramos na pasta / etc / pure-ftpd / (cd / etc / pure-ftpd) e colocamos no terminal:

pure-pw mkdb

5. Agora devemos iniciar o Pure-FTPd, mas indicando que usaremos o arquivo de usuários virtuais, primeiro vamos parar o serviço:

/etc/init.d/pure-ftpd stop

Então, teremos certeza de que ele não iniciará normalmente por padrão:

chmod -x /etc/init.d/pure-ftpd

E agora começamos o serviço do nosso jeito:

/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb

6. Se eles tentarem usar um aplicativo como o Filezilla, verão que podem se conectar sem problemas com o usuário criado, porém não serão capazes de copiar nada ou criar diretórios, isso ocorre porque a pasta / var / www / ftp / sysadmin / (a ​​casa do usuário conforme o exemplo) não tem as permissões adequadas, será corrigido com:

chown -R 2001:2001 /var/www/ftp/sysadmin/

Lembre-se, o Uid e Gid 2001 é o mesmo do usuário que criamos, criamos com o comando do passo anterior 3 😉

7. Para interromper o serviço, basta pressionar [Ctrl] + [C] no mesmo terminal ou, em outro terminal, fazer um:

killall pure-ftpd

Agora vamos indicar que o serviço irá iniciar automaticamente com o sistema quando o servidor iniciar, para isso modificamos o arquivo /etc/rc.local e antes da última linha que diz "exit 0" colocamos o comando com o qual iniciamos o serviço FTP:

/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb

Em outras palavras, seria assim:

rc-local-puro-ftpd

Você pode editar o arquivo com o nano, vi ou seu editor preferido, ou se preferir, copie e cole este comando que irá facilitar o seu trabalho:

perl -pi -e "s[exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" /etc/rc.local && echo "exit 0" >> /etc/rc.local

... sim sim ... enquanto você lê, «facilitar», é um comando extenso sim, mas é simplesmente para substituir texto por perl e um eco inofensivo 🙂

8. Feito isso, reinicie o servidor e você verá que o serviço pure-ftpd foi iniciado e está pronto para funcionar 😀

Como deletar usuários?

Como eu disse antes, o comando puro-pw é o que precisamos para manipular os usuários, para excluir um usuário (por exemplo, sysadmin) vamos colocar o seguinte:

cd /etc/pure-ftpd/
pure-pw userdel sysadmin
pure-pw mkdb

Lembre-se de que sempre que você fizer uma alteração em um usuário, você deve gerar novamente o arquivo de banco de dados virtual dos usuários, ele está localizado em / etc / pure-ftpd / e é gerado / atualizado com pure-pw mkdb

Enfim amigos acho que não há muito mais a acrescentar, convido vocês a lerem a ajuda do pure-pw porque nos permite muito mais do que mostrei aqui (este é apenas um tutorial curto e quase básico).

Há um ou dois anos fui um daqueles que vinculava tudo ao OpenLDAP ou MySQL, mas com o passar do tempo percebi que tantas conexões com bancos de dados que são servidores geram um consumo que muitas vezes não podemos pagar, Por este motivo, a utilização de alternativas totalmente viáveis ​​como a utilização de bases de dados nos próprios arquivos da aplicação, como neste caso do Pure-FTPd's .pdb 🙂

Qualquer dúvida ou dúvida tentarei ajudar no máximo que puder.

Saudações e ... feliz hacking!


13 comentários, deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   elav. dito

    Que isso .. Documentação em caso de erros 😀

    1.    KZKG ^ Gaara dito

      E já estou escrevendo o post sobre como instalar o Nginx + MySQL + Spawn_FastCGI como fiz na Justiça, e graças a isso o blog funciona tão bem :)

      Espero tê-lo pronto para amanhã ou depois de amanhã.

  2.   Rodolfo dito

    Bom post; É engraçado recentemente que eu estava lutando para colocar meu servidor ftp mesmo que não conseguisse com vsftpd e fui para pure-ftpd e andei e se eu achar que estou faltando é colocar um exemplo de configuração clara a documentação é muito boa, mas pelo menos o básico . Criptografia, ou pelo menos a porta forwading, caso o roteador seja usado.
    A propósito, com este comando, pure-ftpwho permite que você saiba quem está conectado ao servidor e se algo está sendo baixado;).
    E segundo você, colocar um banco de dados para se conectar ao servidor não é tão necessário.

    1.    KZKG ^ Gaara dito

      Obrigado pelo comentário 🙂

      Sim, tive que explicar muitas coisas (todas de facto) na configuração, é que assumi que alguém que sabe gerir um servidor, que pretende instalar um serviço de FTP, que alguém não teria grandes problemas ao ler os comentários do ficheiro conf ^ - ^

      Saudações e mais uma vez, obrigado pelo comentário

  3.   tahuri dito

    Olá Muito bom post, utilizo (ou pelo menos por enquanto) vsftpd mas estou com alguns problemas com ele, e queria ver se aconteceu disso, você tem algum url ou doc ​​para ver como está a configuração?

    Muito obrigado };)

    1.    KZKG ^ Gaara dito

      Você pode ver a configuração aqui: http://ftp.desdelinux.net/pure-ftpd.conf
      Qualquer dúvida ou se você precisar de algo abra um tópico no fórum que teremos o maior prazer em ajudá-lo 🙂

  4.   Atheus dito

    Muito bom 😀

    Apenas uma pequena coisa, o comando perl está sem o símbolo ^, então ele não muda a outra saída 0 que está nos comentários:

    perl -pi -e "s[^exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" rc.local && echo "exit 0" >> rc.local

    lembranças

  5.   Omar dito

    Excelente, só tenho uma pergunta, como posso criar um usuário somente leitura? Eu uso o Centos 6.5, pureftpd, ispconfig e modo gráfico.

    Eu uso ispconfig apenas para ftp

    saudações e agradecimentos

  6.   monção dito

    Esta forma de instalar o pureftp é um ASCO 🙂 você deixa o serviço rodando como root, cria um usuário virtual e então muda as permissões no sistema de arquivos, e ufff um longo etc. A forma como o pacote é instalado está pronta para uso, não há necessidade de seguir todas essas etapas

    1.    elav. dito

      Você está convidado a publicar um guia menos "nojento". 😉

    2.    Sedlav dito

      O que você propõe? Colocar o servidor ftp para escutar em uma porta> 1024? Se o servidor ftp está escutando em sua porta padrão: 22 ele deve ser executado como root a menos que você modifique as capacidades do kernel, se o que você quer é melhorar a segurança use um framework MAC com SELinux outra variante seria fazer o jail / chroot do servidor ftp.

  7.   Ll Tailor dito

    O link para pure-ftpd.conf está inativo ou não existe. Você pode restaurá-lo?
    obrigado

  8.   Anexos dito

    2 anos depois, o link para o arquivo pure-ftpd.conf ainda está inativo 🙁