quarta-feira, 14 de junho de 2017

Configurando um servidor ftp local no Slackware



Neste tutorial configurei um servidor de ftp utilizando o proftpd para troca de arquivos entre o Smartphone e o computador e vice vesa no Linux Slackware utilizando somente a rede local da casa.
Será criando uma pasta fora do HOME para que todos membros da família que utilize o mesmo computador desktop usem a mesma pasta para enviar e receber arquivos para o Smartphone, sendo utilizando o login de usuário do sistema de cada um para poder transferir arquivos, ou seja todos os membros da família devem está cadastrado no sistema.
Obviamente você também poderá trocar arquivos com o seu servidor ftp local se possuir outro micro desktop ou notebook na rede local usando qualquer cliente de ftp de terminal ou modo gráfico.

Passos importantes:
Instalar o servidor Proftpd no seu Slackware pelo seu gerenciador de pacotes favoritos, caso ele não estiver instalado.
No Smartphone instale o app Gerenciador de arquivo da GM que possuir suporte a transferências de arquivos por ftp, sftp e ftps.

Download: Google Play

Criar a pasta única que será utilizada pelo servidor ftp para todos os usuários cadastro no sistema.

$ sudo mkdir /tmp
$ sudo chmod 777 /tmp

Editar o arquivo de configuração do Proftpd

$ sudo leafpad /etc/proftpd.conf

Comente a linha  "ServerType inetd" com o # (cequilha) e descomete a linha # "ServerType standalone"  apagando o #.

Linha da porta deve está configurada com a porta 21, caso desejar usar outra porta diferente também altere no seu firewall.
Port 21

Abaixo da linha "Port" adicione esta linha que será as portas passivas configuradas no seu firewall para o seu ftp server.
PassivePorts 49152  49162

Abaixo da linha "TransferLog /var/log/xferlog"  adicione as duas linhas abaixo:

DefaultRoot /ftp   (seu diretório de arquivos utilizado pelas transferências)
DefaultRoot ~  (prender o usuário não diretório configurado,                                         impedido de subir acima do mesmo)


Demais linhas deste arquivo deixe conforme está.

Como o comando proftpd somente pode ser executado pelo administrador do sistema (root) coloque no final do arquivo /etc/rc.d/rc.local a seguinte linha abaixo para que os outros usuários possam utilizar o serviço e a linha para deletar automaticamente todos os arquivos que tiver nesta pasta na próxima reinicialização do sistema, pois a pasta será utilizada apenas para cache de arquivos.

$ sudo leafpad /etc/rc.d/rc.local
proftpd
rm -rf /ftp/*

No seu script de firewall se estiver usando diretamente o iptables coloque as duas linhas abaixo:
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 49152:49162 -j ACCEPT

Onde 49152:49162 são as portas de transferências utilizadas pelo seu servidor ftp no modo passivo, que está declarada na linha PassivePorts do arquivo /etc/proftpd.conf.

Pronto agora o servidor proftpd será executado sempre na inicialização do sistema.
Para executar agora faça em uma janela de terminal: sudo proftpd  (reinicie antes o script de firewall)

Notas:
Para verificar se o proftpd está rodando execute:

$ ps xa | grep ftp
 1289 ?        Ss     0:00 proftpd: (accepting connections)

Ok, servidor rodando.

Se precisar para o processo do proftpd para testar novas configurações feita no arquivo de configuração ou por outro motivo.

$ sudo killall proftpd