Mostrando postagens com marcador Servidor Linux. Mostrar todas as postagens
Mostrando postagens com marcador Servidor Linux. Mostrar todas as postagens

quarta-feira, 2 de setembro de 2015

Squid + Sarg + IPtables - Configuração rápida

Neste artigo, sintetizei o resultado da minha instalação do server Ubuntu rodando, entre outros serviços, o Squid com relatório de acesso e regras no IPtables. Tudo isso de forma rápida e fácil, para iniciantes. Coloquei dicas para dar uma tunada no kernel, para otimizar o resultado do servidor.

Iniciando / Roteamento / Kernel
Iniciando
A máquina que configurei, foi um server Ubuntu 10.04 64 bits, dedicado para o seu fim, controlar o acesso na rede.

Hardware:

    Processador AMD FX-4300
    Memoria DDR3 8 GB
    HD 80 GB (humilde)
    2 placas de rede 10/100/1000


Segue o passo a passo de forma fácil e rápida. Forneci no decorrer do tutorial, todos os arquivos para ajudar.

Configure as placas eth0 e eth1. No meu caso, elas estavam desativadas.

Dê o comando, para subir as placas:

# ifconfig eth_ up

Dentro do interfaces, configure as placas a seu critério:

# nano /etc/network/interfaces

No meu caso, a eth0 10.0.0.10 e eth1 10.0.1.10, máscaras 255.0.0.0.

Dê o comando:

# /etc/network/networking restart

Para aplicar a configuração das placas.

Após isso instale o BIND 9, servidor de DNS:

# apt-get install bind9

Configure o resolv.conf para usar o DNS local, escrevendo dentro de /etc/resolv.conf:

nameserver 127.0.0.0

Vale lembrar que, quando reiniciar, este arquivo se reseta, assim como as regras do IPtables. Por isso, adicione dentro de rc.local, os comandos a executar em cada boot.

Neste caso, adicione a linha:

echo nameserver 127.0.0.0 > /etc/resolv.conf

Para gravar no boot o DNS.

Roteamento e algumas dicas de otimização do kernel
Agora, é hora de ativar o roteamento trocando o 0 por 1, no arquivo /proc/sys/net/ipv4/ip_forward.

Este arquivo também se reseta em cada boot, por isso, adicione novamente, em rc.local, a linha para gravar esta configuração no boot:

echo 1 > /proc/sys/net/ipv4/ip_forward

Instalar o DHCP, para que cada máquina que entrar na rede, assuma o IP e o gateway desejado, assim, aplicando as regras à mesma:

# apt-get install dhcp3-server

Segue o meu dhcpd.conf, eu sempre uso meus arquivos prontos e simplesmente copio e faço as devidas alterações, para mim, facilita muito e agiliza a configuração.

# nano /etc/dhcp3/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.0.0.0;
option broadcast-address 10.255.255.255;
option routers 10.0.0.10;
option domain-name-servers 10.0.0.10;
subnet 10.0.0.0 netmask 255.0.0.0 {
   range 10.0.1.1 10.0.1.100;

}

Li diversas mudanças de kernel em minha pesquisa, porém, sintetizei as que retornam melhores resultados e são fáceis de fazer, são elas:

1. Começar aumentando a quantidade de arquivos abertos, o padrão é 1024. Altera-se com:

# ulimit -n 16384

2. Confirmando a mudança com o comando ulimit -a, na linha com o (-n), caso continue 1024 refaça o comando.

3. Outra mudança boa aplicada, foi aumentar as conexões simultâneas, escrevendo ao final do arquivo /etc/sysctl.conf as seguintes linhas:

####### TUNNING PARA SQUID ######## # Reduzir o tempo de limpeza da tabela ARP
# Expandir o seu tamanho
net.ipv4.neigh.default.gc_interval = 15
net.ipv4.neigh.default.gc_thresh1 = 4096
net.ipv4.neigh.default.gc_thresh2 = 8192
net.ipv4.neigh.default.gc_thresh3 = 16384

# Aumento do numero de conexoes simultaneas
# Reducao do tempo de espera entre as conexoes
net.core.somaxconn = 20480
net.core.netdev_max_backlog = 2048
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_max_syn_backlog = 2048
###############################

Após escrito, dar o comando sysctl -p, para ativar as mudanças.

Pronto, o tuning no kernel para otimizar o Squid está pronto.

Agora, continuamos.

Configurando o Squid
Agora, o server está pronto para receber o serviço principal, o Squid.

Sintetizei os meus estudos em um arquivo muito fácil e intuitivo, espero que agradem a todos e fique de fácil entendimento.

Instale o Squid:

# apt-get install squid

Alterar o /etc/squid/squid.conf, pelo arquivo pronto abaixo:

################################################
#####          Porta, Nome e Cache         #####
################################################
#
http_port 3128 transparent
visible_hostname APA-Proxy
#
## Criar cache na memoria de 4 GB ##
cache_mem 4096 MB
maximum_object_size_in_memory 2 MB
maximum_object_size 4 MB
minimum_object_size 10 KB
cache_swap_low 80
cache_swap_high 95
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
#
################################################
#####                 Log                  #####
################################################
#
cache_access_log /var/log/squid3/access.log
cache_store_log /var/log/squid3/store.log
cache_log /var/log/squid3/cache.log
## Criar um cache em disco de 5 GB ##
cache_dir aufs /var/spool/squid3 5120 16 256
#
################################################
#####                 ACLs                 #####
################################################
#
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
#Bloquear as portas não sitadas
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#
################################################
#####          Direitos de Acessos         #####
################################################

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
#
################################################
##            CONTROLE DE BANDA               ##
################################################
#
#acl livre src 192.168.0.0/255.255.255.0
#acl extensoes url_regex -i .exe$ .mp3$ .vqf$ .tar.gz$ .gz$ .rpm$ .zip$ .rar$ .avi$ .mpeg$ .mpe$ .mpg$ .ram$ .rm$ .iso$ .raw$ .wav$ .mov$

#delay_pools 2
#
# Classe 1 - Acesso a Internet a 512k
#
# delay_class 1 2
# delay_parameters 1 -1/-1 69000/69000
#
# Classe 2 - Download a 180k
#
# delay_class 2 2
# delay_parameters 2 -1/-1 22500/22500
#delay_access 1 allow livre
#delay_access 2 allow extensoes
#
################################################
####         Liberando IP'S                         ####
################################################
#
acl liberados src "/etc/squid/liberados.conf"
#
http_access allow liberados
#
################################################
####           BLOQUEAR PALAVRAS            ####
################################################
#
acl bloquear_palavras url_regex -i "/etc/squid3/bloqueios.conf"
#
http_access deny bloquear_palavras
#
################################################
#####              Rede Local               ####
################################################
acl redelocal src 10.0.0.0/255.0.0.0
#
################################################
####           Liberando as Redes           ####
################################################
http_access allow localhost
http_access allow redelocal
#
################################################
####        Bloqueando todo o Resto         ####
################################################
http_access deny all
http_access deny bloquear_palavras
#######################################################
####            Diretorio de erro com imagem personalizada   ####
################################################
error_directory /usr/share/squid3/errors/portuguese

#######################################################

O arquivo acima, traz as configuração mais fáceis e mais utilizadas do Squid, deve-se trocar os IPs pelos seus próprios, e não esquecer de mudar o nome de host logo abaixo da porta.

Caso queira personalizar mais, pode alterar a seu gosto os caches, pois, nem todas as máquinas tem este hardware disponível, fica a seu critério.

Você deverá criar 2 arquivos de texto:

    liberados.conf
    bloqueios.conf


# nano "/etc/squid/liberados.conf"    # Neste coloque nos IPs que ficam fora do bloqueio, pois na minha empresa tenho as máquinas da gerência aonde excluo elas do bloqueio.

# nano "/etc/squid/bloqueios.conf"    # Neste deve-se colocar as palavras que deseja bloquear quando aparecerem na URL.

Outra linha relevante, é a ERROR_DIRECTORY, explicaremos ela, logo mais na página do Sarg.

Apache 2 / Sarg com página de bloqueio personalizada
Instale o Apache 2, que vai servir a página para visualizar o relatório de acesso do Squid:

# apt-get install apache2

Instale o Sarg, o nosso visualizador de relatório do Squid:

# apt-get install sarg

No Apache, não se configura nada, somente usamos a pasta compartilhada dele para enviar nossos arquivos do Sarg.

Configurando o Sarg com página personalizada
Entre no sarg.conf:

# nano /etc/sarg/sarg.conf

Edite a linha output_dir, da forma que fique assim:

output_dir /var/www/squid-reports

Dentro do mesmo arquivo, procure a linha que esteja escrito "RELATORIO DE ACESSO" e personalize. No meu caso: "Relatorio de acesso [nome da empresa]".

Desta forma, o Squid está configurado.

Agora, a parte que eu acho a mais legal: criar uma página personalizada de bloqueio. Quando os usuários tentarem acessar uma página bloqueada, aparece a página de erro padrão do Squid, ensinarei a mudar-la para aparecer algo com a sua cara, pois podes criar uma página pessoal bem amigável.

Dentro do squid.conf da página anterior, a última linha era uma "ERROR_DIRECTORY". Ela indica a pasta de erro a buscar um arquivo HTML, a ser mostrado na página de bloqueio.

Porém, se a pasta indicada na linha não existe, crie ela:

# mkdir /usr/share/squid/errors/portuguese

Dentro dessa pasta, deve conter um arquivo de nome "ERR_ACCESS_DENIED", um arquivo de texto com o seu código HTML, vou postar o meu arquivo pronto para poderem editar:


A Pagina que voce esta tentando acessar esta bloqueada!!!




Se souber HTML, faça um arquivo como quiser, esta é a parte legal desta página de bloqueio, o que você colocar aí, aparece na hora do bloqueio.

Colocando imagens, precisa usar da seguinte forma: http://ipdoservidor/nomedaimagem

No meu caso, tenho um arquivo de imagem apontado. Sempre que tiver imagens, devem ser colocados na pasta /var/www/, a pasta pública que o Apache cria. Se não estiver dentro dela, não aparece.

Finalizando com IPtables
Agora tudo pronto, serviços iniciados, página de bloqueio ativa, servidor DNS e DHCP resolvendo e distribuindo perfeitamente. Só falta mandar que as conexões sejam direcionadas à porta do Squid para começar a ativar os bloqueios, e definir a regra de NAT GLOBAL.

Inserindo a NAT GLOBAL:

# iptables -t nat -A POSTROUTING -o eth(internet) -p tcp -j MASQUERADE

Inserindo a regra de redirecionamento da 80 para a 3128:

# iptables -t nat -A PREROUTING -s (seu net id/mascara) -p tcp --dport 80 -j REDIRECT --to-port 3128

Pronto, seu proxy está ativo, rápido e fácil.

Apenas de quebra, vou deixar a linha para DROPAR o Facebook e impedir o acesso via IPtables, já que o maior objetivo dos Squids, são sempre as redes sociais:

# iptables -A POSTROUTING -s (sua rede / mascara) -m string --algo bm --string "facebook.com" -J DROP

Conclusão
Espero ter ajudado quem, assim como eu, teve muitos problemas com o Squid, pois sintetizei tudo da maneira mais fácil possível.

Com habilidade, este esquema está pronto em 30 minutos, no máximo 1 hora, se der algum imprevisto.


Post Original:

http://www.vivaolinux.com.br/artigo/Squid-Sarg-IPtables-Configuracao-rapida/
Por: Lucas Garcia Moreira em 13/06/2014

domingo, 30 de agosto de 2015

Instalação e configuração do LTSP 5 no Ubuntu 11.04

O LTSP (Linux Terminal Server Project) é uma solução baseada na ideia do thin client, onde o cliente busca em um servidor o sistema operacional para inicializar o serviço. O propósito do LTSP é utilizar computadores com menos recursos de processamento como clientes, acessando um servidor e rodando neste servidor todo o processamento.

Funcionamento do LTSP e Instalação do Servidor

Como é o Funcionamento do LTSP

O primeiro requisito para que o LSTP funcione bem é ter uma rede de boa qualidade. Como tudo ocorre remotamente, ter equipamentos de qualidade é fundamental para o tráfego dos dados entre o servidor e os clientes.

O funcionamento do LTSP depende de duas variáveis: O servidor e o cliente.

O cliente é a parte mais simples, para seu funcionamento é necessário apenas que ele seja capaz de iniciar o boot pela placa de rede. O Servidor por sua vez precisa de alguns serviços rodando para que seja capaz de prover o LTSP.

O processo de inicialização do LTSP começa com o boot no cliente. Ao dar o boot a partir da placa de rede ele procura um servidor de IP. O servidor de IPs envia para o cliente o IP. De posse do IP começa a troca de informações entre o servidor e o cliente. O servidor envia para o cliente o kernel através do serviço FTP. Com o kernel, o X é habilitado, disponibilizando a interface gráfica.

O usuário loga no sistema e seu $HOME, o seu diretório pessoal é montado através do NFS. A transferência de dados entre o servidor e o cliente é feita através do ssh, criando uma túnel criptografado entre os dois.

A Instalação do Servidor

O LTSP tem pacotes para várias distribuições, nosso servidor será montado a partir de um Linux Ubuntu 11.04. A primeira coisa que faremos é criar a estrutura básica de serviços. Vamos instalar o dhcp3-server, o tftp-hpa, o nfs-kernel-server e o openssh-server.

A instalação dos pacotes:

# apt-get install dhcp3-server
# apt-get install tftp-hpa
# apt-get install nfs-kernel-server
# apt-get install openssh-server

A instalação do LSTP propriamente dito é feito a partir do pacote ltsp-server-standalone que disponibilizará uma série de comandos para sua instalação, sendo:
  • ltsp-build-client;
  • ltspfs;
  • ltsp-info;
  • ltsp-update-image;
  • ltsp-update-sshkeys;
  • ltsp-chroot;
  • ltspfsmounter;
  • ltsp-localapps;
  • ltsp-update-kernels.
Depois de instalar o ltsp-server-standalone vamos usar o comando:
# ltsp-build-client

Para criar o ambiente chroot em "/opt/ltsp" onde o LTSP rodará, o comando é:
# ltsp-build-client --arch="i386"

o parâmetro --arch="i386" criará a estrutura do LTSP compilada para a versão i386. É bom especificar a arquitetura do LTSP porque se o servidor for 64 bits ele instalará o "ltspamd64". Como a maioria dos computadores clientes são todos 32 bits, se o LTSP for para 64 bits haverá erro na execução.

Este comando irá criar o diretório "/opt/ltsp". Quando o cliente montar o Linux depois do boot, ele montará este Linux e não o o sistema operacional do servidor. Isto se chama chroot.

Esta parte é a mais demorada pois o ltsp-build-client busca do mirror do LTSP toda a estrutura montada. Depois tudo estará praticamente pronto, é só fazer as configurações finais dos serviços para que tudo fique pronto. 

Configurando o LTSP - Alterando os Arquivos de Configuração

O primeiro arquivo de configuração que vamos alterar é o "/etc/dhcpd.conf". Este arquivo é o responsável pela configuração do servidor de IPs. Quando o computador cliente der o boot pela placa de rede ele procurará um servidor de IPs.

A configuração deste arquivo é bem simples, vejamos seu conteúdo.
### inicio do bloco
subnet 192.168.0.0 netmask 255.255.255.0{
  range 192.168.0.150 192.168.0.200;
  option domain-name "sua.empresa";
  option domain-name-servers 192.168.0.1;
  option broadcast-address 192.168.0.255;
  option routers 192.168.0.1;
  option subnet-mask 255.255.255.0;
# linha 8
  option root-path "/opt/ltsp/i386";
  if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
    filename "/ltsp/i386/pxelinux.0";
  }
  else{
    filename "/ltsp/images/i386.img";
  }
}

### fim do bloco

Explicando:
  • A linha número 1 indica a faixa de ips e a máscara de rede que o dhcp trabalhará;
  • A linha número 2 disponibiliza a faixa de ips para serem usados na rede;
  • A linha número 3 cria o domínio para as máquinas (é opcional);
  • A linha número 4 indica o DNS usado pela rede;
  • A linha número 5 indica o broadcast da rede;
  • A linha número 6 indica o roteador da rede;
  • A linha número 7 indica a sub-máscara de rede;
  • A linha número 9 indica onde está o ltsp;
  • O bloco iniciado a partir da linha número 10 indica onde está o arquivo de inicialização do sistema:
    O "pxelinux.0" é usado para chamar o kernel e enviá-lo para o cliente. A linha "filename "/ltsp/i386/pxelinux.0"" não se refere ao diretório "/opt/ltsp/i386". Obs.: Como este arquivo é enviado por um servidor ftp para o cliente, quem gerencia é o tftp-hpa. O diretório onde está o pxelinux.0 é "/var/lib/tftpboot/ltsp/i386". Como o diretório "/var/lib/tftpboot/" é o diretório raiz do tftp-hpa, só é necessário inserir o caminho derivado, ou seja, "/ltsp/i386/pxelinux.0". A configuração do tftp-hpa será visto na sequência.
Algumas considerações sobre o dhcpd (servidor de ips):

Se o servidor tiver mais de uma placa de rede, uma para a conexão com a internet e outra para a conexão com os clientes, cada uma das placas deverá ter uma faixa de ips diferentes. Não é possível ter duas interfaces de rede na mesma faixa de ips no micro.

Neste caso, o dhcp irá "escutar a placa de rede que está conectada à rede dos clientes ltsp.

Se o servidor tiver apenas uma placa de rede, os clientes ltsp ficarão na mesma faixa de ips da rede. Isto pode trazer um pequeno inconveniente, qualquer micro que for conectado na rede poderá receber o serviço ltsp se a BIOS estiver configurada para começar a sequência de boot com a placa de rede.

Configurando o TFTP-HPA

O tftp-hpa é configurado através do arquivo "/etc/default/tftpd-hpa". Vejamos seu conteúdo.
### INÍCIO DO BLOCO
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
RUN_DAEMONS="yes"

### FIM DO BLOCO

Vejamos sua configuração:
  • A linha número 1 indica o nome do serviço para a rede;
  • A linha número 2 indica o diretório raiz do tftp-hpa;
  • A linha número 3 indica quais endereços da internet ele atenderá, alem da porta. Observe que o endereço é 0.0.0.0, ou seja, ele está configurado para receber conexões de qualquer lugar da internet, qualquer IP. Para maior segurança, pode-se especificar qual rede ele atenderá, a mesma rede configurada no "/etc/dhcp/dhcpd.conf", 192.168.0.0. Apesar de ser um serviço ftp, a porta porta utilizada não é a mesma do serviço ftp padrão, que usa a porta 21;
  • A linha número 4 força o cliente a ir diretamente para o diretório especificado, criando uma camada de segurança. O cliente não conseguirá alterar o diretório que foi especificado na linha 2, impedindo que ele tenha acesso a arquivos indevidos;
  • A linha número 5 indica que o tftp trabalhará como daemon.

Configuração do arquivo /etc/inetd.conf

O arquivo "inetd.conf" é o arquivo de configuração dos serviços de internet. Neste foi escrita esta linha:
2000    stream  tcp nowait  nobody /usr/sbin/tcpd /usr/sbin/nbdrootd /opt/ltsp/images/i386.img

Esta linha configura o diretório onde está a imagem chroot compactada do sistema. O LTSP mantem uma copia do sistema atualizada que será enviada para cada cliente. Toda vez que o sistema for modificado como na instalação de um novo programa a imagem deve ser refeita com o comando:
# ltsp-update-image -a i386

Onde o parâmetro "-a i386" informa se a versão do sistema a ser reconstruído será 32 ou 64 bits.

A imagem do sistema está em "/opt/ltsp/images/i386.img".


Mais Configurações e Considerações

Configurando o NFS

O NFS é o serviço que disponibilizará os diretórios utilizados pelo ltsp. Como o ltsp roda remotamente, utilizando o protocolo TCP, é necessário compartilhar os diretórios que serão acessados.

Observe as linhas abaixo:

/opt/ltsp/i386 192.168.0.0(rw,no_subtree_check)
/home 192.168.0.0(rw,no_subtree_check)

A primeira linha compartilha (exporta) o diretório raiz do ltsp, "/opt/ltsp/i386", para a rede 192.168.0.0 com a permissão de leitura e escrita (rw). O "no_subtree_check" configura o nfs para não verificar a estrutura de diretórios. Isto aumenta a velocidade do nfs.

A segunda linha compartilha (exporta) o diretório dos usuários, "/home", para a rede 192.168.0.0 com as mesmas permissões de acesso do diretório do ltsp.

Algumas observações sobre a configuração do NFS:

A configuração do IP ou IPs que serão liberados para o acesso aos diretórios compartilhados deve estar em conformidade com as informações contidas no servidor de IPs.

Neste exemplo toda a rede está liberada para o acesso pois os computadores clientes estão em uma rede separada. Numa situação onde os clientes ltsp estão na mesma rede de outros micros, talvez seja prudente criar uma máscara de rede especificamente para esta rede ou até mesmo liberar individualmente cada um dos micros que estarão no ltsp configurando o IP individualmente.

Colocando os Clientes LTSP Para Funcionarem

Depois da configuração e verificação de cada um dos serviços que compõem o ltsp é hora de colocar os clientes para funcionarem.

Tomando por base que o computador cliente tem a opção de inicializar a sequência de boot pela placa de rede é só alterar a BIOS para que o primeiro dispositivo de boot seja a placa e rede.

Depois de ligar o computador é só esperar. Observe o vídeo:


Eu utilizei neste artigo um cliente ltsp rodando no vmware configurado como bridge dando o boot pela interface de rede.

Considerações Finais

O ltsp é uma solução para o uso de computadores com menor capacidade de processamento. Com um servidor dando suporte aos clientes, um parque de computadores antigos podem utilizar programas que não conseguiriam ser processados nos seus respectivos processadores.

No próximo artigo veremos configurações mais detalhadas do ltsp.



Créditos:
http://www.vivaolinux.com.br/artigo/Instalacao-e-configuracao-do-LTSP-5-no-Ubuntu-11.04
Por: hermes nunes pereira junior em 11/09/2011 

segunda-feira, 2 de março de 2015

Servidor FTP externo no Ubuntu 12.04 - Criação e configuração

Neste artigo, vou mostrar como fazer as principais configurações para ter um servidor FTP externo, ou seja, acessível de qualquer lugar (que tenha Internet). Estou usando o Ubuntu 12.04 e supondo que você tenha um IP fixo ou sabe usar algum serviço, como o NO-IP.

Instalação e configuração

Instalando e configurando o proftpd

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 o ProFTPD vai trabalhar.
  • DefaultRoot: É o diretório onde o 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 usuário 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 com seu navegador padrão: ftp://localhost

Com tudo funcionando na rede interna, agora vou mostrar como configurar para ter acesso de forma externa.

Habilitando o acesso externo

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:
O mais provável, é que o seu IP externo não seja fixo, toda vez (ou quase) que você desligar o seu modem, ele 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 início. 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. 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, porque geralmente a porta padrão do FTP (21) é bloqueada pela operadora.
  • O IP do computador deve ser configurado manualmente e não por DHCP.

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 aí! :) 


Por: Paulo Dias em 02/06/2014 | Blog: http://www.prminformatica.com.br 
http://www.vivaolinux.com.br/artigo/Servidor-FTP-externo-no-Ubuntu-1204-Criacao-e-configuracao/

Portfolio Individual - Curso Superior de ADS - VI Semestre

SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS WANDERLEY NUNES CRISTO PRO...