Mudanças entre as edições de "Controllr/Manual/Regras de Bloqueio e Pendencia"
(14 revisões intermediárias por 4 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== | ||
+ | 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 | + | * Porta 8092: Página de aviso de Bloqueio. |
− | * Porta | + | * Porta 8093: Página de aviso de Cancelamento. |
− | * Porta | + | * 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. | ||
Explicação completa no nosso fórum. | Explicação completa no nosso fórum. | ||
Linha 32: | Linha 179: | ||
[https://community.brbyte.com/forum/view/post/5222 https://community.brbyte.com/forum/view/post/5222] | [https://community.brbyte.com/forum/view/post/5222 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. | ||
− | Bloqueio - '''brb- | + | REDUÇÃO de VELOCIDADE sem notificação - '''brb-pendency-auth''' |
− | * Bloqueio | + | * 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. | * 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 | '''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 65: | Linha 233: | ||
''' 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: | + | [[Category:Manual]] |
[[Category:Bloqueio]] | [[Category:Bloqueio]] | ||
[[Category:Pendencia]] | [[Category:Pendencia]] |
Edição atual tal como às 18h31min de 28 de fevereiro de 2023
Índice
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
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