Servidor FTP com ProFTPD - Instalação e configuração

Publicado por Rick em 19/12/2012

[ Hits: 72.489 ]

Blog: http://www.guiadoti.com

 


Servidor FTP com ProFTPD - Instalação e configuração



Abordaremos o serviço de FTP:

"O FTP significa File Transfer Protocol (Protocolo de Transferência de Arquivos), e é uma forma bastante rápida e versátil de transferir arquivos (também conhecidos como ficheiros), sendo uma das mais usadas na Internet. A transferência de dados em redes de computadores envolve normalmente transferência de arquivos e acesso a sistemas de arquivos remotos (com a mesma interface usada nos arquivos locais).

O FTP (RFC 959) é baseado no TCP, mas é anterior à pilha de protocolos TCP/IP, sendo posteriormente adaptado para o TCP/IP. É o padrão da pilha TCP/IP para transferir arquivos, é um protocolo genérico independente de hardware e do sistema operacional e transfere arquivos por livre arbítrio, tendo em conta restrições de acesso e propriedades dos mesmos."


Fonte: File Transfer Protocol - Wikipédia, a enciclopédia livre

Usaremos o ProFTP como servidor, que é uma das aplicações mais usadas do mundo.

Para instalá-lo, basta:

# aptitude install proftpd

Na hora da instalação você será questionado sobre qual modo de instalação do ProFTPD, selecione o modo Standalone, é o mais adequado. Depois de instalar o ProFTPD, iremos para seu arquivo de configuração, onde fica a mágica da coisa.

# pico /etc/proftpd/proftpd.conf

Podem observar que o arquivo de configuração é razoavelmente grande, mas bem fácil de entender.

A primeira coisa a fazer é modificar a linha "UseIPv6", deixando-a como "off", pois caso contrário, você terá que utilizar o endereço IPv6:

UseIPv6    off

A próxima linha a ser modificada é a do "ServerName", coloque o nome do seu servidor entre as aspas:

ServerName    "ODIN"

Agora adicionaremos a opção "AllowForeignAddress", esta linha é a responsável por autorizar as conexões externas. Se estamos usando um FTP, lógico que a intenção não é usá-lo internamente, então, essa linha deve estar presente no arquivo:

AllowForeignAddress    on

O "DefaultRoot" é o responsável por limitar o usuário à sua pasta HOME, ou seja, ele fica preso dentro do seu próprio HOME, não sendo capaz de navegar pelos diretórios no sistema:

DefaultRoot    ~

Outra opção é a "RequireValidShell", deixando ela como "off", o ProFTPD irá aceitar conexões de usuários que não possuem shell válida no sistema, consequentemente, usuários sem shell não podem utilizar o SSH, por exemplo:

RequireValidShell    off

A próxima opção importante é mudar a porta do ProFTPD, não esqueça de abrir a porta em seu firewall:

Port     58791

Para liberar a porta:

# iptables -A INPUT -p tcp --dport 58791 -j ACCEPT

Outra linha que não pode ser esquecida é a "PassivePorts", que define um intervalo de portas para a transferência dos dados. Será necessário você aceitar a conexão nessas portas em seu firewall:

PassivePorts     27000  28000

Liberando a conexão:

# iptables -A INPUT -p tcp --dport 27000:28000 -j ACCEPT

A próxima opção é a "MasqueradeAddress", que define o IP que ele responderá, adicione o IP do seu servidor aqui:

MasqueradeAddress     201.xx.86.xx

Mais uma opção é a "MaxInstances", que define a quantidade de conexões simultâneas que o servidor aceitará:

MaxInstances     20

Basicamente, a configuração é essa aí. Reinicie o ProFTPD:

# /etc/init.d/proftpd restart

Agora pode tentar logar com algum usuário válido no sistema:

FTP://ip.do.servidor:58791

Para criar os usuários, é interessante criá-los sem shell:

# adduser -shell /bin/false fulano

Bom, é isso aí, até a próxima.

Dica previamente publicada em:
Outras dicas deste autor

Controle de banda com HTB-tools

MySQL - Comandos básicos

Proxy com WPAD pelo DHCP

Auditando com Snoopy

Auditando com Lastcomm

Leitura recomendada

Resumo da História do Sistema Operacional Solaris

Samba, saiba para que serve essa grande ferramenta do Linux

Man pages em português

Webcams: luz, camera, ação!

Aplicações WEB vulneráveis para testes práticos

  

Comentários
[1] Comentário enviado por paulomorais1981 em 12/03/2014 - 16:07h

Olá, segui todos os passos recomendados acima, mas não consigo conectar de fora do meu servidor.

Se eu tento conectar via localhost, dá certo:
# ftp localhost
Connected to localhost.
220 ProFTPD 1.3.4a Server (Debian) [::ffff:127.0.0.1]
Name (localhost:root): paulo
331 Password required for paulo
Password:
230 User paulo logged in
Remote system type is UNIX.
Using binary mode to transfer files.


Agora se tento conectar pela rede, acontece o seguinte:
ftp meudominio.art.br
ftp: connect: Connection timed out
ftp> exit


Já desinstalei o proftpd e instalei o vsftpd e o problema é exatamente o mesmo.

Sabe onde posso estar errando?

[2] Comentário enviado por meio em 11/12/2014 - 09:33h

ola amigos, tem como configurar esse proftpd com espaco em disco por usuario, leitura/escrita por usuario?

[3] Comentário enviado por meio em 11/12/2014 - 09:51h

ola amigos, tem como configurar esse proftpd com espaco em disco por usuario, leitura/escrita por usuario??

[4] Comentário enviado por computocell em 22/09/2015 - 13:11h


[1] Comentário enviado por paulomorais1981 em 12/03/2014 - 16:07h

Olá, segui todos os passos recomendados acima, mas não consigo conectar de fora do meu servidor.

Se eu tento conectar via localhost, dá certo:
# ftp localhost
Connected to localhost.
220 ProFTPD 1.3.4a Server (Debian) [::ffff:127.0.0.1]
Name (localhost:root): paulo
331 Password required for paulo
Password:
230 User paulo logged in
Remote system type is UNIX.
Using binary mode to transfer files.


Agora se tento conectar pela rede, acontece o seguinte:
ftp meudominio.art.br
ftp: connect: Connection timed out
ftp> exit


Já desinstalei o proftpd e instalei o vsftpd e o problema é exatamente o mesmo.

Sabe onde posso estar errando?

Boa tarde
Em MasqueradeAddress 201.xx.86.xx
coloque o endereço dinamico.
Ex: MasqueradeAddress meudominio.art.br



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts