Controllr/Manual/Integração Manual
Índice
Integração Mikrotik
Neste tópico, iremos demonstrar como configurar a interface entre o Controllr e o Mikrotik de modo manual nas configurações do Mikrotik.
Tendo em vista que o Controllr já esteja instalado na sua rede, continue a ler o tópico, caso esteja tendo dificuldade na instalação do Controllr, siga o manual no link: https://controllr.brbyte.com/about/install
Configuração no Mikrotik
IP > POOL
Definindo uma nova Pool.
- Name: Defina um nome que desejar para a Pool.
- Address: Defina uma faixa de IP em que deseja que a Pool irá operar.
- Next Pool: None.
- Ao término das configurações clique em OK.
PPP > Profiles > Novo
Definindo um novo profile PPP.
- Name: Defina um nome para o Seu profile
- Local Address: Defina um gateway de IP local, ou selecione o ip desejado ou a Pool que já havia configurado anteriormente, fica a critério do usuário.
- Next Pool: Selecione a Pool que você definiu para o PPPoE.
- Ao término das configurações clique em OK.
PPP > PPPoE Server
Criando um novo Servidor PPPoE.
- Name: Defina um nome para o Seu profile Interface: Selecione a interface da sua RB em que irá se conectar ao servidor PPPoE.
- Max MTU: Padrão.
- Max MRU: Padrão.
- MRRU: Padrão.
- Keepalive Timeout: 120
- Default Profile: Selecione o perfil PPP criado anteriormente.
- Desmarque as opções mschap1 e mschap2.
- Ao término das configurações clique em OK.
PPP > Secrets > PPP Authentication & Accounting
Habilite o servidor Radius para autenticação PPP.
- Use Radius
- Accounting
- Interim Update: 1 minuto.
- Ao término das configurações clique em OK.
Radius
Criando um novo servidor Radius.
- Service: Deixe marcado apenas a opção "ppp".
- Address: Defina o endereço de IP do servidor Controllr.
- Src. Address: 0.0.0.0 <- Alterar pelo ip do concentrador cadastrado em radius NAS, no exemplo da imagem 192.168.191.1
- Timeout: 3000
- Ao término das configurações clique em OK.
Criando um Radius Server
Para criar um servidor Radius NAS em seu concentrador
- 1 - Address: IP do servidor Controllr (Radius) para onde será enviadas as requisições.
- 2 - Secret: Esta é a "senha" do Radius esta senha deve estar compatível com a Secret cadastrada no App Radius Nas
- 3 - Src. Address: Endereço de origem (Src = Sorce) identifica o "Remetente" deste pacote, deixar o IP do Concentrador ou Loopback quando houver (mais informações abaixo).
O protocolo RADIUS não aceita caracteres especiais tais como @ #$%¨&*`´¹²£¢¬ e outros.
Recomendamos TimeOut entre 3000 para as menores redes e 9000 para as redes mais robustas.
Para ativar o Incoming e verificar as requisições recebidas via protocolo Radius
- 1 - Accept: Aceitar pacotes Radius.
- 2 - Port: Recomendamos a porta padrão 3799
- 3 - Requets: Requisições realizadas
- 4 - Bad Requests: Requisições ruins (não aceitas)
- 5 - Acks: Pedidos (requisições recebidas)
NAS no Controllr
Após criar o Radius Server no concentrador deve-se adicionar o Radius NAS ao Controllr
coloque o IP do concentrador e a secret determinada no Radius do MK
Testando Radius NAS
O teste de comunicação via protocolo Radius é simples e rápido, para isso, busque um cliente que esteja online e conectado via Radius/Remoto
- 1 - NAS-IP: IP do "Concentrador" recebido no Accounting. ATENÇÃO: Chegando com IP diferente, provável NAT (outro router) trocando IP "no caminho".
- 2 - R ou L: Informação de conexão deste usuário. "R" = Autenticado Remotamente (Controllr) "L" = Autenticado Local (Secret do MK).
Utilizando-se do App Sessões Online no Controllr utilize do botão Desconectar para enviar uma requisição de desconexão para o concentrador.
Após utilizar o botão de desconexão o Controllr solicita a desconexão deste Cliente utilizando-se do protocolo Radius pode-se então verificar que o cliente foi desconectado.
- 1 - : Notamos que o cliente foi desconectado.
- 2 - Requests: Requisição radius recebida foi aceita pelo MK.
- 3 - Bad Requests: Requisição negada, normalmente nega-se uma requisição quando o IP de origem deste pacote não é o informado em "Address". A troca de IP ocorre normalmente devido a NAT em roteadores "no meio do caminho", deve-se então verificar com técnico/consultor de rede.
Com a desconexão bem sucedida significa que a comunicação Radius esta funcionando corretamente.
Possíveis Erros
Não Apresenta Clientes Online
Clientes não aparecem na lista de online no App Clientes Online, para isso deve-se habilitaro “Use Radius e Accounting”
- 1 - Use Radius: Usar radius para autenticação.
- 2 - Accounting: Ativar o accouting.
- 3 - Interim Update: Tempo de envio das informações de "Interim Update".
O status "ONLINE/OFFLINE" do Controllr é realizado de acordo com o **"Interim Update"** o Accounting é responsavél por armazenadar não só o **status da conexão** (online/offline) como também consumo, informações de tráfego entre outras.
O **Interim Update** é o “tempo” que será realizada o envio do **MK** para o Controllr, ou seja, o Controllr apenas recebe as informações de Accounting quando “tempo” (interim update) completa o ciclo, usando para isto a conexão **RADIUS** sendo assim o Radius NAS deve estar devidamente configurado.
Número Elevado de 'Bad Request'
A Requisição Negada (Bad Request) pode ter algumas origens diferentes.
A mais comuns são quando a Secret(senha) incorreta ou/e requisição do Controllr chega com outro IP (alterado em outro router).
Para descobrir qual o IP chegando no Concentrador utilize a seguinte regra para adicionar as requisições na porta 3977 a Address List 'Radius_log'
/ip firewall filter add action=add-src-to-address-list address-list=Radius_log chain=input dst-port=3799 protocol=udp
Normalmente este erro ocorre quando o provedor possui vários roteadores na rede e um deles esta realizando um NAT "geral" este NAT normalmente destinado a troca do IP para "público" (NAT de Saída) sempre recomendamos nesta NAT selecionar o OUT INTERFACE (Interface de Saída) assim realizando o NAT somente dos pacotes que tem como destino a interface de saída, ou seja, com destino a INTERNET. Os pacotes que permaneceram dentro da rede, com destino a outras interfaces não deve ser "mascarado".
Online no MK e Offline no Controllr
O status "ONLINE/OFFLINE" do Controllr é realizado de acordo com o **"Interim Update"**
O Accounting é responsável por armazenar não só o **status da conexão** (online/offline) mas também a consumo, informações de tráfego entre outras.
O Interim Update é o “tempo” que será realizada o envio do MK para o Controllr, ou seja, o Controllr apenas recebe as informações de Accounting quando “tempo” (interim update) completa o ciclo, usando para isto a conexão RADIUS sendo assim o Radius NAS deve estar devidamente configurado.
1 - Verifique a ativação e a “timing” do interim update 2 - Realize os testes da comunicação Radius
Regras
Para concluir a integração aplique as regras de acesso, bloqueio e pendencia conforme nossa Wiki para Regras de Bloqueio e Pendencia lembre-se de trocar os IPs de exemplo pelos IPs de sua rede.
Script - Automático
{ ######## Substituir os VALUE="XXXX" com as informações corretas, para a integração do MK com o Controllr ######## :global name="IPCTLR" value="192.168.10.2"; :global name="IPCTLRPUBLIC" value="177.52.73.7"; :global name="RADIUSNAS" value="192.168.10.1"; :global name="PINCOMING" value="3799"; ################################################################################################################# :log warning "Iniciando configuracao do Controllr no MK"; :delay 5s; :log warning "Criando o Radius do Controllr"; :if ([/radius find comment~"####CONTROLLR####"] !="") do={:log warning "ja existe um Radius cadastrado";} else={:log warning "Nao existe nenhum Radius cadastrado"; /radius add address=$IPCTLR comment="####CONTROLLR####" secret=brbyte service=ppp src-address=$RADIUSNAS timeout=3s disabled=no}; :delay 5s; :log warning "Habilitando o Incoming"; /radius incoming set accept=yes port=$PINCOMING; :delay 5s; :log warning "Setando as regras do Filter rules"; :if ([/ip firewall filter find comment~"CTLR-MSG"] !="") do={:log warning "Ja existe Firewall criadas do Controllr";} else={:log warning "Nao esta presente nenhum firewall do Controllr"; /ip firewall filter { remove [find comment=Controllr] remove [find comment=CTLR-MSG-BLOCKED] add action=accept chain=forward comment="CONTROLLR" dst-port=7840 protocol=tcp add action=drop chain=forward comment="CTLR-MSG-BLOQUEIO" disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list=brb-block add action=drop chain=forward comment="CTLR-MSG-BLOQUEIO" disabled=no dst-address-list=!released_ips protocol=tcp src-address-list=brb-block add action=drop chain=forward comment="CTLR-MSG-CANCELAMENTO" disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list=brb-cancel add action=drop chain=forward comment="CTLR-MSG-CANCELAMENTO" disabled=no dst-address-list=!released_ips protocol=tcp src-address-list=brb-cancel add action=drop chain=forward comment="CTLR-MSG-NOTIFICACAO" disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list=brb-block-read-notification add action=drop chain=forward comment="CTLR-MSG-NOTIFICACAO" disabled=no dst-address-list=!released_ips protocol=tcp src-address-list=brb-block-read-notification}; }; :delay 5s; :log warning "Setando as regras de redirecionamento - NAT para acessar o seu Controllr fora da rede"; :if ([/ip firewall nat find comment~"ACESSO CONTROLLR"] !="") do={:log warning "Ja existe NAT criadas do Controllr";} else={:log warning "nao esta presente nenhuma nat do Controllr"; /ip firewall nat { add action=dst-nat chain=dstnat comment="ACESSO CONTROLLR WEB" dst-port=8080 protocol=tcp to-addresses=$IPCTLR to-ports=8080 add action=dst-nat chain=dstnat comment="ACESSO CONTROLLR SSH" dst-port=2229 protocol=tcp to-addresses=$IPCTLR to-ports=2229 add action=dst-nat chain=dstnat comment="ACESSO CONTROLLR SERVICO" dst-port=8083 protocol=tcp to-addresses=$IPCTLR to-ports=8083 add action=dst-nat chain=dstnat comment="ACESSO CONTROLLR HOTSITE" disabled=yes dst-address=$IPCTLRPUBLIC dst-port=80 protocol=tcp to-addresses=$IPCTLR to-ports=80}; }; #OBS: O redirecionamento para o Hotsite está desabilitado, pois **dst-address** tem que ser o seu IP publico, para poder acessar o Hotsite dentro e fora da rede pelo IP publico. :delay 5s; :log warning "Redirecionamento para as telas de pendencias"; :if ([/ip firewall nat find comment~"CTLR-MSG"] !="") do={:log warning "Ja existe NAT criadas do Controllr";} else={:log warning "Nao esta presente nenhuma nat do Controllr"; /ip firewall nat{ remove [find comment=CTLR-MSG-BLOCKED-HTTP-80] remove [find comment=CTLR-MSG-BLOCKED-HTTPS-443] remove [find comment=CTLR-MSG-PENDING-HTTP-80] remove [find comment=CTLR-MSG-PENDING-HTTPS-443] add action=dst-nat chain=dstnat comment="CTLR-MSG-NOTIFICACAO" disabled=no dst-address-list=!released_ips dst-port=80 protocol=tcp src-address-list=brb-block-read-notification to-addresses=$IPCTLR to-ports=8090 add action=dst-nat chain=dstnat comment="CTLR-MSG-REDUCAO-VEL" disabled=no dst-address-list=!released_ips dst-port=80 protocol=tcp src-address-list=brb-pendency to-addresses=$IPCTLR to-ports=8091 add action=dst-nat chain=dstnat comment="CTLR-MSG-BLOQUEIO" disabled=no dst-address-list=!released_ips dst-port=80 protocol=tcp src-address-list=brb-block to-addresses=$IPCTLR to-ports=8092 add action=dst-nat chain=dstnat comment="CTLR-MSG-CANCELAMENTO" disabled=no dst-address-list=!released_ips dst-port=80 protocol=tcp src-address-list=brb-cancel to-addresses=$IPCTLR to-ports=8093}; }; :delay 5s; :log warning "Criando address list"; :if ([/ip firewall address-list find list=released_ips] !="") do={:log warning "Removendo released_ips antigos"; /ip firewall address-list remove [find list=released_ips]; /ip firewall address-list { add address=$IPCTLR list=released_ips add address=8.8.8.8 list=released_ips add address=8.8.4.4 list=released_ips add address=$IPCTLRPUBLIC list=released_ips};} else={:log warning "inserindo o released ips"; /ip firewall address-list { add address=$IPCTLR list=released_ips add address=8.8.8.8 list=released_ips add address=8.8.4.4 list=released_ips add address=$IPCTLRPUBLIC list=released_ips}; }; :delay 5s; :log warning "Configurando Scheduler - Agendador"; :if ([/system scheduler find name="CTLR-MSG-REDUCAO-VEL"] !="") do={:log warning "Ja existe agendador criado";} else={:log warning "Nao existe agendador criado"; /system scheduler { remove [find name=Pendency] add interval=2m name="CTLR-MSG-REDUCAO-VEL" on-event=":foreach ip in=[/ip firewall address-list find list=\"brb-pendency\"] do={/ip firewall address-list remove \$ip}" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=startup}; }; :delay 5s; :log warning "Habilitando a porta API do MK"; /ip service set api address="" disabled=no port=8728; :delay 5s; :log warning "Setando o Interim Update"; /ppp aaa set interim-update=1m use-radius=yes; :delay 5s; :log warning "Configuracoes setadas com sucesso"; }