OSPF no Mikrotik se trata de uma vídeo aula que criamos no Youtube para tentar passar o máximo de informações em um menor espaço de tempo sobre a configuração do protocolo de roteamento OSPF. Além disso, toda a configuração é realizada em um Mikrotik, portanto, quem tem dificuldades para realizar esse tipo de configuração poderá entender o processo.

Vamos criar uma rede com 8 Mikrotiks, sendo que, 4 deles estarão dentro da área backbone do OSPF (que seria a área principal da sua rede). Os outros 4 MKs estarão dentro de áreas individuais que simularemos em nosso vídeo tutorial.

Vou tentar utilizar as melhoras práticas de configuração de redes para que você não aprenda nada de maneira incorreta. Claro que isso elevou um pouco a duração do vídeo, porém, creio que você não vai perder seu tempo ao assistir.

Sem mais delongas, vamos ao vídeo tutorial abaixo.

OSPF no Mikrotik

Assista a seguir:

Link do vídeo: https://www.youtube.com/watch?v=GKpcscxBEOc

Espero que tenha gostado e até a próxima!

Se você tem um servidor Linux disponível na web, provavelmente deve ter acesso a ele por SSH (Secure Shell). Apesar de um método bastante seguro, se não configurado corretamente seu servidor pode ser alvo de ataques de brute force para acesso não autorizado. Existem várias maneiras para contornar essa situação, sendo uma das mais comuns é a técnica de proibir o acesso por senha, permitindo apenas chaves públicas.

Se o acesso por chave pública estiver ativo, será necessário realizar a combinação de uma chave no computador cliente e no servidor. Clientes só serão autenticados se a combinação das chaves for positiva. A autenticação será feita sem a necessidade de uma senha, mas você também poderá aumentar ainda mais a segurança da chave pública protegendo-a com uma senha, nesse caso será necessário digitar uma senha para destravar a chave, só então a combinação da chave cliente com a do servidor serão verificadas.

Neste tutorial vou detalhar como gerar uma chave pública em computadores cliente com Linux e Windows, porém, no Windows você irá precisar de um software chamado Putty.

Então vamos lá.

Gerando a chave no Linux

Se você tem um computador com Linux que faz acesso ao seu servidor remoto via SSH, acesse o terminal e digite o seguinte:

ssh-keygen -t rsa

Você será requisitado a escolher o arquivo onde a chave será gravada (normalmente em ~/.ssh/id_rsa) não precisa mudar isso se não quiser, simplesmente pressione “ENTER”.

Em seguida, será necessário digitar uma senha para a chave pública. Se quiser, poderá deixar a chave sem uma senha, neste caso o acesso ao servidor será direto, sem a necessidade de senha alguma (só do computador onde você está gerando a chave, é claro). Após escolher ou não digitar uma senha, você precisará confirmar digitando novamente a mesma (salvo se você tiver deixado uma senha em branco).

Feito isso está pronto, se quiser checar para saber se sua chave foi criada com sucesso, digite:

ls ~/.ssh

Você verá algo assim:

id_rsa  id_rsa.pub  known_hosts

Agora será necessário copiar a chave pública que você acabou de gerar para o servidor, para isso digite o seguinte:

ssh-copy-id [email protected]_do_host

Após digitar o comando acima, será necessário entrar com a senha do usuário escolhido para acesso no servidor remoto.

Observação: Você também poderá copiar a chave pública manualmente para o arquivo “~/.ssh/authorized_keys” da home do usuário desejado no servidor remoto (você vai ver como fazer isso mais adiante quando formos falar do Windows).

Após entrar com a chave pública no cliente e copiá-la no servidor (conforme descrito acima) seu acesso agora poderá ser baseado apenas na chave, com isso você poderá remover o acesso via senha do servidor para aumentar a segurança. Veremos mais sobre isso mais adiante neste tutorial quando formos configurar o arquivo /etc/ssh/sshd_config.

Gerando a chave com o Putty para Windows

Conforme descrevi, para configurar uma chave pública no Windows vamos precisar de um software que tenha suporte para isso, em minha opinião o melhor de todos é o Putty (para acesso ao servidor) e o Puttygen para gerar a chave. Faça o download do pacote no site putty.org. Observe que existe um arquivo compactado que trás todos os programas relacionados com o Putty de maneira portátil, ou como instalador.

Se você baixou a pasta compactada (.zip) extraia seu conteúdo, caso tenha utilizado o instalador, faça a instalação do Putty no seu Windows. De qualquer maneira que você tenha escolhido, deverá ver um programa chamado “Puttygen”, este é o programa que irá gerar a chave pública para seu Windows.

Abra o Puttygen e clique em “Generate”; Não pare de mexer o mouse até que a chave tenha sido criada.

Chave gerada com o Puttygen

Chave gerada com o Puttygen

Em “Key passphase” e “Confirm passphrase”, digite uma senha conforme preferir. Este campo também pode ser deixado em branco, mas você terá menos segurança caso o faça, pois não existirá nenhum senha para acesso ao seu servidor.

Quando terminar, você vai precisar da chave privada, já que ela servirá para você autenticar seu computador ao servidor quando precisar fazer o acesso. Portanto, clique em “Save private key” (já já vamos utiliza-la). Sem fechar a janela, copie o texto que está no quadrado “Key”, começando com “ssh-rsa”.

Essa é a chave que vamos colar dentro servidor remoto, no arquivo "autorized_keys"

Essa é a chave que vamos colar dentro servidor remoto, no arquivo “authorized_keys”

Agora utilize o Putty para abrir seu servidor:

Troque os dados pelos dados do seu servidor

Troque os dados pelos dados do seu servidor

Já dentro do seu servidor (com o usuário desejado), digite:

vi ~/.ssh/authorized_keys

Cole o texto que você copiou anteriormente na última linha (se não tiver nada nele, pode ser na primeira mesmo). Note que este arquivo pode não existir, mas o comando acima irá criá-lo.

Se você tiver dificuldades com o “vi”, troque por “nano” no comando, ficando assim:

nano ~/.ssh/authorized_keys

Nano é um editor de texto mais simples para ser utilizado.

Após a inclusão da chave, salve o arquivo e volte para o seu computador cliente com o Windows.

Para realizar o acesso, abra a chave privada que você achou com o programa “PAGEANT.EXE” (também pertence ao pacote do Putty). Quando você abrir a chave, o programa irá requisitar que você digite a senha que escolheu quando a gerou, digite-a corretamente e verá o seguinte símbolo perto do relógio do Windows.

Ícone do Putty Agent indicando que você pode acessar seu servidor

Ícone do Putty Agent indicando que você pode acessar seu servidor

Agora é só voltar ao Putty e acessar seu servidor normalmente.

Configurando o arquivo /etc/ssh/sshd_config

Agora que você já tem a chave de segurança pública e já realizou o teste para acesso ao servidor sem ter a necessidade de digitar uma senha, vamos remover essa opção para que ele se torne mais seguro.

Atenção: Não continue se não conseguiu criar e testar a chave pública com sucesso em pelo menos um sistema operacional, caso contrário você ficará sem acesso SSH no seu servidor.

Digite o seguinte dentro do servidor remoto:

sudo nano /etc/ssh/sshd_config

Já dentro do arquivo de configuração, edite as linhas indicadas abaixo:

# ...
PermitRootLogin no
# ...
PubkeyAuthentication yes
# ...
PasswordAuthentication no
# ...

A primeira linha remove completamente o acesso do root ao servidor SSH, a segunda permite o acesso via chave pública e a terceira remove o acesso via senhas de texto. Pense bem antes de seguir a diante, isso é uma medida de segurança, caso algo dê errado, não terá como voltar atrás.

Pressione CTRL+O para salvar e digite:

sudo service ssh restart

Para reiniciar o servidor SSH. Por fim, digite:

exit

Para sair e tente refazer o acesso. Se tudo correu conforme descrevi, você conseguirá acessar o servidor sem a necessidade de digitar a senha do usuário, utilizando apenas a chave pública.

Lembre-se que essa chave agora é como se fosse a sua senha, portanto, não deixe qualquer um acessar seu computador ou copiá-la.

Finalizando

Este foi um tutorial relativamente simples, mas pode ser que gere dúvidas para muitos usuários. Caso as tenha, não hesite em deixar nos comentário.

Até o próximo.

Configurar um DHCP Server no Mikrotik não tem muito segredo, se você entende pelo menos um pouco sobre redes, não terá nenhuma dificuldade em configurar o Dynamic Host Configuration Protocol  ou Protocolo de configuração dinâmica de host.

Existem duas maneiras para que você possa configurar efetivamente um DHCP Server no Mikrotik: utilizando um wizard que faz tudo automaticamente por você ou fazendo tudo manualmente. Neste tutorial você vai aprender a fazer a configuração utilizando as duas maneiras.

Além disso, também vou mostrar como adicionar endereços estáticos para que o servidor DHCP ofereça sempre o mesmo endereço para determinado MAC Address. Isso será útil para a configuração de servidores e equipamentos que não podem ter seu endereço IP alterado.

Enfim, vamos falar sobre praticamente tudo o que você precisa saber antes de configurar um servidor DHCP no seu Mikrotik, e o melhor, o motivo pelo qual você está configurando tal propriedade.

Então vamos lá!

DHCP Server no Mikrotik

Vamos utilizar o Winbox, que é um programa proprietário da Mikrotik e que o pessoal utiliza para configurar suas RouterBoards. A versão do Winbox utilizado no tutorial é a v3.0rc12, que pode ser encontrada na página de downloads do site da Mikrotik.

A RouterBoard (ou RB) utilizada para todo o processo será uma RB433 na versão 6.29.1 do RouterOS. Tal versão também pode ser encontrada na página de downloads do site da Mikrotik.

Abra a sua RB utilizando o Winbox e siga os passos abaixo.

Adicionando um IP

Adicione um endereço de IP na interface da RouterBoard que disponibilizará os endereços dos computadores da rede. Este endereço IP será o gateway da sua rede.

Para adicionar, clique em “IP” -> “Addresses” -> no sinal de mais (+) azul. Na nova janela que abriu, coloque o endereço/máscara de sub-rede. Para o meu exemplo, vou adicionar 192.168.2.1/24 (essa máscara tem o endereço 255.255.255.0 e suporta até 254 hosts).

Se você tiver dúvidas sobre redes, siga o nosso tutorial Cálculo de sub-redes IPv4.

Em “Interface”, escolha a interface que está conectada aos computadores clientes, como mostro na imagem abaixo:

Adicionando IP na interface que terá o servidor DHCP

Adicionando IP na interface que terá o servidor DHCP

Pronto, agora o Mikrotik vai adicionar uma rota para a rede do endereço IP que você escolheu automaticamente.

Agora você tem duas maneiras para configurar o servidor DHCP, a primeira que vou mostrar (e mais simples) é utilizando um wizard.

Configurando o DHCP-Server pelo wizard

Clique em “IP” – “dhcp-server” – “DHCP Setup”.

IP - dhcp-server - DHCP Setup

IP – dhcp-server – DHCP Setup

Escolha a interface que distribuirá os endereços IP dentro da sua rede. Provavelmente, a mesma interface que você configurou o endereço IP no tópico anterior.

Interface do servidor DHCP

Interface do servidor DHCP

Ao escolher a interface, o RouterOS irá selecionar a rede que está naquela interface automaticamente para você, portanto, você só terá o trabalho de clicar em “Next”.

Screenshot_4

Ainda de acordo com os dados de IP e rede configurados na Interface selecionada, o RouterOS agora irá selecionar o IP da interface como gateway da rede do DHCP.

Screenshot_5

Por padrão, o RouterOS irá selecionar todos os IPs disponíveis dentro da rede do DHCP para o pool de endereços, você poderá modificar isso se quiser na tela da imagem abaixo.

Screenshot_6

Os servidores DNS da rede do seu servidor DHCP ficam a seu critério, no exemplo abaixo estou utilizando os DNSs públicos do Google.

Screenshot_7

 

O “Lease time” é o tempo que cada equipamento da rede irá ficar com o IP disponibilizado pelo servidor DHCP. Se você não entende nada sobre isso, deixe no padrão. Basicamente, ao chegar na metade desse “Lease time” o equipamento cliente irá requisitar ao servidor DHCP para continuar com o mesmo endereço. Se tudo estiver OK, o servidor DHCP pode conceder o mesmo IP pelo mesmo tempo inicial. Isso poderá ocorrer eternamente, até que o cliente e servidor não consigam mais se comunicar, o “Lease time” termine e o DHCP Server considere aquele IP como disponível, mas isso dependerá da configuração do servidor.

Screenshot_8

Ao clicar em “Next” na janela mostrada acima, seu DHCP estará pronto para ser utilizado, bastando conectar os computadores da rede diretamente na Interface escolhida, ou em um switch que esteja conectado na mesma, ou por rede wireless, como é o caso do exemplo que estou utilizando em todo este tutorial.

Este processo do “wizard” é mais simples para quem deseja configurar um servidor DHCP de maneira rápida no Mikrotik. Mas deixemos de preguiça e vamos fazer tudo manualmente no próximo tópico.

Configurando o DHCP-Server manualmente no Mikrotik

O processo manual envolve a criação de um pool de endereços (ou mais de um, se preferir), uma ou mais redes para o servidor DHCP e o servidor em si. Também falaremos um pouco sobre a configuração de algumas opções do servidor.

Para iniciar, vamos criar um pool de endereços. Clique em “IP” – “Pool”, e no sinal de mais (+) apresentado na tela. Em “Name”, digite um nome para identificar o seu novo pool e em addresses digite o range de endereços desejado separados por um traço, exemplo 192.168.2.2-192.168.2.254.

Novo pool de endereços

Novo pool de endereços

Você pode adicionar mais redes dentro de um mesmo pool apenas clicando na seta para baixo em frente “Addresses”, porém, a Interface deverá estar configurada com um IP de tal rede para se tornar o gateway quando formos configurar as redes do servidor DHCP. Além disso, você também pode utilizar a opção “Next pool” para adicionar novos endereços caso o pool que estiver sendo criado termine. Mas lembre-se que para cada pool que estiverem em redes diferentes, um novo endereço deverá ser adicionado na Interface escolhida e uma nova rede deverá ser configurada para as redes do servidor (vamos falar nas redes logo abaixo).

Quando estiver satisfeito com seu novo pool de endereços, simplesmente clique em “OK”.

Agora precisamos configurar a(s) rede(s) do servidor DHCP, para isso clique em “IP” – “dhcp-server”, e acesse a aba “Networks”.

Aba "Networks" do DHCP Server no Mikrotik

Aba “Networks” do DHCP Server no Mikrotik

Clique no sinal de mais (+) para adicionarmos a(s) rede(s) que vamos utilizar. Adicione pelo menos o endereço da rede, o IP da interface e servidores de DNS.

Rede do servidor DHCP

Rede do servidor DHCP

Quando finalizar, clique em “OK” e vá para a aba “DHCP”. Clique no sinal de mais (+) para adicionar um novo servidor DHCP.

Agora configure o servidor conforme descrito na imagem abaixo:

Configurando o servidor DHCP

Configurando o servidor DHCP

Ao pressionar “OK”, seu novo servidor DHCP será criado e estará pronto para o uso.

Solução de problemas com DHCP Server no Mikrotik

Abaixo vou detalhar os problemas que mais encontro na maioria dos casos que tenho que resolver:

  • DHCP Server está vermelho: Qualquer coisa que estiver na cor vermelha no Mikrotik não indica um bom sinal. Verifique se a Interface está ativa e se ela não faz parte de uma bridge, você não pode adicionar um DHCP server em Interfaces que fazem parte de uma bridge, apenas na bridge em si.
  • Clientes pegando IPs com rede incorreta ou sem gateway: Se os clientes do DHCP Server estiverem pegando IPs estranhos, por exemplo, pegando só o IP com a rede toda desconfigurada, é porque você não configurou a aba “Networks” do seu DHCP Server de maneira correta. Verifique se está tudo correto. Também lembre-se, para cada pool de endereços com redes diferentes, você precisará de um endereço IP na Interface equivalente àquela rede, além disso, você também precisará configurar a rede na aba “Networks”.
  • Clientes não pegam IP: Verifique tudo o que foi descrito acima, além disso, procure por problemas físicos. Por exemplo, tente conectar um equipamento diretamente ao Mikrotik e elimine switchs e roteadores, se este equipamento pegar um IP, o problema está na parte física da sua rede.
  • IP offered: Se o Mikrotik apresentar uma mensagem “offered” na aba “Leases” isso significa que o servidor DHCP chegou a oferecer o IP, porém o cliente não aceitou. Neste caso o problema está no cliente e não do servidor DHCP.
  • waiting: Se o Mikrotik estiver apresentando a mensagem “waiting”, isso significa que o cliente ainda não fez uma nova requisição de endereço, reiniciar o equipamento do cliente irá resolver o problema.
  • bound: Isso significa que o cliente pegou o IP e está funcionando (pelo menos em teoria).

Gerenciando Leases

Se você quer visualizar quais endereços IP foram disponibilizados pelo seu servidor, acesse “IP” – “dhcp-server” – “Leases”.

Aba leases de um servidor DHCP no Mikrotik

Aba leases de um servidor DHCP no Mikrotik

Observação: Perceba que este é outro equipamento que já esta em funcionamento aqui na minha rede Interna.

Na própria aba “Leases”, você pode fazer algumas coisas bem legais, por exemplo, fazer um cliente se tornar “static”. Nesse caso o Mikrotik irá associar o endereço MAC do cliente para que toda vez que ele for detectado na rede, o mesmo endereço IP seja entregue ao mesmo.

Para isso, simplesmente clique com o botão direito do mouse sobre a linha referente ao equipamento que deseja e selecione a opção “Make static”.

Este aparelho agora sempre receberá o mesmo endereço IP

Este aparelho agora sempre receberá o mesmo endereço IP

Quando você configura um cliente estático, como fizemos acima, você pode até mesmo alterar o endereço IP daquele cliente para outro de uma rede completamente diferente, contando que exista um IP daquela rede na Interface e a rede esteja configurada na aba “Networks” para que o DHCP Server saiba o que entregar ao seu cliente. Sim! O Servidor DHCP irá entregar qualquer IP estático que você configurar para o cliente.

O servidor DHCP também entrega endereços estáticos que não estão no pool de endereços.

O servidor DHCP também entrega endereços estáticos que não estão no pool de endereços.

Isso é muito útil quando você cadastra IPs válidos para clientes e não deseja ir até a residência dos mesmos para configurar o IP manualmente.

Você também pode limitar a velocidade de determinados clientes estáticos, basta abrir a linha referente e configurar a opção “Rate limit”.

Configurando limite de velocidade para o cliente

Configurando limite de velocidade para o cliente

Caso queira voltar ao normal, ou seja, tudo dinâmico, apenas apague a linha do IP que você fez como estático.

DHCP Server via comando no terminal

Uma parte muito legal para facilitar sua vida são os comandos. Para criar um DHCP Server pelo terminal do RouterOS, clique em “New terminal” e digite:

/ip address add address=192.168.2.1/24 interface=wlan1
/ip pool add name=nome-do-pool ranges=192.168.2.2-192.168.2.254
/ip dhcp-server network add address=192.168.2.0/24 gateway=192.168.2.1 dns-server=8.8.8.8,8.8.4.4
/ip dhcp-server add name=nome-do-servidor lease-time=10:00:00 address-pool=nome-do-pool interface=wlan1 authoritative=yes add-arp=yes disabled=no
/

Agora basta substituir os valores acima conforme precisar. E o melhor, você pode copiar todas as linhas acima e colar dentro do terminal de uma vez só. Tudo será aplicado de uma vez.

Vídeo tutorial

Abaixo um vídeo tutorial complementando o que foi descrito no artigo acima.

Link do vídeo: https://www.youtube.com/watch?v=FWf2LUWYhZE

Espero ter ajudado!

Para aqueles que precisam de um servidor FTP no Ubuntu, o ProFTPD irá superar suas expectativas. Com ele é possível criar um servidor robusto com várias integrações, como quota de usuários, integração à base de dados MySQL para que não seja necessário gerenciar todos os usuários “na unha” e muito mais.

Neste tutorial (com vídeo tutorial ao final) você vai aprender a configurar o ProFTPD de duas maneiras: como um servidor FTP simples e como um servidor FTP com quota de usuários integrado com uma base de dados MySQL, onde você poderá gerenciar tudo pela base de dados. Note que a segunda opção também é interessante para quem deseja criar sistemas com PHP (por exemplo) para gerenciar os dados do servidor.

Então vamos deixar de prosa fiada e coloquemos nossas mãos na massa. Arregace suas mangas e prepare-se para digitar algumas linhas de comando no seu Ubuntu.

Servidor FTP simples com o ProFTPD

Primeiramente vamos instalar o ProFTPD, para isso abra o terminal (CTRL+ALT+T) e digite:

sudo apt-get install proftpd

Escolha “autônomo” e continue até finalizar.

O próximo passo é editar o arquivo proftpd.conf, para isso digite:

sudo nano /etc/proftpd/proftpd.conf

Altere as seguintes linhas:

...
# Adicione o nome do seu servidor
ServerName                      "Nome do seu servidor"
...
# Descomente a linha
DefaultRoot                     ~
...
# Descomente a linha
RequireValidShell               off
...
# Adicione
CreateHome                      on
...
# Não editei mais nada daqui adiante
...

Veja como ficou o arquivo completo (isso é apenas para você visualizar o que foi editado):

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
# 

# Includes DSO modules
Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6				on
# If set on you can experience a longer connection delay in many cases.
IdentLookups			off

ServerName			"Todo Espaço Online - FTP"
ServerType			standalone
DeferWelcome			off

MultilineRFC2228		on
DefaultServer			on
ShowSymlinks			on

TimeoutNoTransfer		600
TimeoutStalled			600
TimeoutIdle			1200

DisplayLogin                    welcome.msg
DisplayChdir               	.message true
ListOptions                	"-l"

DenyFilter			\*.*/

# Use this to jail all users in their homes 
DefaultRoot			~

# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
RequireValidShell		off
CreateHome			on

# Port 21 is the standard FTP port.
Port				21

# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts                  49152 65534

# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress		1.2.3.4

# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances			30

# Set the user and group that the server normally runs at.
User				proftpd
Group				nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask				022  022
# Normally, we want files to be overwriteable.
AllowOverwrite			on

# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd		off

# This is required to use both PAM-based authentication and local passwords
# AuthOrder			mod_auth_pam.c* mod_auth_unix.c

# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile			off

TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on

# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime.  If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or <Anonymous>), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime

<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>


# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default. 
<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf

#
# This is used for FTPS connections
#
#Include /etc/proftpd/tls.conf

#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf

# A basic anonymous configuration, no upload directories.

# <Anonymous ~ftp>
#   User				ftp
#   Group				nogroup
#   # We want clients to be able to login with "anonymous" as well as "ftp"
#   UserAlias			anonymous ftp
#   # Cosmetic changes, all files belongs to ftp user
#   DirFakeUser	on ftp
#   DirFakeGroup on ftp
# 
#   RequireValidShell		off
# 
#   # Limit the maximum number of anonymous logins
#   MaxClients			10
# 
#   # We want 'welcome.msg' displayed at login, and '.message' displayed
#   # in each newly chdired directory.
#   DisplayLogin			welcome.msg
#   DisplayChdir		.message
# 
#   # Limit WRITE everywhere in the anonymous chroot
#   <Directory *>
#     <Limit WRITE>
#       DenyAll
#     </Limit>
#   </Directory>
# 
#   # Uncomment this if you're brave.
#   # <Directory incoming>
#   #   # Umask 022 is a good standard umask to prevent new files and dirs
#   #   # (second parm) from being group and world writable.
#   #   Umask				022  022
#   #            <Limit READ WRITE>
#   #            DenyAll
#   #            </Limit>
#   #            <Limit STOR>
#   #            AllowAll
#   #            </Limit>
#   # </Directory>
# 
# </Anonymous>

# Include other custom configuration files
Include /etc/proftpd/conf.d/

Agora apenas precisamos criar os usuários que terão acesso ao nosso servidor FTP, para isso digite:

sudo adduser usuario-ftp --home=/home/usuario-ftp --shell=/bin/false

Saiba mais sobre o gerenciamento de usuários no Linux em:

E, por fim, reiniciar o proftpd:

sudo /etc/init.d/proftpd restart

Pronto, acesse o seu novo servidor com o cliente FTP que preferir.

Servidor FTP com MySQL e quota de usuários

Antes de continuar, saiba que é necessário instalar e configurar um servidor MySQL no seu Ubuntu, para isso siga o seguinte tutorial:

Depois disso vamos começar a instalação do ProFTPD (se você já fez isso anteriormente, pule esta parte):

sudo apt-get install proftpd proftpd-mod-mysql

Instale um servidor autônomo e vamos iniciar a configuração. Primeiramente, vamos alterar o arquivo proftpd.conf, para isso digite:

sudo nano /etc/proftpd/proftpd.conf

Veja o arquivo alterado (existe um comentário em cada linha alterada):

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
# 

# Includes DSO modules
Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6				on
# If set on you can experience a longer connection delay in many cases.
IdentLookups			off

#########################################################################
# ALTERADO								#
#########################################################################
ServerName			"Todo Espaço Online - FTP"
ServerType			standalone
DeferWelcome			off

MultilineRFC2228		on
DefaultServer			on
ShowSymlinks			on

TimeoutNoTransfer		600
TimeoutStalled			600
TimeoutIdle			1200

DisplayLogin                    welcome.msg
DisplayChdir               	.message true
ListOptions                	"-l"

DenyFilter			\*.*/

# Use this to jail all users in their homes
#########################################################################
# ALTERADO								#
#########################################################################
DefaultRoot			~

# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
#########################################################################
# ALTERADO								#
#########################################################################
RequireValidShell		off
#########################################################################
# ADICIONADO								#
#########################################################################
CreateHome			on

# Port 21 is the standard FTP port.
Port				21

# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts                  49152 65534

# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress		1.2.3.4

# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances			30

# Set the user and group that the server normally runs at.
User				proftpd
Group				nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask				022  022
# Normally, we want files to be overwriteable.
AllowOverwrite			on

# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd		off

# This is required to use both PAM-based authentication and local passwords
# AuthOrder			mod_auth_pam.c* mod_auth_unix.c

# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile			off

TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on

# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime.  If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or <Anonymous>), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime

<IfModule mod_quotatab.c>
#########################################################################
# ALTERADO								#
#########################################################################
QuotaEngine on
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>


# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default. 
<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#########################################################################
# ALTERADO								#
#########################################################################
Include /etc/proftpd/sql.conf

#
# This is used for FTPS connections
#
#Include /etc/proftpd/tls.conf

#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf

# A basic anonymous configuration, no upload directories.

# <Anonymous ~ftp>
#   User				ftp
#   Group				nogroup
#   # We want clients to be able to login with "anonymous" as well as "ftp"
#   UserAlias			anonymous ftp
#   # Cosmetic changes, all files belongs to ftp user
#   DirFakeUser	on ftp
#   DirFakeGroup on ftp
# 
#   RequireValidShell		off
# 
#   # Limit the maximum number of anonymous logins
#   MaxClients			10
# 
#   # We want 'welcome.msg' displayed at login, and '.message' displayed
#   # in each newly chdired directory.
#   DisplayLogin			welcome.msg
#   DisplayChdir		.message
# 
#   # Limit WRITE everywhere in the anonymous chroot
#   <Directory *>
#     <Limit WRITE>
#       DenyAll
#     </Limit>
#   </Directory>
# 
#   # Uncomment this if you're brave.
#   # <Directory incoming>
#   #   # Umask 022 is a good standard umask to prevent new files and dirs
#   #   # (second parm) from being group and world writable.
#   #   Umask				022  022
#   #            <Limit READ WRITE>
#   #            DenyAll
#   #            </Limit>
#   #            <Limit STOR>
#   #            AllowAll
#   #            </Limit>
#   # </Directory>
# 
# </Anonymous>

# Include other custom configuration files
Include /etc/proftpd/conf.d/

Agora vamos editar o arquivo sql.conf, para isso digite:

sudo nano /etc/proftpd/sql.conf

Agora veja o arquivo alterado (comentários em linhas alteradas):

#
# Proftpd sample configuration for SQL-based authentication.
#
# (This is not to be used if you prefer a PAM-based SQL authentication)
#

<IfModule mod_sql.c>
#
# Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend 
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use 'mysql' or 'postgres' as possible values.
#
#########################################################################
# ALTERADO								#
#########################################################################
SQLBackend	mysql
#
#########################################################################
# ALTERADO								#
#########################################################################
SQLEngine on
SQLAuthenticate on
#
# Use both a crypted or plaintext password
#########################################################################
# ALTERADO								#
#########################################################################
SQLAuthTypes Crypt Plaintext
#
# Use a backend-crypted or a crypted password
#SQLAuthTypes Backend Crypt 
#
# Connection 
#########################################################################
# ALTERADO								#
#########################################################################
SQLConnectInfo [email protected] SeuUsuarioMySQL SenhaDoUsuarioMySQL
#
# Describes both users/groups tables
#
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLGroupInfo ftpgroup groupname gid members
#

#########################################################################
# ADICIONADO								#
#########################################################################

#
# Update count every time user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser

# Update modified everytime user uploads or deletes a file
SQLLog  STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

# User quotas
# ===========
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally


</IfModule>

Agora vamos editar o arquivo modules.conf, para isso digite:

sudo nano /etc/proftpd/modules.conf

Veja o arquivo alterado:

#
# This file is used to manage DSO modules and features.
#

# This is the directory where DSO modules reside

ModulePath /usr/lib/proftpd

# Allow only user root to load and unload modules, but allow everyone
# to see which modules have been loaded

ModuleControlsACLs insmod,rmmod allow user root
ModuleControlsACLs lsmod allow user *

LoadModule mod_ctrls_admin.c
LoadModule mod_tls.c

# Install one of proftpd-mod-mysql, proftpd-mod-pgsql or any other
# SQL backend engine to use this module and the required backend.
# This module must be mandatory loaded before anyone of
# the existent SQL backeds.
#########################################################################
# ALTERADO								#
#########################################################################
LoadModule mod_sql.c

# Install proftpd-mod-ldap to use this
#LoadModule mod_ldap.c

#
# 'SQLBackend mysql' or 'SQLBackend postgres' (or any other valid backend) directives 
# are required to have SQL authorization working. You can also comment out the
# unused module here, in alternative.
#

# Install proftpd-mod-mysql and decomment the previous
# mod_sql.c module to use this.
#########################################################################
# ALTERADO								#
#########################################################################
LoadModule mod_sql_mysql.c

# Install proftpd-mod-pgsql and decomment the previous 
# mod_sql.c module to use this.
#LoadModule mod_sql_postgres.c

# Install proftpd-mod-sqlite and decomment the previous
# mod_sql.c module to use this
#LoadModule mod_sql_sqlite.c

# Install proftpd-mod-odbc and decomment the previous
# mod_sql.c module to use this
#LoadModule mod_sql_odbc.c

# Install one of the previous SQL backends and decomment 
# the previous mod_sql.c module to use this
#########################################################################
# ALTERADO								#
#########################################################################
LoadModule mod_sql_passwd.c

LoadModule mod_radius.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_file.c

# Install proftpd-mod-ldap to use this
#LoadModule mod_quotatab_ldap.c

# Install one of the previous SQL backends and decomment 
# the previous mod_sql.c module to use this
#########################################################################
# ALTERADO								#
#########################################################################
LoadModule mod_quotatab_sql.c
LoadModule mod_quotatab_radius.c
LoadModule mod_wrap.c
LoadModule mod_rewrite.c
LoadModule mod_load.c
LoadModule mod_ban.c
LoadModule mod_wrap2.c
LoadModule mod_wrap2_file.c
# Install one of the previous SQL backends and decomment 
# the previous mod_sql.c module to use this
#LoadModule mod_wrap2_sql.c
LoadModule mod_dynmasq.c
LoadModule mod_exec.c
LoadModule mod_shaper.c
LoadModule mod_ratio.c
LoadModule mod_site_misc.c

LoadModule mod_sftp.c
LoadModule mod_sftp_pam.c
# Install one of the previous SQL backends and decomment 
# the previous mod_sql.c module to use this
#LoadModule mod_sftp_sql.c

LoadModule mod_facl.c
LoadModule mod_unique_id.c
LoadModule mod_copy.c
LoadModule mod_deflate.c
LoadModule mod_ifversion.c
LoadModule mod_tls_memcache.c

# Install proftpd-mod-geoip to use the GeoIP feature
#LoadModule mod_geoip.c

# keep this module the last one
LoadModule mod_ifsession.c

Pronto, agora devemos criar a base de dados do proftpd, para você vai precisar baixar o arquivo abaixo:

Descompacte o arquivo em um local qualquer dentro do seu Ubuntu e digite o seguinte:

mysql -u UsuarioMySQL -p < /caminho/do/arquivo/proftpd.sql

Lembre-se de substituir “UsuarioMySQL” pelo nome de usuário do seu servidor MySQL e o caminho do arquivo proftpd.sql. O comando acima irá importar a base de dados do proftpd para seu servidor mysql, com isso, uma nova base de dados será criada com o nome de “proftpd”.

Dica: Normalmente eu utilizo o MySQL Workbench para gerenciar bases de dados MySQL. Ele poderá ser encontrado facilmente na Central de programas do Ubuntu.

Agora vamos criar o usuário padrão do nosso servidor FTP, para isso digite:

sudo adduser ftpuser --home=/home/FTP --shell=/bin/false

Conclua os dados requisitados após digitar este comando.

Verifique o UID e o GID do usuário e grupo que acabamos de criar com o seguinte comando:

id -u ftpuser
id -g ftpuser

No meu caso o UID e GID tem o valor 1001.

Lembre-se que você terá que lembrar estes valores na hora de criar novos usuários na sua base de dados.

Vamos criar nosso primeiro usuário FTP, para isso você pode utilizar o MySQL Workbench ou Emma para gerenciar sua base de dados por uma interface gráfica. Mas se você quiser ser bem herói e digitar sudo por linha de comando, digite:

mysql -u UsuarioMySQL -p

Para acessar o servidor MySQL. Em seguida, digite a seguinte consulta alterando os dados necessários:

INSERT INTO `proftpd`.`ftpuser` (`userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`) VALUES ('nomeusuario', 'senhausuario', '1001', '1001', '/home/FTP/nomeusuario', '/sbin/nologin', '', '');

Issso irá criar o usuário “novousuario” com a senha “senhausuario”. Lembre-se que também estamos enviando a home do usuário e o UID e GID do usuário que criamos como padrão para nosso servidor FTP.

Para adicionar quota para este usuário, digite a seguinte query:

INSERT INTO `proftpd`.`ftpquotalimits` (`name`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`) VALUES ('nomeusuario', 'hard', '104857600', '104857600');

INSERT INTO `proftpd`.`ftpquotatallies` (`name`) VALUES ('nomeusuario');

Neste caso estamos adicionando uma quota de 100MB (104857600 bytes) para o usuário “nomeusuario”, ele não será capaz de enviar mais arquivo quanto a quota for atingida.

Nota: O tamanho máximo que você poderá adicionar para quota será 9223372036854775807 (9.23EB – exabytes).

Agora você pode testar com o cliente FTP que preferir. Se ficou com alguma dúvida, assista ao vídeo tutorial ao final do artigo, ele detalha um pouco mais o que deverá ser feito para configurar o ProFTPD.

Vídeo tutorial

O vídeo tutorial abaixo complementa o texto do artigo acima:

Link do vídeo: https://www.youtube.com/watch?v=5hODYF1sLOM

Espero ter ajudado!

Pra você que tem redes mistas com vários sistemas operacionais, realizar compartilhamento de arquivos entre Linux e Windows não é uma tarefa complicada.

Com usuários e permissões configurados de maneira correta, você terá dados compartilhados pela rede de forma transparente e rápida. Além disso, segurança aqui é parte importante, portanto, tudo será compartilhado focando na segurança que ambos os sistemas oferecem.

No linux vamos precisar instalar o samba, mas isso é uma tarefa bem fácil de ser realizada.

Nesse tutorial vou mostrar como compartilhar arquivos pela rede do Windows para o Linux e do Linux para o Windows, ou seja, qualquer um dos sistemas poderá trabalhar como servidor de arquivos.

Compartilhamento de Linux para Windows

Neste caso, o Linux será o servidor enquanto o Windows trabalhará como cliente, apenas acessando os dados disponíveis pela rede.

Estou utilizando o Ubuntu 15.04 para este exemplo, portanto, este processo poderá diferenciar se você estiver utilizar outra distro do Linux. Mas, deixemos de conversa e vamos logo ao passo a passo.

Primeiramente, abra o terminal e digite:

sudo apt-get install samba

Talvez seja necessário confirmar para continuar a instalação;

Instalando o samba (servidor de arquivos)

Instalando o samba (servidor de arquivos)

Quando terminar, crie uma pasta, clique com o botão direito do mouse sobre a mesma e acesse a opção “Compartilhamento de rede local”;

Compartilhamento de rede local

Compartilhamento de rede local

Agora marque a caixa “Compartilhar esta pasta” e clique em “Criar compartilhamento”;

Compartilhar esta pasta

Compartilhar esta pasta / Criar compartilhamento

Volte ao terminal e digite:

sudo smbpasswd -a nome_do_seu_usuario

Substituindo o local indicado pelo nome do seu usuário. Assim que você pressionar “Enter”, terá que digitar sua senha e confirmá-la.

smbpasswd

smbpasswd

Pronto, a pasta agora está compartilhada e você poderá acessá-la por rede utilizando o IP do seu Linux. Para saber o IP do seu Linux, digite:

ifconfig

No terminal do seu Linux.

Aqui está o IP do seu Linux

Aqui está o IP do seu Linux

Agora vamos ver como acessar a pasta compartilhada pelo Windows.

Acessando a pasta compartilhada do Linux no Windows

Abra qualquer pasta do seu Windows e digite o seguinte na barra de endereços:

\\IP.DO.LINUX\

Substituindo o valor indicado pelo IP do Linux;

IP do Linux na barra de endereços

IP do Linux na barra de endereços

Após pressionar “Enter”, verá sua pasta compartilhada;

Pasta compartilhada

Pasta compartilhada

Clique com o botão direito do mouse sobre a pasta e acesse “Mapear unidade de rede…”;

Mapear unidade de rede

Mapear unidade de rede…

Pressione “Concluir”;

Mapeando a unidade de rede

Mapeando a unidade de rede

E digite seu usuário e senha do Linux;

Adicionando credenciais de usuário e senha

Adicionando credenciais de usuário e senha

Pronto, agora sua pasta estará compartilhada e salva dentro do seu Windows com a letra de unidade que você escolheu.

Compartilhamento de Windows para Linux

Estou utilizando o Windows 8.1, portanto, este processo deverá ser um pouco diferente em outras versões do sistema da Microsoft. Mas lembre-se que a ideia é a mesma.

Primeiramente, vamos criar uma conta local para o nosso compartilhamento. Para isso abra o painel de controle e acesse “Contas Usuário e Proteção p/ Família”;

Contas Usuário e Proteção p/ Família

Contas Usuário e Proteção p/ Família

Contas de Usuário;

Contas de usuário

Contas de usuário

Gerenciar outra conta;

Gerenciar outra conta

Gerenciar outra conta

Entrar sem uma conta Microsoft;

Entrar sem uma conta Microsoft

Entrar sem uma conta Microsoft

Conta local;

Conta local

Conta local

Agora digite os dados do seu novo usuário;

Digite os dados do usuário

Digite os dados do usuário

Crie uma nova pasta e acesse as suas propriedades; Dentro da caixa de propriedades, acesse a aba “Compartilhamento”;

Crie uma nova pasta e acesse suas propriedades

Crie uma nova pasta e acesse suas propriedades

Clique na opção “Avançado”;

Compartilhamento avançado

Compartilhamento avançado

Clique em “Permissões” e remova o usuário “Everyone”;

Clique em permissões e adicione permissões para seu usuário e para o usuário do compartilhamento

Clique em permissões e adicione permissões para seu usuário e para o usuário do compartilhamento

Adicione o seu usuário e o usuário do compartilhamento;

Adicionando as permissões

Adicionando as permissões

Dê permissão de “Controle total” para ambos os usuários;

Controle total para ambos

Controle total para ambos

Acesse a aba “Segurança” e adicione o usuário do compartilhamento. Dê permissões de controle total para o mesmo;

Adicione o usuário do compartilhamento nas permissões NTFS (aba segurança)

Adicione o usuário do compartilhamento nas permissões NTFS (aba segurança)

Pronto, a pasta está compartilhada. Agora vamos ao Linux para acessar tal pasta.

Acessando a pasta compartilhada do Windows no Linux

Abra uma pasta qualquer e pressione “CTRL” + “L”. Em seguida digite o seguinte:

smb://IP.DO.WINDOWS/

Substitua o valor mencionado pelo IP do Windows.

CTRL + L para digitar o endereço

CTRL + L para digitar o endereço

Após pressionar “Enter”, digite as credenciais do usuário de compartilhamento criadas no Windows;

Digite as credenciais do usuário

Digite as credenciais do usuário

Encontre sua pasta compartilhada e acesse a mesma;

Acesse a pasta compartilhada

Acesse a pasta compartilhada

Pronto, agora você tem acesso aos seus dados do Windows dentro do Linux.

Vídeo tutorial

Esse tutorial pode ser um pouco complexo para iniciantes, portanto, assista ao vídeo abaixo se restou dúvidas:

Link do vídeo: https://www.youtube.com/watch?v=PipbcLMaHWo

Espero ter ajudado!

Já faz um tempo que entramos na era do IPv6, ou seja, vários provedores de Internet estão trabalhando com pilha dupla, onde os endereços IPv4 e IPv6 são utilizados simultaneamente nos equipamentos para manter a compatibilidade com quem ainda não está na versão 6. Mas ainda temos uma longa jornada até abolirmos a versão 4 do protocolo.

O Google coleta continuamente dados sobre usuários que utilizam IPv6, e acredite se quiser, apenas 7,18% das pessoas estão utilizando este protocolo. Isso nos leva a crer que ainda vamos precisar muito do IPv4 em nossas redes.

Como o IPv4 está escaço no mundo todo, é imprescindível que você faça cálculos corretamente para que não haja desperdício desnecessário. Por exemplo, se você tem uma rede onde 100 usuários vão se conectar, não é necessário utilizar a máscara de sub-rede clássica “255.255.255.0” (/24) que usaria 256 IPs da sua rede, deixando 156 IPs vagos, jogados ao vento.

No tutorial a seguir, você vai aprender a realizar cálculo de sub-redes IPv4 para dividir redes, descobrir IPs da rede e do broadcast, primeiro e último IP, máscara de sub-rede e mais um pouco. Pode ser um pouco confuso no início, porém, sugiro que você guarde este link nos favoritos para tirar suas dúvidas quando as tiver.

Então vamos lá.

Entendendo o protocolo IPv4 (de verdade)

O IPv4 é formado por 32 bits divididos em 4 octetos (8 bits cada). Eles são representados por números de 0 a 255, tal como 192.168.100.2, por exemplo. Além disso, o IPv4 precisa de algo chamado de máscara de sub-rede, que trata de definir qual parte do IP representa a rede e qual parte representa os hosts daquela rede.

Tome como exemplo os dados a seguir:

192.168.100.2
255.255.255.0

No caso acima, temos uma rede que contém 254 IPs utilizáveis, pois a máscara de sub-rede está utilizando 24 bits para a rede e sobramos com 8 bits (dos 32) para os hosts daquela rede. Os bits que determinam a parte da rede têm valor 1 (um) e os bits que determinam a parte dos hosts, valor 0 (zero).

O cálculo para descobrir quantos hosts podemos ter em uma rede é 2^b-2 (onde b é o número de bits com valor 0 – zero). No caso acima 2^8-2 igual a 254.

Mas como eu sei quantos bits a máscara de sub-rede está utilizando?

Isso é o que você vai aprender a seguir!

Decimal para binário e binário para decimal

Tanto para converter decimal para binário e binário para decimal, crie uma tabela dividindo 128 por 2 até que chegue ao número 1. Veja um exemplo:

Tabela para conversão de bits em decimal e vice-versa

Tabela para conversão de bits em decimal e vice-versa

Vamos escolher um número decimal que vai de 0 a 255, por exemplo, 252.

Na tabela, marque 1 no número mais próximo de 252, nesse caso 128.

128 é o número mais próximo de 252

128 é o número mais próximo de 252

Agora vá somando os números posteriores até chegar a 252 (sem passar). Por exemplo, 128+64=192, 192+32=224, 224+16=240, 240+8=248, 248+4=252. A cada número somado, acrescente um número 1 (um) e a cada número pulado, acrescente 0 (zero).

252 é igual a 11111100 em binário

252 é igual a 11111100 em binário

Vamos a outro exemplo, o número 11.

  • Qual o maior número da tabela que representa 11 sem passar? 8 (adicione 1)
  • Qual o maior número da tabela que somado a 8 se aproxima ou é igual a 11? 2 (adicione 1)
  • Qual o maior número da tabela que somado a 10 (8+2) da 11? 1 (adicione 1)

Ou seja 8+2+1=11.

8+2+1=11

8+2+1=11

Adicione zeros nas outras casas e você terá o valor de 11 em binários:

11 vale 00001011 em binários. Você pode eliminar os zeros à esquerda, ou seja, 1011.

11 vale 00001011 em binários. Você pode eliminar os zeros à esquerda, ou seja, 1011.

Assim chegamos à conclusão que 255.255.255.0 é o mesmo que:

255      255      255      0
11111111 11111111 11111111 00000000

Ou seja, 128+64+32+16+8+4+2+1=255 (todos os números que equivalem a 1 devem ser somados).

Onde estiverem os números 1 (um) é equivalente à rede, 0 (zeros) são os hosts da rede.

Dividindo nossa máscara temos o seguinte:

# REDE
11111111 = 255
11111111 = 255
11111111 = 255

#HOSTS
00000000 = 0

Para o nosso primeiro exemplo (192.168.100.2), a parte do IP onde a máscara de sub-rede é 1 (192.168.100) representa uma rede, a parte final (2) representa a identificação de um host da rede (um computador, um tablet, etc…).

Como sabemos que 2^8 (8 zeros) é igual a 256, eliminamos dois endereços IP que não devem ser utilizados, o primeiro e o último. O primeiro IP (192.168.100.0) representa o endereço da rede em si, o último endereço (192.168.0.255) representa o broadcast da rede. Sobramos com 254 IPs que podem ser utilizados por quaisquer equipamentos dentro dessa rede.

Parte do IP que representa a rede e a identificação de um host

Parte do IP que representa a rede e a identificação de um host

Observação: Endereços IP devem ser únicos dentro de uma mesma rede, você não pode utilizar o mesmo endereço em dois equipamentos diferentes.

A máscara de sub-rede acima é uma das mais utilizadas em redes locais, pois além de simples, ela possui 254 endereços disponíveis, ou seja, dá e sobra para você conectar todos os aparelhos da sua residência, até mesmo conectar todos os dispositivos de uma pequena empresa.

CIDR

Além da representação 255.255.255.0, máscaras de sub-rede também podem ser apresentadas no formato CIDR, mas não se assuste com este nome estranho, este método simplesmente indica quantos bits da máscara de sub-rede estão voltados para a rede (todos os bits com 1 – um).

Por exemplo, ao invés de escrever algo assim:

  • IP: 192.168.100.2 | Máscara de sub-rede: 255.255.255.0

Conforme o Windows faz, podemos escrever apenas o seguinte:

  • 192.168.100.2/24

Como os roteadores mais modernos fazem. Nesse caso estamos falando que a máscara de sub-rede está utilizando 24 bits para a rede (conte os números 1 na imagem anterior que você vai entender melhor).

Um exemplo um pouco mais complexo

E se eu te disser que os exemplos que você viu até aqui nesse tutorial são os mais simples possíveis? Não desista de ler agora, eu prometo que você vai entender tudo até o final do artigo.

Vamos sair um pouco do padrão de máscara de sub-rede e ver o que acontece com o nosso endereço. Vamos supor que agora nosso endereço IP é o mesmo 192.168.100.2, porém a máscara de sub-rede agora é um /28.

Agora, ao invés de dar algo preciso, vamos ter que pegar parte dos bits da outra parte da máscara de sub-rede, veja:

28 bits ao invés de 24

28 bits ao invés de 24

Como você pode perceber na imagem acima, ao invés de utilizar 24 bits, agora temos uma máscara de 28 bits. Isso vai mudar muita coisa na rede do exemplo. Agora ela é menor, pois, estamos utilizando mais bits para a rede e menos para os hosts.

De cara você pode perceber que temos 4 bits para os hosts (zeros), portanto, se fizermos nosso cálculo de 2^b-2, agora temos apenas 14 endereços IP disponíveis para hosts.

Certo, então vamos descobrir algumas informações sobre essa rede.

Qual é a máscara de sub-rede?

Vamos os bits em nossa tabela para descobrir qual será a máscara de sub-rede. Já sabemos que a primeira parte vai dar 255.255.255, pois até o último ponto não temos nenhum zero, lembra? Estamos utilizando 28 bits, sendo que 24 bits completariam todos os três primeiros octetos com 1 bit.

Para o último octeto faríamos o seguinte:

Some todos os números que têm 1 (um) e terá o valor

Some todos os números que têm 1 (um) e terá o valor

Quanto fica 128+64+32+16?

Correto, agora sabemos a primeira parte – 255.255.255 – e a última que é a soma acima. Logo nossa máscara será 255.255.255.240.

Qual o IP da rede?

Para saber qual é o IP da rede, simplesmente passe os bits para identificação dos hosts e converta-os para 0 (zero), exemplo:

# Máscara de sub-rede
11111111 11111111 11111111 1111[0000]
255      255      255      240

# IP que temos
11000000 10101000 01100100 0000[0010]
192      168      100      2

# IP da rede
11000000 10101000 01100100 0000[0000]
192      168      100      0

 

Os bits que estão dentro dos colchetes são os que representam os hosts. Lembre-se que nossa máscara tem 28 bits.

Um fato interessante aqui é que como sabemos que o IP da rede é 192.168.100.0, nosso primeiro IP utilizável da rede é sempre IP da rede + 1, logo 192.168.100.1.

Observação: Normalmente utilizamos o primeiro IP da rede como “gateway”, ou seja, IP do roteador principal da rede. Isso não é uma regra.

Qual o IP de broadcast?

Para broadcast, basta pegarmos o endereço da rede e adicionarmos 1 (um) em todos os IPs que seriam para hosts, por exemplo:

# Máscara de sub-rede
11111111 11111111 11111111 1111[0000]
255      255      255      240

# IP que temos
11000000 10101000 01100100 0000[0010]
192      168      100      2

# IP da rede
11000000 10101000 01100100 0000[0000]
192      168      100      0

# Broadcast
11000000 10101000 01100100 0000[1111]
192      168      100      15

Outro fato interessante aqui, o último IP válido da rede sempre é o broadcast menos um, ou seja, nosso broadcast é 192.168.100.15, o último IP válido da rede é 192.168.100.14.

Veja os dados que descobrimos até aqui sem precisar de nenhum software.

  • IP: 192.168.100.2
  • IP em bits: 11000000 10101000 01100100 00000010
  • Rede: 192.168.100.0
  • Rede em bits: 11000000 10101000 01100100 00000000
  • Máscara de sub-rede: 255.255.255.240
  • Máscara de sub-rede em bits: 11111111 11111111 11111111 11110000
  • CIDR: /28
  • Broadcast: 192.168.100.15
  • Broadcast em bits: 11000000 10101000 01100100 00001111
  • IPs em toda a rede: 16 (com rede e broadcast)
  • IPs disponívels para uso: 14 (sem rede e broadcast)
  • Primeiro IP utilizável: 192.168.100.1
  • Último IP utilizável: 192.168.100.14

Pronto, como agora você sabe onde essa rede começa (0) e onde ela termina (15), pode começar a criar novas rede. Por exemplo, se você quiser dividir toda sua rede em vários blocos de 16 IPs (/28), a primeira rede começa em 0, a próxima em 16, 32, 48… até 240, que será a última rede dentro da faixa que estamos utilizando (192.168.100).

Dividindo redes /24

A maior parte das redes que você vai dividir será /24, ou seja, pegar 256 IPs e dividir em quantas partes forem necessários.

Para dividir redes /24 você não precisa de realizar tantos cálculos, basta fazer o seguinte:

Dividindo redes /24

Dividindo redes /24

Por exemplo, se você pegar uma rede /24 e quiser dividir em um /26, é possível criar 4 redes com 64 IPs cada, assim você pode calcular onde cada uma das redes começa e termina, por exemplo:

192.168.100.0/26   -  192.168.100.63/26
192.168.100.64/26  -  192.168.100.127/26
192.168.100.128/26 -  192.168.100.191/26
192.168.100.192/26 -  192.168.100.255/26

Claro que você pode fazer divisões diferentes, por exemplo, dentro de um /26, dividir em mais duas redes /27.

# Um /26 dividido em dois /27
192.168.100.0/27   -  192.168.100.31/27
192.168.100.32/27  -  192.168.100.63/27

# E continuamos com os /26
192.168.100.64/26  -  192.168.100.127/26
192.168.100.128/26 -  192.168.100.191/26
192.168.100.192/26 -  192.168.100.255/26

Você pode fazer milhões de divisões desse tipo.

Utilizando programas para facilitar sua vida

Você também pode utilizar programas para facilitar sua vida na divisão de redes, claro que isso foge ao contexto aqui, mas segue os links:

Vídeo tutorial

O vídeo tutorial abaixo complementa o texto acima.

Link do vídeo: https://www.youtube.com/watch?v=GGmhv1Wz6fc

Espero ter ajudado!

Neste vídeo tutorial você irá aprender a habilitar o Compliance test para AirGrid na versão 5.5.10 e 5.5.9.

Se você não sabe do que se trata, vou resumir um pouco para você entender o que iremos fazer.

Em todos os países, existe um regulamento que decreta quais as frequências (canais) são livres para utilização de Wireless em espaço aberto, ou seja, você não poderia simplesmente ligar um equipamento e trabalhar com a frequência que bem entender. Equipamentos de empresas como Mikrotik ou Ubiquiti Networks são capazes de trabalhar em várias frequências diferentes, incluindo aquelas que não podem ser utilizadas no seu país.

Basicamente, esses equipamentos selecionam as frequências que você pode trabalhar a partir do momento que você selecionou um país na sua configuração, neste caso eles habilitariam as frequências do país que você selecionou e nada mais. Caso você não selecione um país, você poderia selecionar uma opção chamada “Compliance test” (em equipamentos da Ubiquiti), onde todas as frequências nas quais o equipamento pode funcionar estariam ativas. O problema é que nas últimas versões dos equipamentos da Ubiquiti a companhia removeu a opção de Compliance Test, forçando o usuário a selecionarem o seu país original.

Segundo alguns fóruns da Internet, a medida foi tomada devido a pedidos dos órgãos reguladores de Telecom (como a Anatel) de vários países ao redor do mundo, pois tal opção estaria facilitando os usuários a utilizarem canais “proibidos” em seus países.

Para cortar um pouco a conversa, alguém descobriu que a opção não havia sido totalmente removida, simplesmente “desativada” nos novos firmwares. Para ativá-la novamente, você só precisaria entrar no equipamento via SSH e digitar os seguintes comandos:

touch /etc/persistent/ct
save
reboot

Que é exatamente o que eu vou detalhar no vídeo tutorial que você vai assistir logo abaixo.

Compliance test para AirGrid na versão 5.5.10 e 5.5.9

O vídeo tutorial abaixo detalha como ativar o Compliance Test para Airgrids com o firmware 5.5.10.

Espero ter ajudado.

Acessar um Mikrotik não é nada complicado, principalmente se ele estiver com o padrão de fábrica. Neste tutorial vamos falar um pouco sobre algumas maneiras bem simples para acessar esse tipo de roteador, qualquer modelo que você tiver em mãos.

Vou mostrar os pontos mais importantes que você precisa saber antes de ligar o roteador e colocar a mão na massa. Mas lembre-se que este tutorial é para iniciantes, portanto, não vou entrar em muitos detalhes sobre configurações, você simplesmente vai aprender a ligar, restaurar o padrão de fábrica e acessar o roteador para realizar suas configurações.

Começando do início, veja como é um roteador Mikrotik e onde estão os pontos mais importantes.

 Padrão de fábrica (zerar um Mikrotik)

Existem milhares de maneiras de dizer que você vai retornar um dispositivo eletrônico para o padrão de fábrica, zerar, resetar, dar um reset, neste caso vou utilizar “reset” porque o botão tem esse mesmo nome.

Existem três formas de dar um reset em qualquer equipamento da Mikrotik:

  • O botão de reset
  • O jumper hole
  • E (para equipamentos antigos) o Reset Jumper

Vou mostrar apenas os dois primeiros, já que não considero que alguém irá comprar equipamentos com um Reset Jumper nos dias de hoje.

O botão de reset

O botão de reset pode (ou não) ter os nomes “RES” ou “Reset”, mas às vezes eles também podem aparecer sem descrição nenhuma.

Normalmente este botão se encontra em um pequeno orifício na parte traseira do equipamento, sendo necessário algo fino que seja capaz de penetrar neste orifício para pressionar o botão internamente.

Botão de reset

Botão de reset de um Mikrotik

Para zerar as configurações e voltar o Mikrotik ao padrão de fábrica é necessário fazer o seguinte:

  1. Remova o cabo de energia do equipamento fazendo com que o mesmo desligue;
  2. Introduza algo capaz de pressionar o botão de reset dentro do orifício do mesmo e pressione o botão sem soltar;
  3. Ligue o cabo de energia mantendo o botão de reset pressionado até que a luz “ACT” comece a piscar (dependendo do equipamento, esta luz pode não ter o mesmo nome) ;
  4. Solte o botão de reset e aguarde alguns minutos para que o equipamento termine de zerar as configurações;
  5. Desligue o equipamento e ligue novamente;

É bem simples.

O Jumper Hole

Alguns equipamentos da Mikrotik não tem case, ou seja, você terá somente uma placa chamada “RouterBOARD”. Neles você terá uma espécie de Jumper, porém sem os pinos para fechar a conexão entre os mesmos.

Neste caso, você pode utilizar uma Chave Philips para fazer a conexão entre os contatos.

Para utilizar o Jumper Hole para zerar um equipamento da Mikrotik faça o seguinte:

  1. Remova o cabo de energia do equipamento fazendo com que o mesmo desligue;
  2. Coloque uma Chave Philips (ou algo de sua preferência) para fechar contato entre as duas conexões do Jumper Hole;
  3. Ligue o cabo de energia mantendo a chave fechando as conexões do Jumper Hole;
  4. Desconecte a chave do Jumper Hole e aguarde até que o equipamento termine de ligar;
  5. Desligue o equipamento e ligue novamente;

Veja uma imagem do próprio site da Mikrotik:

Fechando as conexões do Jumper Hole

Fechando as conexões do Jumper Hole

Assim que você terminar, seu Mikrotik deverá voltar aos padrões de fábrica.

Vídeo tutorial

Abaixo um vídeo tutorial sobre como zerar as configurações de um Mikrotik.

Agora vamos acessar o roteador.

Ligando um equipamento Mikrotik

Em grande maioria dos casos, você poderá utilizar dois métodos para ligar um equipamento da Mikrotik: utilizando a fonte na voltagem correta; ou utilizando um cabo de rede RJ-45 ligado em uma fonte de voltagem correta com tecnologia POE (Power Over Ethernet).

Obs.: A voltagem está descrita no manual do equipamento, ou no site routerboard.com.

No caso da porta POE, a maioria dos equipamentos que funcionam com essa tecnologia terão a descrição “POE” sobre a porta.

Porta POE

Porta POE

Neste caso, você não precisará ligar a fonte diretamente no Mikrotik.

ATENÇÃO: Nunca ligue cabos RJ-45 com energia em portas que não tem a descrição “POE”, você pode danificar a porta ou o equipamento.

A voltagem DC dos equipamentos Mikrotik variam entre 8V e 30V, porém é necessário que você leia o manual do mesmo para garantir. Também existem equipamentos de 48V, assim como equipamentos AC, vai depender do modelo.

Em ambos os casos, o equipamento irá ligar instantaneamente quando o cabo de energia for conectado. A maioria deles têm luzes indicativas.

Acessando um Mikrotik

Após ligar o equipamento e conectar seu computador ao mesmo por cabo ou via wireless, você poderá configurá-lo de maneira bem simples.

Equipamentos da Mikrotik possuem uma tecnologia de detecção de vizinhos, ou seja, qualquer dispositivo que estiver conectado diretamente à RouterBOARD, poderá ter acesso às suas configurações utilizando o endereço físico (MAC Address). Neste caso, se você utilizar um cabo RJ-45 (ou wireless) para ligar seu computador a um equipamento Mikrotik, poderá utilizar um software chamado Winbox para acessar suas configurações, mesmo que ele não tenha um endereço IP configurado.

Você poderá baixar o Winbox em sua última versão no link abaixo:

Na sessão de “Useful tools and utilities”.

Após o download, execute o mesmo e você verá a seguinte tela.

Winbox

Winbox

Na tela acima, clique na aba “Neighbors” e verifique se o seu dispositivo está aparecendo para que você faça o primeiro acesso.

Vizinhos do Winbox

Vizinhos do Winbox

Na imagem acima você pode perceber que o Winbox já detectou uma RB433 da Mikrotik conectada ao meu computador. Você também verá informações como o endereço IP, o endereço físico (MAC Address), a identidade e  versão do RouterOS.

Neste caso temos duas maneiras de acessar o equipamento: por endereço MAC; ou por endereço IP.

No caso do endereço MAC, simplesmente clique sobre o endereço e o campo “Connect to” irá ser preenchido automaticamente. Digite o user “admin”, password em branco, e clique em “Connect”.

Conexão por MAC

Conexão por MAC

Lembre-se que conexões por endereço MAC podem ser perdidas facilmente. Normalmente, fazemos este primeiro acesso apenas para adicionar um endereço IP da nossa rede e fechamos a conexão para reabrir utilizando o IP configurado.

Para acesso via IP, é necessário que você adicione um endereço em sua placa de rede da mesma rede do equipamento Mikrotik. O Endereço IP padrão é 192.168.88.1, portanto, você pode adicionar o endereço 192.168.88.2 no seu computador, clicar sobre o endereço IP do Mikrotik no Winbox, e fazer o acesso.

Acessando por IP

Acessando por IP

Depois de tudo pronto, clique em “Connect” e faça as configurações conforme preferir.

Nós vamos continuar avançando em tutoriais sobre MK, mas por hoje é só.

Vídeo tutorial

Assista abaixo um vídeo tutorial detalhando como acessar um Mikrotik.

Espero ter ajudado.

Neste vídeo tutorial vamos utilizar um TP-LINK Archer C7 para detalhar como ligar e configurar seu roteador Wi-Fi. Vamos ver vários detalhes sobre o roteador, tanto da parte física quanto sobre a parte lógica, que seria o software de configuração que irá indicar o modo de funcionamento mais adequado para o equipamento.

Você verá como configurar seu Windows de maneira automática (DHCP) para fazer o primeiro acesso ao software de configuração do roteador, mas, caso necessário, também saberá como adicionar um IP da mesma faixa de IPs do roteador de maneira manual para fazer este acesso.

Dentre as configurações, falaremos sobre Wireless 2.4Ghz e 5.8Ghz, portas WAN/Internet (Wide Area Network), LAN (Local Area Network) e WLAN (Wireless Local Area Network), configurações de IP da porta WAN/Internet e LAN/WLAN, DHCP cliente e servidor, redirecionamento de portas, NAT (Network address translation), WPS, e várias configurações adicionais sobre o software do roteador.

Nós já falamos bastante sobre Access Points aqui no TEO, talvez você queira ler o nossos tutoriais anteriores sobre estes aparelhos:

Todos os tutoriais acima falam sobre a maioria das tecnologias encontradas na maioria dos roteadores Wi-Fi (AP – Access Point) do mercado, e podem ajudar para que você compreenda melhor sobre o que estamos falando no vídeo tutorial que você irá assistir neste artigo.

Vídeo: Como ligar e configurar seu roteador Wi-Fi

O vídeo que você vai assistir abaixo é um resumo básico sobre todas as opções do roteador TP-LINK Archer C7, porém ele pode ajudar para que você configure qualquer roteador de qualquer marca, basta que você entenda como funciona a tecnologia.

Detalhe importante: Todo roteador Wi-Fi tem melhor performance quando colocado no local central onde você precisa que a rede Wi-Fi funcione, em uma posição mais elevada, com as antenas apontadas para cima, sem obstrução física (como paredes, vidros, etc…) próximas às antenas, sem outros roteadores Wi-Fi trabalhando no mesmo canal próximo ao local onde ele está instalado. Seguindo essas regrinhas básicas o sinal do seu roteador deverá alcançar o limite máximo com o melhor sinal possível para os dispositivos da rede.