Boa Noite amigos!

Fazer funfar uma autenticação Radius remota é fichinha com Mk-auth + IP Fixo.

Mais hoje, me deparei com um esquema bem complicado e resolvi com sucesso apenas usando um pouquinho da cabeça.

Existe aqui no fórum 1001 forma de fazer isso com adsl (sem ip fixo) e montando uma VPN. Mais como eu queria uma coisa mais simples acabei complicando e resolvendo um dilema que nós administradores de rede sempre encaramos. Usar IP Dinâmico no Radius do Mikrotik, é isso mesmo, achei uma forma simples de fazer funcionar apenas usando Scripts de atualização automática conforme já conhecemos.

Bom, vou deixar de papo furado e mostrar na prática.

Esquema:

                       | Mikrotik 01

Cidade 01 -- | Mk-auth

                       | Velox (Dinâmico)

   

Cidade 02 -- |Mikrotik 02

                       | Velox (Dinâmico)

1º Passo:

Certifique-se de que os 2 mikrotiks estão sendo acessados remotamente usando ddns (Ex.: provedor.ddns.info).

Mikrotik 01, faça o redirecionamento das portas do mk-auth que serão utilizadas.

Portas:

80 - http

85 - Página de Bloqueio

22 - ssh

1812 - Authentication Port

1813 - Accounting Port

OBS: Essas portas são de extrema importância para o bom funcionamento do seu provedor.

Regras:

/ip firewall nat
add action=dst-nat chain=dstnat comment=\
"Redirecionamento porta 1812 FreeRadius" dst-port=1812 in-interface=Link01 \
protocol=udp to-addresses=172.31.255.2 to-ports=1812

add action=dst-nat chain=dstnat comment=\
"Redirecionamento porta 1813 FreeRadius" dst-port=1813 in-interface=Link01 \
protocol=udp to-addresses=172.31.255.2 to-ports=1813

add action=dst-nat chain=dstnat comment="Redirecionamento porta 22 MK-AUT
dst-port=(Porta de sua preferencia) in-interface=Link01 protocol=tcp to-addresses=172.31.255.2 to-ports=22

add action=dst-nat chain=dstnat comment="Redirecionamento porta 80 Mk-auth" \
dst-port=(Porta de sua preferencia) protocol=tcp to-addresses=172.31.255.2 to-ports=80

add action=dst-nat chain=dstnat comment="Redirecionamento porta 85 Mk-auth" \
dst-port=85 in-interface=Link01 protocol=tcp to-addresses=172.31.255.2 \
to-ports=85

OBS: Altere os dados em negrito conforme suas necessidades.

2º Passo:

Configuraremos agora o Mikrotik 02, o mesmo receberá o IP Válido (Dinâmico) do Mikrotik 01. Sabemos que o RouterOS ou simplesmente Mikrotik não suporta nomes de host no campo Address do Radius correto? pois bem, o que vamos fazer, é simplesmente atualizar o IP no campo Address conforme o ddns for sendo atualizado, ou seja, a cada IP novo gerado e passado para o ddns, iremos informar-lo no campo Address do Radius usando script automático.

Lembrando que, estamos considerando que seus 2 mikrotiks tem ddns funcional.

Vamos então simular os seguintes ddns para os 2 Mkrotiks.

Mikrotik 01 - ( cidade01.ddns.info )

Mikrotik 02 - ( cidade02.ddns.info )


Feito isso, vamos então em System/ Scripts do Mikrotik 02 e add um novo script e nele inserimos o seguinte código:

#Resolve o endereço atual do servidor RADIUS
:local atualipserverradius [:resolve "cidade01.ddns.info"]
:log info "Atual IP do servidor RADIUS: $atualipserverradius"

#Consulta o IP do servidor cadastrado no momento
:local ipcadastradoserverradius [radius get 0 address]
:log info "IP cadastrado do servidor RADIUS: $ipcadastradoserverradius"

#Compara os IPs e altera a configuração do RADIUS se os endereços não forem iguais

:if ($atualipserverradius != $ipcadastradoserverradius) do={
radius set 0 address=$atualipserverradius
:log info "Configuracao de RADIUS alterada"
}

OBS: Altere apenas o ddns conforme informado acima.

3º Passo:

Cadastre no sistema Mk-Auth o Mikrotik 02 informando em IP do Mikrotik o ddns do mesmo, como no exemplo: cidade02.ddns.info.

4º Passo:


Para usar a página de corte, basta também criar os scripts de atualização para as regras de PGCORTE seguindo o modelo a seguir e editando.

#Resolve o endereço atual do servidor RADIUS
:local atualipserverradius [:resolve "cidade01.ddns.info"]
:log info "Atual IP do servidor RADIUS: $atualipserverradius"

#Consulta o IP do servidor cadastrado no momento
:local ipcadastradoserverradius [/ip firewall nat get 0 to-address]
:log info "IP cadastrado do servidor RADIUS: $ipcadastradoserverradius"

#Compara os IPs e altera a configuração do RADIUS se os endereços não forem iguais
:if ($atualipserverradius != $ipcadastradoserverradius) do={
ip firewall nat set 0 to-address=$atualipserverradius
:log info "Configuracao de RADIUS alterada"
}

OBS: Apartir desta regra, edite os scripts para as demais regras que deseje atualizar os IPs automaticamente, lembrando que em quase todas as regras é possível incrementar scripts de atualização automática.

Bom pessoal, o que eu tinha pra passar era isso, se alguém tiver dúvida posta aqui que vamos respondendo conforme a disponibilidade. Forte abraço. 

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

Join MK-AUTH

Enviar-me um email quando as pessoas responderem –

Respostas

  • Pessoal, acabei esquecendo! Só lembrar de adicionar rotinas no Scheduler dos scripts criados no Mikrotik 02, caso contrário não irá funcionar, e na rotina coloquem o intervalo que melhor lhe convierem, aqui uso sempre 00:10:00 tanto em DDNS como no script de Atualização do Radius... Forte Abraço!

  • muito, mais muito obrigado amigo...

    Eliabys C. Ribeiro disse:

    Pessoal, acabei esquecendo! Só lembrar de adicionar rotinas no Scheduler dos scripts criados no Mikrotik 02, caso contrário não irá funcionar, e na rotina coloquem o intervalo que melhor lhe convierem, aqui uso sempre 00:10:00 tanto em DDNS como no script de Atualização do Radius... Forte Abraço!

  • Que bom que foi útil pra vc meu nobre amigo!

    Pedro, só tive um problema com as regras de aviso do PPPoE, consigo criar o script de atualização do ip da regra, porém a regra tem o (!) antes do dst-address, e não conseguir concatenar ou encontrar o código referente a essa função no mikrotik. Ou seja, sempre que o script atualiza o ip muda normalmente porém o (!) fica desmarcado e não sei como fazer isso de forma automática. Vou postar o código conforme estou usando aqui...:

    #Resolve o endereço atual do servidor Radius
    :local atualipserverradius [:resolve "provedor.ddns.com.br"]
    :log info "Atual IP do servidor RADIUS: $atualipserverradius"

    #Consulta o IP do servidor cadastrado no momento
    :local ipcadastradoserverradius [/ip firewall nat get 2 to-address]
    :log info "IP cadastrado do servidor RADIUS: $ipcadastradoserverradius"

    #Compara os IPs e altera a configuração do Radius se os endereços não forem iguais
    :if ($atualipserverradius != $ipcadastradoserverradius) do={
    ip firewall nat set 2 dst-address=$atualipserverradius to-address=$atualipserverradius
    :log info "Configuracao de RADIUS alterada"
    }

    OBS: Pra quem não entendeu o script, o número 2 representa o ID da regra posicionada no seu Firewall, ou seja dependendo do seu caso esse número var ter que ser alterado.

    Pedro, ver se vc consegue encontrar a função pra quando atualizar marcar também o (!), forte abraço!



    Pedro Filho disse:

    muito, mais muito obrigado amigo...

    Eliabys C. Ribeiro disse:

    Pessoal, acabei esquecendo! Só lembrar de adicionar rotinas no Scheduler dos scripts criados no Mikrotik 02, caso contrário não irá funcionar, e na rotina coloquem o intervalo que melhor lhe convierem, aqui uso sempre 00:10:00 tanto em DDNS como no script de Atualização do Radius... Forte Abraço!

  • irei ver...

    Eliabys C. Ribeiro disse:

    Que bom que foi útil pra vc meu nobre amigo!

    Pedro, só tive um problema com as regras de aviso do PPPoE, consigo criar o script de atualização do ip da regra, porém a regra tem o (!) antes do dst-address, e não conseguir concatenar ou encontrar o código referente a essa função no mikrotik. Ou seja, sempre que o script atualiza o ip muda normalmente porém o (!) fica desmarcado e não sei como fazer isso de forma automática. Vou postar o código conforme estou usando aqui...:

    #Resolve o endereço atual do servidor Radius
    :local atualipserverradius [:resolve "provedor.ddns.com.br"]
    :log info "Atual IP do servidor RADIUS: $atualipserverradius"

    #Consulta o IP do servidor cadastrado no momento
    :local ipcadastradoserverradius [/ip firewall nat get 2 to-address]
    :log info "IP cadastrado do servidor RADIUS: $ipcadastradoserverradius"

    #Compara os IPs e altera a configuração do Radius se os endereços não forem iguais
    :if ($atualipserverradius != $ipcadastradoserverradius) do={
    ip firewall nat set 2 dst-address=$atualipserverradius to-address=$atualipserverradius
    :log info "Configuracao de RADIUS alterada"
    }

    OBS: Pra quem não entendeu o script, o número 2 representa o ID da regra posicionada no seu Firewall, ou seja dependendo do seu caso esse número var ter que ser alterado.

    Pedro, ver se vc consegue encontrar a função pra quando atualizar marcar também o (!), forte abraço!



    Pedro Filho disse:

    muito, mais muito obrigado amigo...

    Eliabys C. Ribeiro disse:

    Pessoal, acabei esquecendo! Só lembrar de adicionar rotinas no Scheduler dos scripts criados no Mikrotik 02, caso contrário não irá funcionar, e na rotina coloquem o intervalo que melhor lhe convierem, aqui uso sempre 00:10:00 tanto em DDNS como no script de Atualização do Radius... Forte Abraço!

  • Pedro meu amigo, conseguiu encontrar uma forma de resolver esse pequeno empasse?

    Estou fazendo consultoria em um provedor e estou implementando esse recurso pra eles, porém ainda tem esse pequeno problema... Aguardo sua posição!

  • pra quem tem loadbalance nao foi :(       buaaaaá

  • uai amigo, é pra dar... só tem que abrir caminho no firewall...

    Rafael disse:

    pra quem tem loadbalance nao foi :(       buaaaaá

  • o céu é distante kkk já tentei os encaminhamentos mas...

  • Me add no Skype, de repente posso te ajudar: eliabys.ribeiro

    Rafael disse:

    o céu é distante kkk já tentei os encaminhamentos mas...

  • Pedro, Mais um provedor beneficiado pelo método acima. Provedor do meu amigo Rafael, porém ainda está limitado à regra de aviso do PPPoE por causa da bendita (!) na regra! Faz uma forcinha pra gente aí! abraços!

This reply was deleted.