Mudanças entre as edições de "Controllr/Manual/Regras de Bloqueio e Pendencia"

De BrByte Wiki
 
(17 revisões intermediárias por 5 usuários não estão sendo mostradas)
Linha 1: Linha 1:
 +
=Regras Controllr 2.0=
 +
 +
<blockquote><pre>
 +
{
 +
######## Substituir os VALUE="XXXX" com as informacoes corretas, para a integracao do MK com o Controllr ########
 +
:global name="IpControllr" value="192.168.142.97";
 +
:global name="IpControllrPublico" value="192.168.142.97";
 +
:global name="IpNas" value="192.168.142.210";
 +
:global name="PortaIncoming" value="3799";
 +
:global name="Senha" value="brbyte";
 +
# Se tiver perfis notifica ira usar Check "sim"
 +
:global name="Check" value="sim";
 +
#################################################################################################################
 +
: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=$IpControllr comment="####CONTROLLR####" secret=$Senha service=ppp src-address=$IpNas timeout=3s disabled=no};
 +
:delay 5s;
 +
:log warning "Habilitando o Incoming";
 +
/radius incoming set accept=yes port=$PortaIncoming;
 +
:delay 5s;
 +
:log warning "Setando as regras do Filter rules";
 +
:log warning "Removendo regras antigas";
 +
/ip firewall filter {
 +
remove [find comment="CONTROLLR"]
 +
remove [find comment~"CTLR-MSG"]
 +
remove [find comment="Controllr"]};
 +
:log warning "Recriando os filter rules";
 +
/ip firewall filter {
 +
add action=accept chain=forward  comment="CONTROLLR" dst-port=7840 protocol=tcp
 +
add action=drop  chain=forward  comment="CTLR-MSG-ALERT"  disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-alert-notice"
 +
add action=drop  chain=forward  comment="CTLR-MSG-ALERT"  disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-alert-notice"
 +
add action=drop  chain=forward  comment="CTLR-MSG-BLOCK"  disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-block-notice"
 +
add action=drop  chain=forward  comment="CTLR-MSG-BLOCK"  disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-block-notice"
 +
add action=drop  chain=forward  comment="CTLR-MSG-CANCEL"  disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-cancel-notice"
 +
add action=drop  chain=forward  comment="CTLR-MSG-CANCEL"  disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-cancel-notice"
 +
add action=drop  chain=forward  comment="CTLR-MSG-BLOCK"  disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-block-auth"
 +
add action=drop  chain=forward  comment="CTLR-MSG-BLOCK"  disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-block-auth"
 +
add action=drop  chain=forward  comment="CTLR-MSG-CANCEL"  disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-cancel-auth"
 +
add action=drop  chain=forward  comment="CTLR-MSG-CANCEL"  disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-cancel-auth"
 +
add action=drop  chain=forward  comment="CTLR-MSG-DISABLE" disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-disabled"
 +
add action=drop  chain=forward  comment="CTLR-MSG-DISABLE" disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-disabled"};
 +
:delay 5s;
 +
#OBS Essa regra serve para saber qual o IP do seu Controllr, que está vindo com o Comando de desconexao.
 +
:log warning "Regra do radius log";
 +
:log warning "Removendo regra do log antiga";
 +
/ip firewall filter remove [find comment="CTLR-RADIUS-LOG"];
 +
:log warning "Recriando regra do radiuslog";
 +
/ip firewall filter add action=add-src-to-address-list address-list=radius_log address-list-timeout=30m chain=input comment=CTLR-RADIUS-LOG dst-port=$PortaIncoming protocol=udp;
 +
:log warning "Setando as regras de redirecionamento - NAT para acessar o seu Controllr fora da rede";
 +
:log warning "Removendo redirecionamentos antigos";
 +
/ip firewall nat remove [find comment~"ACESSO"];
 +
:log warning "Recriando os redirecionamentos";
 +
:if ([$IpControllrPublico] =$IpControllr) do={:log warning "IP da maquina e igual o ip publico. Nao tem dst-nat"} else={/ip firewall nat {
 +
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-WEB-HTTP"      dst-port=8080 protocol=tcp to-addresses=$IpControllr to-ports=8080
 +
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-WEB-HTTPS"    dst-port=8443 protocol=tcp to-addresses=$IpControllr to-ports=8443
 +
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-SSH"          dst-port=2229 protocol=tcp to-addresses=$IpControllr to-ports=2229
 +
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-SERVICO"      dst-port=8083 protocol=tcp to-addresses=$IpControllr to-ports=8083
 +
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-HOTSITE-HTTP"  disabled=yes dst-address=$IpControllrPublico dst-port=80  protocol=tcp to-addresses=$IpControllr to-ports=80
 +
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-HOTSITE-HTTPS" disabled=yes dst-address=$IpControllrPublico dst-port=443 protocol=tcp to-addresses=$IpControllr to-ports=443};
 +
};
 +
#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";
 +
:log warning "Removendo redirecionamentos antigos de pendencias";
 +
/ip firewall nat remove [find comment~"CTLR-MSG"];
 +
:log warning "Recriando os redirecionamento de pendencias";
 +
:if ([$Check] ="nao") do={:log warning "Nao ira redirecionar";} else={/ip firewall nat{
 +
add action=dst-nat chain=dstnat comment="CTLR-MSG-ALERT-HTTP"  disabled=no  dst-address-list=!released_ips dst-port=80  protocol=tcp src-address-list=brb-alert-notice    to-addresses=$IpControllr to-ports=8090
 +
add action=dst-nat chain=dstnat comment="CTLR-MSG-ALERT-HTTPS"  disabled=no  dst-address-list=!released_ips dst-port=443 protocol=tcp src-address-list=brb-alert-notice    to-addresses=$IpControllr to-ports=8490
 +
add action=dst-nat chain=dstnat comment="CTLR-MSG-PENDENCY-HTTP"    disabled=no  dst-address-list=!released_ips dst-port=80  protocol=tcp src-address-list=brb-pendency-notice  to-addresses=$IpControllr to-ports=8091
 +
add action=dst-nat chain=dstnat comment="CTLR-MSG-PENDENCY-HTTPS"    disabled=no  dst-address-list=!released_ips dst-port=443 protocol=tcp src-address-list=brb-pendency-notice  to-addresses=$IpControllr to-ports=8491
 +
add action=dst-nat chain=dstnat comment="CTLR-MSG-BLOCK-HTTP"        disabled=no  dst-address-list=!released_ips dst-port=80  protocol=tcp src-address-list=brb-block-notice    to-addresses=$IpControllr to-ports=8092
 +
add action=dst-nat chain=dstnat comment="CTLR-MSG-BLOCK-HTTPS"    disabled=no  dst-address-list=!released_ips dst-port=443 protocol=tcp src-address-list=brb-block-notice    to-addresses=$IpControllr to-ports=8492
 +
add action=dst-nat chain=dstnat comment="CTLR-MSG-CANCEL-HTTP"  disabled=no  dst-address-list=!released_ips dst-port=80  protocol=tcp src-address-list=brb-cancel-notice    to-addresses=$IpControllr to-ports=8093
 +
add action=dst-nat chain=dstnat comment="CTLR-MSG-CANCEL-HTTPS" disabled=no  dst-address-list=!released_ips dst-port=443 protocol=tcp src-address-list=brb-cancel-notice    to-addresses=$IpControllr to-ports=8493};
 +
};
 +
:delay 5s;
 +
#OBS essa regra serve para notificar todos os seus clientes, caso tenha alguma manutencao na sua rede ou outra coisa, so habilite ela caso saiba como funciona.
 +
:log warning "Redirecionamento para a tela de aviso";
 +
:log warning "Removendo redirecionamentos de aviso antigos";
 +
/ip firewall nat remove [find comment~"CTLR-AVISO"];
 +
/tool netwatch remove [find comment="CTLR-AVISO"];
 +
:delay 5s;
 +
:log warning "Criando regras mangle";
 +
:log warning "Removendo mangle antigo";
 +
/ip firewall mangle remove [find comment~"CTLR"];
 +
:log  warning "Recriando regras do mangle";
 +
:if ([$Check] ="sim") do={:log warning "Ira usar perfis com NOTICE e AUTH"; /ip firewall mangle {
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-ALERT    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-alert-notice"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-PENDENCY dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-pendency-notice"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-BLOCK    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-block-notice"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-CANCEL  dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-cancel-notice"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-ALERT    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-alert-auth"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-PENDENCY dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-pendency-auth"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-BLOCK    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-block-auth"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-CANCEL  dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-cancel-auth"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-DISABLE  dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-disabled"
 +
add action=accept chain=CONTROLLR comment=CTLR-CHAIN-ACCEPT};
 +
} else={:log warning "Nao usa dois perfis"; /ip firewall mangle {
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-ALERT    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-alert-notice"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-PENDENCY  dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-pendency-auth"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-BLOCK    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-block-auth"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-CANCEL    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-cancel-auth"
 +
add action=jump chain=prerouting  comment=CTLR-JUMP-DISABLE  dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-disabled"
 +
add action=accept chain=CONTROLLR comment=CTLR-CHAIN-ACCEPT};
 +
};
 +
:delay 5s;
 +
:log warning "Criando address list";
 +
:log warning "Removendo released_ips antigos";
 +
/ip firewall address-list remove [find list=released_ips];
 +
:if ([$IpControllrPublico] =$IpControllr) do={:log warning "IP da maquina e igual o ip publico"; /ip firewall address-list {
 +
add address=$IpControllr      list=released_ips
 +
add address=8.8.8.8      list=released_ips
 +
add address=8.8.4.4      list=released_ips};
 +
} else={/ip firewall address-list {
 +
add address=$IpControllr      list=released_ips
 +
add address=8.8.8.8      list=released_ips
 +
add address=8.8.4.4      list=released_ips
 +
add address=$IpControllrPublico list=released_ips};
 +
};
 +
:delay 5s;
 +
:log warning "Configurando Scheduler - Agendador";
 +
/system scheduler {
 +
remove [find name="Pendency"]
 +
remove [find name~"CTLR-MSG"]
 +
add interval=2m name="CTLR-MSG-PENDENCY" on-event="/ip firewall address-list set list=\"brb-pendency-auth\" [find where list=\"brb-pendency-notice\"]" 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";
 +
}
 +
</pre></blockquote>
 +
 +
PasteBin [https://pastebin.com/am0XV1b6 Clique aqui para acessar o site]
 +
 +
 +
  
 
===Regras de Bloqueio e Pendência===  
 
===Regras de Bloqueio e Pendência===  
Linha 11: Linha 153:
  
 
Outro detalhe é que a página não aparece quando o cliente tenta acesso em sites HTTPS, (ex: <nowiki>https://facebook.com</nowiki>), as páginas serão exibidas apenas quando o usuário tentar acessar um página HTTP, ou seja sem SSL.
 
Outro detalhe é que a página não aparece quando o cliente tenta acesso em sites HTTPS, (ex: <nowiki>https://facebook.com</nowiki>), as páginas serão exibidas apenas quando o usuário tentar acessar um página HTTP, ou seja sem SSL.
 +
 +
  
 
==Regras do Mikrotik==
 
==Regras do Mikrotik==
  
'''Atenção onde estão os IPs "192.168.0.0" deve ser alterado para o IP do seu Controllr'''
+
A partir dessa versão do Controllr, as regras devem ser atualizadas no seu Mikrotik, pois foram modificados os parâmetros e incluso novas regras, para que seja cumpridas as normas da ANATEL.
 +
 
 +
As telas de mensagens, foram modificadas:
 +
 
 +
* Porta 8090: Página de aviso de Notificação, segundo a ANATEL o Cliente deve ser notificado que está em débito com o Provedor.
 +
 
 +
* Porta 8091: Página de aviso de redução de Velocidade (antiga pendência).
 +
 
 +
* Porta 8092: Página de aviso de Bloqueio.
 +
 
 +
* Porta 8093: Página de aviso de Cancelamento.
 +
 
 +
* Porta 8096: Página de aviso Customizado. - Por padrão as regras desta porta encontram-se desabilitadas
  
  
 +
Veja como configurar cada uma das Páginas [[Controllr/Aplicativos/Configurações#P.C3.A1ginas_.28Mensagens.29|Páginas de Aviso]] disponível no App [[Controllr/Aplicativos/Configurações|Configurações]] do Controllr.
  
<div class="img-responsive align-center">[[Arquivo:blk_pen_1.png|link=]]</div>
+
Explicação completa no nosso fórum.
  
 +
[https://community.brbyte.com/forum/view/post/5222 https://community.brbyte.com/forum/view/post/5222]
  
  
 +
===Características de cada Address List/Status===
  
''' Segue link para download do ''' [https://www.dropbox.com/s/t4xxxds9svbexng/Regras%20de%20intregacao%20com%20a%20RB%20e%20blk%20e%20pend.txt?dl=0 ''' script em TXT ''' ]
+
As address-lists (no Mikrotik) são utilizadas para informar ao concentrador o status atual da sessão. Flexibilizando o administrador do sistema a tomar decisões e ações com determinados usuários, de acordo com a sua situação.
  
 +
Para facilitar o fluxo de informação, os status são dividos em brb-auth, brb-alert, brb-pendency, brb-block, brb-cancel e brb-disabled. Sendo apendadas de *-notice e *-auth. Útil para informar que o responsável pelo contrato está ciente da situação e sua conexão sofrerá alterações no futuro próximo caso não venha a quitar seu débito junto ao provedor.
  
=='''BUILD 126'''==
+
Caso não tenha notificação, ou o usuário já tenha lido as notificações, a address-list será apendada com *-auth.
 +
Quando houver notificação para o usuário ler a address-lists serão apendadas com *-notice.
  
A partir dessa versão do Controllr, as regras devem ser atualizadas no seu Mikrotik, pois foram modificados os parâmetros e incluso novas regras, para que seja comprida as normas da ANATEL.
+
HABILIDADO sem notificação - '''brb-enable-auth'''
 +
HABILIDADO com notificação - '''brb-enable-notice'''
  
As telas de mensagens, foram modificadas:
+
ALERTA sem notificação - '''brb-alert-auth''' -
 +
* Usuário ativo, com alerta.
 +
ALERTA com notificação - '''brb-alert-notice''' - Redirecionamento porta 8090
 +
* Bloqueio da navegação do cliente, redirecionado para a página de Alerta sempre que realizar acesso WEB.
  
* Porta 8090: Tela de aviso de Notificação, segundo a ANATEL o Cliente deve ser notificado que está em débito com o Provedor.  
+
REDUÇÃO de VELOCIDADE sem notificação - '''brb-pendency-auth'''
 +
* Bloqueio da navegação do cliente.
 +
REDUÇÃO de VELOCIDADE com notificação - '''brb-pendency-notice''' - Redirecionamento porta 8091
 +
* Bloqueio da navegação do cliente, redirecionado para a página de Redução de Velocidade sempre que realizar acesso WEB.
  
* Porta 8091: Tela de aviso de redução de Velocidade (antiga pendência).
+
BLOQUEIO sem notificação - '''brb-block-auth''' - Bloqueio de tráfego
 +
* Bloqueio da navegação do cliente.
 +
BLOQUEIO com notificação - '''brb-block-notice''' - Redirecionamento porta 8092
 +
* Bloqueio da navegação do cliente, redirecionado para a página de bloqueio sempre que realizar acesso WEB.
  
* Porta 8092: Tela de aviso de Bloqueio.
 
  
* Porta 8093: Tela de aviso de Cancelamento.
+
CANCELAMENTO sem notificação - '''brb-cancel-auth''' - Bloqueio de tráfego
 +
* Bloqueio da navegação do cliente.
 +
CANCELAMENTO com notificação - '''brb-cancel-notice''' - Redirecionamento porta 8093
 +
* Bloqueio da navegação do cliente, redirecionamento para a página de cancelamento sempre que realizar acesso WEB.
  
  
Explicação completa no nosso fórum.
+
DESABILITADO - '''brb-disabled''' - Redirecionamento porta 8093
 +
* Bloqueio total da navegação e desativação do Contrato do cliente.
 +
* Status só aparece em procedimentos do usuário ativo e em processo de desconexão
  
[https://community.brbyte.com/forum/view/post/5222 https://community.brbyte.com/forum/view/post/5222]
+
Pode se criar uma 'Scheduller', no Mikrotik ou concentrador, removendo o usuário da address list voltando o acesso.  
 +
Entretanto sua velocidade de acesso internet permanecerá com a velocidade Reduzida.
  
 +
==Dicas e Download do script==
  
'''Atenção onde estão os IPs "192.168.0.0" deve ser alterado para o IP do seu Controllr'''
+
'''Atenção onde estão os IPs "192.168.0.0" deve ser alterado para o IP do seu Controllr
  
 +
''' Segue link para download do ''' [https://goo.gl/ZaFWQj ''' script em TXT ''' ]
  
  
Linha 54: Linha 232:
  
 
''' Segue link para download do ''' [https://goo.gl/ZaFWQj ''' script em TXT ''' ]
 
''' Segue link para download do ''' [https://goo.gl/ZaFWQj ''' script em TXT ''' ]
 +
 +
==Regras Opcionais==
 +
Uma explicação básica de como é a logica do funcionamento das regras opcionais contidas neste manual.
 +
 +
ATENÇÃO Só aplique essa regra, se souber o que ela faz.
 +
 +
 +
===Página Customizada===
 +
 +
Regra para redirecionamento para [[Controllr/Aplicativos/Configurações#Customizado_8096|Página de Aviso Customizado]] por padrão esta regra vem desabilitada pois redireciona '''todos usuários''' do concentrador sem critério.
 +
 +
    /ip firewall nat
 +
    add action=dst-nat chain=dstnat comment=CTLR-MSG-AVISO disabled=yes dst-port=80,443 protocol=tcp to-addresses=172.30.254.2 to-ports=8096
 +
 +
Ps. Esta regra trabalha em conjunto com a [[Controllr/Manual/Regras_de_Bloqueio_e_Pendencia#Netwatch|NETWATCH]] deste capitulo onde o monitoramento é responsável por Ativar e Desativar esta NAT
 +
 +
 +
===Netwatch===
 +
 +
Essa regra fica pingando o DNS do Google para verificar se sua rede tem internet, se por um acaso '''parar de pingar será habilitado a regra de redirecionamento para todos os clientes para a tela de [[Controllr/Aplicativos/Configurações#Customizado_8096|Aviso Customizado]] do Controllr'''.
 +
 +
Assim como as demais [[Controllr/Aplicativos/Configurações#P.C3.A1ginas_.28Mensagens.29|Páginas de Aviso]] podem ser configuradas.
 +
 +
 +
    /tool netwatch
 +
    add disabled=yes down-script="/ip firewall nat set [find comment=\"CTLR-MSG-AVISO\"] disabled=no" host=8.8.8.8 interval=30m up-script="/ip firewall nat set [find comment=\"CTLR-MSG-AVISO\"] disabled=yes"
 +
 +
 +
 +
 +
===Limpeza de Notificação===
 +
 +
ATENÇÃO Só aplique essa regra, se souber o que ela faz.
 +
 +
Se não quiser utilizar a regulamentação para notificar o cliente (obrigar login e registro de leitura) poderá notifica-lo de 4 em 4 horas por 2 minutos. (Esse tempo pode ser alterado, conforme a sua necessidade)
 +
Para essa regra funcionar TEM que deixar desabilitado as regras de filter rules e de NAT com o comentário CTLR-MSG-NOTIFICACAO
 +
 +
    /system scheduler
 +
    add disabled=yes interval=4h name="CTLR-MSG-NOTIFICACAO" on-event=\
 +
        ":foreach nat in=[/ip firewall nat find comment=\"CTLR-MSG-NOTIFICACAO\"] do={/ip firewall nat enable \$nat}\r\
 +
        \n:foreach drop in=[/ip firewall filter find comment=\"CTLR-MSG-NOTIFICACAO\"] do={/ip firewall filter enable \$drop}\r\
 +
        \n:delay 120s\r\
 +
        \n:foreach nat in=[/ip firewall nat find comment=\"CTLR-MSG-NOTIFICACAO\"] do={/ip firewall nat disable \$nat}\r\
 +
        \n:foreach drop in=[/ip firewall filter find comment=\"CTLR-MSG-NOTIFICACAO\"] do={/ip firewall filter disable \$drop}" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup
 +
 +
 +
 +
===Identificar IP do Radius===
 +
 +
Devido a NAT na rede ou outros roteamento inadequado o endereço IP dos pacotes originados pelo Controllr pode sofrer alteração de IP chegando no MK com outro endereço e muitas vezes negado por desconhecer este IP como um Radius.
 +
 +
Para saber qual o IP que está chegando na volta do Controllr para o Mikrotik. Se o Controllr não estiver derrubando os clientes do Mikrotik
 +
 +
Se for um IP diferente do cadastrado no Radius do Mikrotik, deve-se cadastar esse IP também no Radius do Mikrotik.
 +
 +
 +
    /ip firewall filter
 +
    add action=add-src-to-address-list address-list=RADIUS_LOG address-list-timeout=1d chain=input comment="MONITORAMENTO RADIUS" dst-port=3799 protocol=udp
 +
 +
 +
 +
 +
 +
==Vídeo==
 +
 +
<div class="video-container">
 +
{{#ev:youtube|https://youtu.be/QJAdH2iDwmc}}
 +
</div>
 +
 +
  
 
__NOEDITSECTION__
 
__NOEDITSECTION__
 
[[Category:Controllr]]
 
[[Category:Controllr]]
[[Category:Regras]]
+
[[Category:Manual]]
 
[[Category:Bloqueio]]
 
[[Category:Bloqueio]]
 
[[Category:Pendencia]]
 
[[Category:Pendencia]]

Edição atual tal como às 18h31min de 28 de fevereiro de 2023

Regras Controllr 2.0

{
######## Substituir os VALUE="XXXX" com as informacoes corretas, para a integracao do MK com o Controllr ########
:global name="IpControllr" value="192.168.142.97";
:global name="IpControllrPublico" value="192.168.142.97";
:global name="IpNas" value="192.168.142.210";
:global name="PortaIncoming" value="3799";
:global name="Senha" value="brbyte";
# Se tiver perfis notifica ira usar Check "sim"
:global name="Check" value="sim";
#################################################################################################################
: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=$IpControllr comment="####CONTROLLR####" secret=$Senha service=ppp src-address=$IpNas timeout=3s disabled=no};
:delay 5s;
:log warning "Habilitando o Incoming";
/radius incoming set accept=yes port=$PortaIncoming;
:delay 5s;
:log warning "Setando as regras do Filter rules";
:log warning "Removendo regras antigas";
/ip firewall filter {
remove [find comment="CONTROLLR"]
remove [find comment~"CTLR-MSG"]
remove [find comment="Controllr"]}; 
:log warning "Recriando os filter rules";
/ip firewall filter {
add action=accept chain=forward  comment="CONTROLLR" dst-port=7840 protocol=tcp
add action=drop   chain=forward   comment="CTLR-MSG-ALERT"   disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-alert-notice"
add action=drop   chain=forward   comment="CTLR-MSG-ALERT"   disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-alert-notice"
add action=drop   chain=forward   comment="CTLR-MSG-BLOCK"   disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-block-notice"
add action=drop   chain=forward   comment="CTLR-MSG-BLOCK"   disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-block-notice"
add action=drop   chain=forward   comment="CTLR-MSG-CANCEL"  disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-cancel-notice"
add action=drop   chain=forward   comment="CTLR-MSG-CANCEL"  disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-cancel-notice"
add action=drop   chain=forward   comment="CTLR-MSG-BLOCK"   disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-block-auth"
add action=drop   chain=forward   comment="CTLR-MSG-BLOCK"   disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-block-auth"
add action=drop   chain=forward   comment="CTLR-MSG-CANCEL"  disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-cancel-auth"
add action=drop   chain=forward   comment="CTLR-MSG-CANCEL"  disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-cancel-auth"
add action=drop   chain=forward   comment="CTLR-MSG-DISABLE" disabled=no dst-address-list=!released_ips dst-port=!53 protocol=udp src-address-list="brb-disabled"
add action=drop   chain=forward   comment="CTLR-MSG-DISABLE" disabled=no dst-address-list=!released_ips protocol=tcp src-address-list="brb-disabled"};
:delay 5s;
#OBS Essa regra serve para saber qual o IP do seu Controllr, que está vindo com o Comando de desconexao.
:log warning "Regra do radius log";
:log warning "Removendo regra do log antiga";
/ip firewall filter remove [find comment="CTLR-RADIUS-LOG"];
:log warning "Recriando regra do radiuslog";
/ip firewall filter add action=add-src-to-address-list address-list=radius_log address-list-timeout=30m chain=input comment=CTLR-RADIUS-LOG dst-port=$PortaIncoming protocol=udp;
:log warning "Setando as regras de redirecionamento - NAT para acessar o seu Controllr fora da rede";
:log warning "Removendo redirecionamentos antigos"; 
/ip firewall nat remove [find comment~"ACESSO"];
:log warning "Recriando os redirecionamentos";
:if ([$IpControllrPublico] =$IpControllr) do={:log warning "IP da maquina e igual o ip publico. Nao tem dst-nat"} else={/ip firewall nat {
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-WEB-HTTP"      dst-port=8080 protocol=tcp to-addresses=$IpControllr to-ports=8080
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-WEB-HTTPS"     dst-port=8443 protocol=tcp to-addresses=$IpControllr to-ports=8443
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-SSH"           dst-port=2229 protocol=tcp to-addresses=$IpControllr to-ports=2229
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-SERVICO"       dst-port=8083 protocol=tcp to-addresses=$IpControllr to-ports=8083
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-HOTSITE-HTTP"  disabled=yes dst-address=$IpControllrPublico dst-port=80  protocol=tcp to-addresses=$IpControllr to-ports=80
add action=dst-nat chain=dstnat comment="CTLR-ACESSO-HOTSITE-HTTPS" disabled=yes dst-address=$IpControllrPublico dst-port=443 protocol=tcp to-addresses=$IpControllr to-ports=443};
};
#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";
:log warning "Removendo redirecionamentos antigos de pendencias";
/ip firewall nat remove [find comment~"CTLR-MSG"];
:log warning "Recriando os redirecionamento de pendencias";
:if ([$Check] ="nao") do={:log warning "Nao ira redirecionar";} else={/ip firewall nat{
add action=dst-nat chain=dstnat comment="CTLR-MSG-ALERT-HTTP"   	 disabled=no  dst-address-list=!released_ips dst-port=80  protocol=tcp src-address-list=brb-alert-notice     to-addresses=$IpControllr to-ports=8090
add action=dst-nat chain=dstnat comment="CTLR-MSG-ALERT-HTTPS"  	 disabled=no  dst-address-list=!released_ips dst-port=443 protocol=tcp src-address-list=brb-alert-notice     to-addresses=$IpControllr to-ports=8490
add action=dst-nat chain=dstnat comment="CTLR-MSG-PENDENCY-HTTP"     disabled=no  dst-address-list=!released_ips dst-port=80  protocol=tcp src-address-list=brb-pendency-notice  to-addresses=$IpControllr to-ports=8091
add action=dst-nat chain=dstnat comment="CTLR-MSG-PENDENCY-HTTPS"    disabled=no  dst-address-list=!released_ips dst-port=443 protocol=tcp src-address-list=brb-pendency-notice  to-addresses=$IpControllr to-ports=8491
add action=dst-nat chain=dstnat comment="CTLR-MSG-BLOCK-HTTP"        disabled=no  dst-address-list=!released_ips dst-port=80  protocol=tcp src-address-list=brb-block-notice     to-addresses=$IpControllr to-ports=8092
add action=dst-nat chain=dstnat comment="CTLR-MSG-BLOCK-HTTPS"     	 disabled=no  dst-address-list=!released_ips dst-port=443 protocol=tcp src-address-list=brb-block-notice     to-addresses=$IpControllr to-ports=8492
add action=dst-nat chain=dstnat comment="CTLR-MSG-CANCEL-HTTP"  	 disabled=no  dst-address-list=!released_ips dst-port=80  protocol=tcp src-address-list=brb-cancel-notice    to-addresses=$IpControllr to-ports=8093
add action=dst-nat chain=dstnat comment="CTLR-MSG-CANCEL-HTTPS" 	 disabled=no  dst-address-list=!released_ips dst-port=443 protocol=tcp src-address-list=brb-cancel-notice    to-addresses=$IpControllr to-ports=8493};
};
:delay 5s;
#OBS essa regra serve para notificar todos os seus clientes, caso tenha alguma manutencao na sua rede ou outra coisa, so habilite ela caso saiba como funciona.
:log warning "Redirecionamento para a tela de aviso";
:log warning "Removendo redirecionamentos de aviso antigos";
/ip firewall nat remove [find comment~"CTLR-AVISO"];
/tool netwatch remove [find comment="CTLR-AVISO"];
:delay 5s;
:log warning "Criando regras mangle";
:log warning "Removendo mangle antigo";
/ip firewall mangle remove [find comment~"CTLR"];
:log  warning "Recriando regras do mangle";
:if ([$Check] ="sim") do={:log warning "Ira usar perfis com NOTICE e AUTH"; /ip firewall mangle {
add action=jump chain=prerouting  comment=CTLR-JUMP-ALERT    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-alert-notice"
add action=jump chain=prerouting  comment=CTLR-JUMP-PENDENCY dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-pendency-notice"
add action=jump chain=prerouting  comment=CTLR-JUMP-BLOCK    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-block-notice"
add action=jump chain=prerouting  comment=CTLR-JUMP-CANCEL   dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-cancel-notice"
add action=jump chain=prerouting  comment=CTLR-JUMP-ALERT    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-alert-auth"
add action=jump chain=prerouting  comment=CTLR-JUMP-PENDENCY dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-pendency-auth"
add action=jump chain=prerouting  comment=CTLR-JUMP-BLOCK    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-block-auth"
add action=jump chain=prerouting  comment=CTLR-JUMP-CANCEL   dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-cancel-auth"
add action=jump chain=prerouting  comment=CTLR-JUMP-DISABLE  dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-disabled"
add action=accept chain=CONTROLLR comment=CTLR-CHAIN-ACCEPT};
} else={:log warning "Nao usa dois perfis"; /ip firewall mangle { 
add action=jump chain=prerouting  comment=CTLR-JUMP-ALERT     dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-alert-notice"
add action=jump chain=prerouting  comment=CTLR-JUMP-PENDENCY  dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-pendency-auth"
add action=jump chain=prerouting  comment=CTLR-JUMP-BLOCK     dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-block-auth"
add action=jump chain=prerouting  comment=CTLR-JUMP-CANCEL    dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-cancel-auth"
add action=jump chain=prerouting  comment=CTLR-JUMP-DISABLE   dst-address-list=!released_ips jump-target=CONTROLLR src-address-list="brb-disabled"
add action=accept chain=CONTROLLR comment=CTLR-CHAIN-ACCEPT};
};
:delay 5s;
:log warning "Criando address list";
:log warning "Removendo released_ips antigos";
/ip firewall address-list remove [find list=released_ips];
:if ([$IpControllrPublico] =$IpControllr) do={:log warning "IP da maquina e igual o ip publico"; /ip firewall address-list {
add address=$IpControllr       list=released_ips
add address=8.8.8.8       list=released_ips
add address=8.8.4.4       list=released_ips};
} else={/ip firewall address-list {
add address=$IpControllr       list=released_ips
add address=8.8.8.8       list=released_ips
add address=8.8.4.4       list=released_ips
add address=$IpControllrPublico list=released_ips};
};
:delay 5s;
:log warning "Configurando Scheduler - Agendador";
/system scheduler {
remove [find name="Pendency"]
remove [find name~"CTLR-MSG"]
add interval=2m name="CTLR-MSG-PENDENCY" on-event="/ip firewall address-list set list=\"brb-pendency-auth\" [find where list=\"brb-pendency-notice\"]" 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";
}

PasteBin Clique aqui para acessar o site



Regras de Bloqueio e Pendência

Para configurar a exibição das páginas de bloqueio primeiro é necessário testar o acesso a página de bloqueio e pendência manualmente, através do ip local do seu controllr na porta 8091 e 8092.

   ex: http://192.168.10.2:8091.

Caso não apareça a tela de bloqueio e pendência nestes endereços você deve abrir o aplicativo Configurações do Controllr > Endereços do Servidor e clicar em Salvar, pro sistema criar as páginas. Após isso acesse novamente as porta 8091 e 8092 para verificar a exibição das páginas.

Após o procedimento acima e validação da entrega das mensagens pelo sistema, caso não esteja aparecendo a tela de bloqueio pro cliente é por que as configurações das regras de bloqueio e pendência no Mikrotik não estão corretas ou não existem.

Outro detalhe é que a página não aparece quando o cliente tenta acesso em sites HTTPS, (ex: https://facebook.com), as páginas serão exibidas apenas quando o usuário tentar acessar um página HTTP, ou seja sem SSL.


Regras do Mikrotik

A partir dessa versão do Controllr, as regras devem ser atualizadas no seu Mikrotik, pois foram modificados os parâmetros e incluso novas regras, para que seja cumpridas as normas da ANATEL.

As telas de mensagens, foram modificadas:

  • Porta 8090: Página de aviso de Notificação, segundo a ANATEL o Cliente deve ser notificado que está em débito com o Provedor.
  • Porta 8091: Página de aviso de redução de Velocidade (antiga pendência).
  • Porta 8092: Página de aviso de Bloqueio.
  • Porta 8093: Página de aviso de Cancelamento.
  • Porta 8096: Página de aviso Customizado. - Por padrão as regras desta porta encontram-se desabilitadas


Veja como configurar cada uma das Páginas Páginas de Aviso disponível no App Configurações do Controllr.

Explicação completa no nosso fórum.

https://community.brbyte.com/forum/view/post/5222


Características de cada Address List/Status

As address-lists (no Mikrotik) são utilizadas para informar ao concentrador o status atual da sessão. Flexibilizando o administrador do sistema a tomar decisões e ações com determinados usuários, de acordo com a sua situação.

Para facilitar o fluxo de informação, os status são dividos em brb-auth, brb-alert, brb-pendency, brb-block, brb-cancel e brb-disabled. Sendo apendadas de *-notice e *-auth. Útil para informar que o responsável pelo contrato está ciente da situação e sua conexão sofrerá alterações no futuro próximo caso não venha a quitar seu débito junto ao provedor.

Caso não tenha notificação, ou o usuário já tenha lido as notificações, a address-list será apendada com *-auth. Quando houver notificação para o usuário ler a address-lists serão apendadas com *-notice.

HABILIDADO sem notificação - brb-enable-auth HABILIDADO com notificação - brb-enable-notice

ALERTA sem notificação - brb-alert-auth -

  • Usuário ativo, com alerta.

ALERTA com notificação - brb-alert-notice - Redirecionamento porta 8090

  • Bloqueio da navegação do cliente, redirecionado para a página de Alerta sempre que realizar acesso WEB.

REDUÇÃO de VELOCIDADE sem notificação - brb-pendency-auth

  • Bloqueio da navegação do cliente.

REDUÇÃO de VELOCIDADE com notificação - brb-pendency-notice - Redirecionamento porta 8091

  • Bloqueio da navegação do cliente, redirecionado para a página de Redução de Velocidade sempre que realizar acesso WEB.

BLOQUEIO sem notificação - brb-block-auth - Bloqueio de tráfego

  • Bloqueio da navegação do cliente.

BLOQUEIO com notificação - brb-block-notice - Redirecionamento porta 8092

  • Bloqueio da navegação do cliente, redirecionado para a página de bloqueio sempre que realizar acesso WEB.


CANCELAMENTO sem notificação - brb-cancel-auth - Bloqueio de tráfego

  • Bloqueio da navegação do cliente.

CANCELAMENTO com notificação - brb-cancel-notice - Redirecionamento porta 8093

  • Bloqueio da navegação do cliente, redirecionamento para a página de cancelamento sempre que realizar acesso WEB.


DESABILITADO - brb-disabled - Redirecionamento porta 8093

  • Bloqueio total da navegação e desativação do Contrato do cliente.
  • Status só aparece em procedimentos do usuário ativo e em processo de desconexão

Pode se criar uma 'Scheduller', no Mikrotik ou concentrador, removendo o usuário da address list voltando o acesso. Entretanto sua velocidade de acesso internet permanecerá com a velocidade Reduzida.

Dicas e Download do script

Atenção onde estão os IPs "192.168.0.0" deve ser alterado para o IP do seu Controllr

Segue link para download do script em TXT


Regras block e pendency anatel.png


Segue link para download do script em TXT

Regras Opcionais

Uma explicação básica de como é a logica do funcionamento das regras opcionais contidas neste manual.

ATENÇÃO Só aplique essa regra, se souber o que ela faz.


Página Customizada

Regra para redirecionamento para Página de Aviso Customizado por padrão esta regra vem desabilitada pois redireciona todos usuários do concentrador sem critério.

   /ip firewall nat
   add action=dst-nat chain=dstnat comment=CTLR-MSG-AVISO disabled=yes dst-port=80,443 protocol=tcp to-addresses=172.30.254.2 to-ports=8096

Ps. Esta regra trabalha em conjunto com a NETWATCH deste capitulo onde o monitoramento é responsável por Ativar e Desativar esta NAT


Netwatch

Essa regra fica pingando o DNS do Google para verificar se sua rede tem internet, se por um acaso parar de pingar será habilitado a regra de redirecionamento para todos os clientes para a tela de Aviso Customizado do Controllr.

Assim como as demais Páginas de Aviso podem ser configuradas.


   /tool netwatch
   add disabled=yes down-script="/ip firewall nat set [find comment=\"CTLR-MSG-AVISO\"] disabled=no" host=8.8.8.8 interval=30m up-script="/ip firewall nat set [find comment=\"CTLR-MSG-AVISO\"] disabled=yes"



Limpeza de Notificação

ATENÇÃO Só aplique essa regra, se souber o que ela faz.

Se não quiser utilizar a regulamentação para notificar o cliente (obrigar login e registro de leitura) poderá notifica-lo de 4 em 4 horas por 2 minutos. (Esse tempo pode ser alterado, conforme a sua necessidade) Para essa regra funcionar TEM que deixar desabilitado as regras de filter rules e de NAT com o comentário CTLR-MSG-NOTIFICACAO

   /system scheduler
   add disabled=yes interval=4h name="CTLR-MSG-NOTIFICACAO" on-event=\
       ":foreach nat in=[/ip firewall nat find comment=\"CTLR-MSG-NOTIFICACAO\"] do={/ip firewall nat enable \$nat}\r\
       \n:foreach drop in=[/ip firewall filter find comment=\"CTLR-MSG-NOTIFICACAO\"] do={/ip firewall filter enable \$drop}\r\
       \n:delay 120s\r\
       \n:foreach nat in=[/ip firewall nat find comment=\"CTLR-MSG-NOTIFICACAO\"] do={/ip firewall nat disable \$nat}\r\
       \n:foreach drop in=[/ip firewall filter find comment=\"CTLR-MSG-NOTIFICACAO\"] do={/ip firewall filter disable \$drop}" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup


Identificar IP do Radius

Devido a NAT na rede ou outros roteamento inadequado o endereço IP dos pacotes originados pelo Controllr pode sofrer alteração de IP chegando no MK com outro endereço e muitas vezes negado por desconhecer este IP como um Radius.

Para saber qual o IP que está chegando na volta do Controllr para o Mikrotik. Se o Controllr não estiver derrubando os clientes do Mikrotik

Se for um IP diferente do cadastrado no Radius do Mikrotik, deve-se cadastar esse IP também no Radius do Mikrotik.


   /ip firewall filter
   add action=add-src-to-address-list address-list=RADIUS_LOG address-list-timeout=1d chain=input comment="MONITORAMENTO RADIUS" dst-port=3799 protocol=udp



Vídeo