MK-AUTH

Mikrotik autenticando em mk-auth remoto com velox (Contribuição)

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. 

Exibições: 2468

Responder agora

Respostas a este tópico

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!

Galera esse Eliabys é Ninja, cara domina a coisa, fez aqui as regras, rotas em cima de rotas e deu tudo absolutamente certo recomendo a todos ai, os serviços do Eliabys

Olá Pessoal, conseguir resolver o problema no Script devido ao sinal de (!) no dst-address nas regras de aviso do PPPoE.

Para as regras que contém esse atributo (!) Not, devemos concatenar da seguinte forma:

#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"
}

Prontinho, problema resolvido! Quem tem Adsl dinâmico nas duas pontas agora pode usar todos os recursos do mk-auth remotamente! Forte abraço a todos, e Pedro parabéns pelo sistema...

Qualquer dúvida sobre a implantação deste recurso, estou a disposição! Sou mestre aqui no Fórum, e agente combina de acordo com seu projeto...! =)

Responder à discussão

RSS

Parceiros

© 2018   Criado por Pedro Filho.   Ativado por

Badges - Divulgar  |  Relatar erro no site  |  Termos de serviço