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 FTP com usuários virtuais, usuários que serão armazenados em um arquivo criptografado (nome de usuário, senha, configurações, etc.), tudo com o Pure FTPd.
Aqui vou mostrar como fazer isso… 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.
1. Primeiro precisamos instalar o Pure FTPd:
apt-get install pure-ftpd
A saída terminará mais ou menos assim:
2. O serviço já está ativado, mas é inútil se não o configurarmos corretamente. Digamos que temos um arquivo de configuração longo, mas quase padrão; ele contém as configurações usuais, definindo que usuários anônimos não são permitidos, etc.
cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf
3. Ok, vamos supor que nossa pasta FTP seja /var/www/ftp/ e que queremos criar um usuário que possa enviar informações para a pasta /var/www/ftp/sysadmin/. Vamos digitar 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.
4. Agora você precisa atualizar o arquivo de banco de dados de usuários. Para fazer isso, acesse a pasta /etc/pure-ftpd/ (cd /etc/pure-ftpd) e digite o seguinte no terminal:
pure-pw mkdb
5. Agora precisamos iniciar o Pure-FTPd, especificando 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 você tentar usar um aplicativo como o FileZilla, verá que consegue se conectar sem problemas com o usuário criado; no entanto, não conseguirá copiar nada nem criar diretórios. Isso ocorre porque a pasta /var/www/ftp/sysadmin/ (o diretório inicial do usuário neste exemplo) não possui as permissões adequadas. Isso pode ser corrigido com:
chown -R 2001:2001 /var/www/ftp/sysadmin/
Lembre-se, o Uid e Gid 2001 é o do usuário que criamos, criamos com o comando no passo 3 anterior
7. Para interromper o serviço, basta pressionar [Ctrl]+[C] no mesmo terminal ou, em outro terminal, faça o seguinte:
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:
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… como você leu, “facilitar”, é um comando extenso sim, mas é simplesmente substituir o 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 ser executado
Como deletar usuários?
Como mencionei anteriormente, o comando pure-pw é o que precisamos para manipular usuários. Para excluir um usuário (por exemplo, sysadmin), usaríamos 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 eu era um daqueles que vinculava tudo ao OpenLDAP ou MySQL, mas com o passar do tempo percebi que tantas conexões a bancos de dados que são servidores propriamente ditos geram um consumo que muitas vezes não podemos pagar, portanto, o uso de completamente alternativas viáveis como utilizar bancos de dados nos próprios arquivos da aplicação, como neste caso do Pure-FTPd .pdb
Qualquer dúvida ou dúvida tentarei ajudar no máximo que puder.
Saudações e ... feliz hacking!