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

Votos 0
Enviar-me um email quando as pessoas responderem –

Respostas

  • O Radios é 0. Esta informando este erro ( script error: no such item ). Quando fiz a configuração coloquei a primeira:
    #Resolve o endereço atual do servidor RADIUS
    :local atualipserverradius [:resolve "meu ddns"]
    :log info "Atual IP do servidor RADIUS: $atualipserverradius"

    , depois a segunda:

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

    , quando inserir esta em log mostra este erro ( script error: no such item ).



    Eliabys C. Ribeiro disse:

    Amigo, o codigo [radius get 0 address] trata o Servidor radius cadastrado no seu mikrotik, caso tenha mais de 1 servidor cadastrado, essa numeração "0" do código vai variar... o mikotik inicia a contagem das informações em 0. Lembrando também, que caso haja qualquer erro no código anterior que aliementa a variável $ipcadastradoserverradius poderá acontecer erros! Portanto post aqui o erro que aparece pra vc pramim tentra te ajudar...

    Desculpe a demora em responder, estava em viagem...

    Marçal Ferreira disse:

    Meu caro, esta parte do código esta dando erro.

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

  • Amigo, o codigo [radius get 0 address] trata o Servidor radius cadastrado no seu mikrotik, caso tenha mais de 1 servidor cadastrado, essa numeração "0" do código vai variar... o mikotik inicia a contagem das informações em 0. Lembrando também, que caso haja qualquer erro no código anterior que aliementa a variável $ipcadastradoserverradius poderá acontecer erros! Portanto post aqui o erro que aparece pra vc pramim tentra te ajudar...

    Desculpe a demora em responder, estava em viagem...

    Marçal Ferreira disse:

    Meu caro, esta parte do código esta dando erro.

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

  • Meu caro, esta parte do código esta dando erro.

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

  • Rapaz, fico feliz que depois de 2 anos meu post tenha sido ressuscitado kkkk. Havia sumido do forum a mais de ano, mais estou de volta!

    Qual a sua necessidade meu amigo? de repente consigo te ajudar!

    Marçal Ferreira disse:

    Alguém consegui colocar este script para funcionar?

  • Alguém consegui colocar este script para funcionar?

  • Boa iniciativa

  • Também estou presisando de ajuda não consegui fazer funcionar com velox

  • preciso de ajuda!

  • em set 0 leve em conta as regras dinâmicas também, veja ao lado da sua regra de NAT qual o numero que ela se encontra, no meu caso era 15

    CTS Provider disse:

    amigo consegui descobrir, a parte :

    if ($atualipserverradius != $ipcadastradoserverradius) do={

    e a parte 
    ip firewall nat set 0 to-address=$atualipserverradius

    tem que ficar na mesma linha.

  • amigo consegui descobrir, a parte :

    if ($atualipserverradius != $ipcadastradoserverradius) do={

    e a parte 
    ip firewall nat set 0 to-address=$atualipserverradius

    tem que ficar na mesma linha.



    Shisley Junior Sousa Rocha disse:

    Olá amigo Eliabys, primeiramente parabéns pelo post, muito oportuno. realizamos a implantação da sua ideia, apenas adaptando a questão do ddns, que as vezes falha quando o serviço não consegue atualizar os ips (adsl) no sistema como o caso do changeip.

    Utilizamos aqui em o sistema cloud, contido na versão 6.22 do routeros, que lhe cria um DDNS interno pelos próprios servidores do mikrotik, e com atualização automática sem depender de scripts.

    bom até ai foi tudo bem porem ainda nao conseguimos fazer com que troque o ip do firewall para paginas de corte, o mesmo não está conseguindo identificar o ID da regra, as vezes ele troca o ip de outra regra com id diferente, mas nunca funcionou com a ID "0".

    Você tem alguma opinião sobre ?

    Grande abraço

This reply was deleted.