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

Publicado por Rick em 19/12/2012

[ Hits: 72.394 ]

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

Configurando o Redmine para enviar e-mails via Gmail

Ambiente seguro com chroot

ProFTPD - Enjaulando usuários no diretório HOME

Auditando com Snoopy

Nikto - Instalação e utilização

Leitura recomendada

Picocom - Gravando dados enviados via USB pelo Arduino

Deixando o seu KDE 3 com a cara do KDE 4

Montando imagens .iso e .nrg no Slackware

Chmod + dicas

Instalando o emulador (client) de Mainframes zOS (IBM) no Debian Lenny

  

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