Script para redirecionamento de porta 80 mikrotik

Caros Amigos.

Depois de muito pesquisar, sem sucesso e já cansado, resolvi estudar um pouquinho mais sobre scripts no mikrotik, pois queria redirecionar minha porta 80 para um webserver atrás do mikrotik e não conseguia com nenhum tutorial encontrado na internet.

Vou explanar melhor: 

Minha rede tem a seguinte topologia:


O Problema: Com o modem no modo PPPOE, se eu criase um DSTNAT, com protocolo 6(tcp), dstport 80 para o endereço 192.168.2.16 (Debian Servidor), todos os sites acessados pelo cliente cairiam dentro do meu servidor.

Se eu selecionasse a porta WAN, os clientes navegavam normalmente, porém não conseguia acesso externo ao servidor.

Resolvi este problema de uma maneira simples. Mudei o modem de PPPOE para BRIDGE e criei um script para automatizar a mudança do ip na regra NAT.

A REGRA NAT

Criei uma regra NAT DST-NAT com a seguinte configuração:

Na aba General:

Chain: dstnat

protocol: 6(tcp)

dstport: 80

Na aba Action:

To-Address: 192.168.2.16

To-Ports: 80

Criei também um cliente PPPOE, que disca para o ADSL  e conecta o link.

O comentário que identifica esse regra NAT é webserver, aqui no meu mikrotik. Agora vamos a parte que faz o trabalho no script:

:local ipAtual [/ip address get [find interface="NOME DA CONEXAO PPPOE" disabled=no] address]

# Separar máscara de rede
:for i from=( [:len $ipAtual] - 1) to=0 do={
:if ( [:pick $ipAtual $i] = "/") do={
:set ipAtual [:pick $ipAtual 0 $i]
}
}

/ip firewall nat set [find comment="webserver"] dst-address=$ipAtual

e adiciona uma automação para a regra:

/system scheduler add comment="Atualização IP-NAT" disabled=no interval=5m \
name=NomeDoScript on-event=NomeDoScript  policy=read,write,test

Onde NomeDoScript é o nome que você salvou o script no servidor.

Pronto. Ele vai atualizar o campo dst-address da regra de NAT chamda webserver com o ip externo coletado do PPPOE.

Notas: Na regra nat, você pode adicionar em dstport as portas que deseja abrir para seu servidor.

Lembre-se: Se adicionar mais que uma porta, em To-Ports (aba Action) você também devera especificar as portas que abriu.

Exemplo:

Aba General: dstport: 21,80,2082

Aba Action: To-Ports: 21-2082

Para quem usa o no-ip, bem vindo. Também uso e funciona 100% junto com o script de auto-update do no-ip

Para melhor entendimento, e para facilitar sua vida, o script está em anexo, junto com a automação scheduler.

Espero que tenham entendido, e gostado. 

scheuduler.txt

script.txt

Para adicionar comentários, você deve ser membro de MK-AUTH.

Join MK-AUTH

Enviar-me um email quando as pessoas responderem –

Respostas

  • valeu a dica amigo...

  • espero que ajude o pessoal assim como me tirou do sufoco kk

  • CORREÇÃO PARA O SCRIPT -> A ÚLTIMA LINHA ONDE SE LÊ:

    /ip firewall nat set [find comment="webserver"] dst-address=$ipAtual

    DEVE SER MUDADA PARA

    /ip firewall nat set [find comment="$regra"] dst-address=$ipAtual

    PORQUE SENÃO, AO INVÉS DE PROCURAR PELO COMENTÁRIO DIGITADO, ELE PROCURARÁ POR webserver
    FEITA ESSA CORREÇÃO, O SCRIPT FUNCIONARÁ CORRETAMENTE
  • Gostei parece que funciona mais não entendi muito bem esse método, se no caso fosse um mkauth conectado em uma interface como seria

This reply was deleted.