Criar servidor FTP externo no Ubuntu 12.04

27 de jun de 2013 - Paulo Dias


Nesse tutorial vou mostrar como fazer as principais configurações necessárias para ter um servidor FTP externo, ou seja, acessível de qualquer lugar (que tenha internet :) Para esse tutorial estou usando o Ubuntu 12.04 e estou supondo que você tem um ip fixo ou sabe usar algum serviço como o no-ip.

O primeiro passo é instalar o proftpd, para isso digite no terminal:

 
sudo apt-get install proftpd
 

Com o proftpd instalado o próximo passo é alterar o arquivo /etc/proftpd/proftpd.conf, mas antes faça um backup da configuração padrão:

 
sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf-original

sudo nano /etc/proftpd/proftpd.conf
 

Nesse arquivo verifique se as seguintes linhas estão presentes e com essa configuração:

ServerName   "Nome para o seu servidor"
ServerIdent   on "Mensagem para os usuarios"
ServerAdmin   root@localhost
ServerType   standalone
DefaultRoot   ~
RequireValidShell  off

onde:

ServerName: É o nome do seu servidor. Ex. Servidor FTP
ServerIdent: É a mensagem que é mostrada quando um usuário vai conectar no servidor.
ServerAdmin: É o e-mail do administrador do servidor.
ServerType: É a forma que proftpd vai trabalhar.
DefaultRoot: É o diretório onde usuário do ftp vai ter acesso.
RequireValidShell: Diz se o usuário precisa ter um shell válido. Ex: bash, sh, csh...

Obs. Essas linhas não estão uma embaixo da outra no arquivo, você vai precisar procurar por elas.

Com o arquivo configurado crie um usuário especificamente para acessar o ftp, com os comandos:

sudo useradd -m -s /bin/false usuario_ftp
sudo passwd usuario_ftp

No primeiro comando a flag -m indica que deve ser criada uma pasta para esse usuario em /home/ e a flag -s especifica o shell desse usuário. (nesse caso sem shell ). No segundo comando é definida a senha do novo usuário.

Feito isso reinicie o proftpd com o comando:

sudo etc/init.d/proftpd restart

Pronto com isso seu servidor ftp já deve estar funcionando na rede interna( se não, deixe um comentário :). Para testar acesse a url ftp://localhost com seu navegador padrão. Com tudo funcionando na rede interna, agora é necessário configurar a parte externa.

Para que seja possível acessar o servidor ftp de fora da sua rede é necessário saber o seu ip externo, para isso acesse esse site http://www.whatismyip.com/ .

O mais provável é que o seu ip externo não seja fixo, toda vez que você desligar o seu modem você recebe um ip diferente, se esse for o caso, você vai precisar utilizar o no-ip ou algo semelhante... (no-ip??? clique aqui e veja como usar). Mesmo que seu ip não seja fixo e que você não tenha o no-ip, é possível continuar com esse tutorial, apenas verifique seu ip externo e não desligue nada.( se acontecer de algo ser desligado será necessário verificar o ip novamente)

Altere ou crie as seguinte linhas no arquivo /etc/proftpd/proftpd.conf

MasqueradeAddress             aqui.vaiSeu.ip.externo
PassivePorts                  65500 65534

Obs. Essas linhas se existirem podem ter um # no inicio, você precisa retirar esse caractere.

O seu ip externo na verdade corresponde ao seu modem/roteador, será necessário configurar esse aparelho de forma que ao receber uma conexão ftp ele envie para o seu computador(onde está o proftpd). Para isso é necessário saber o ip da rede interna do seu computador e do seu roteador. Você pode usar os comandos ifconfig e o route para localizar essas informações.

Para acessar seu roteador coloque o ip interno dele no seu navegador, você vai precisar saber o login e a senha para acessar as configurações ( se você não sabe tente usuário admin e senha admin ou clique aqui ). Procure por "Port Forwarding" ou algo parecido, você vai ter que fazer a seguinte configuração: Obs. troque o 192.168.0.20 pelo ip interno do seu computador

Obs. usei a porta 2121 porquê geralmente a porta padrão do ftp (21) é bloqueada pela operadora. Obs. o ip do computador deve ser configurado manualmente e não por dhcp (não sabe o que é isso? clique aqui)

Agora reinicie o proftpd novamente e pronto, você já deve ser capaz de acessar seu servidor com o ip externo. É necessário colocar o numero da porta junto do ip externo, Ex. ftp://xxx.xxx.xxx.xxx:2121

Bom, é isso. Dúvida? comenta ae :) !


Paulo Dias

Graduado no curso tecnólogo em análise e desenvolvimento de sistemas. Defensor do Software Livre e da democratização da informação. Possui as certificações Linux LPIC-1 e Java OCA. Atualmente exerce a função de coordenador técnico na área de telecomunicações.

Siga-me no Twitter


Tags: Linux