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.
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"
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?
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.
Shisley Junior Sousa Rocha disse: