meta data for this page
  •  

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
integracao_mikrotik [2019/02/28 09:23]
raylan
integracao_mikrotik [2023/12/26 16:40] (atual)
Linha 1: Linha 1:
 ====== Integração com MikroTik ====== ====== Integração com MikroTik ======
 Para integrar o MikroTik ao sistema acesse-o através de SSH ou, Winbox e Execute os seguintes comandos: Para integrar o MikroTik ao sistema acesse-o através de SSH ou, Winbox e Execute os seguintes comandos:
-<​note ​important>+<​note ​importante>
 Substitua as seguintes variáveis nos comandos abaixo de acordo com sua configuração:​ Substitua as seguintes variáveis nos comandos abaixo de acordo com sua configuração:​
-  * **IP_DO_SGP** - IP que o SGP usará para conectar-se ao MikroTikSe estiver utilizando VPN do SGP, verifique a configuração ​de VPN com o suporte ​do SGP+  * **AUC** - Porta do accounting, se o SGP for LOCAL a porta é padrão 1812 se for Nuvem consultar SUPORTE. 
-  * **PORTA_BLOQUEIO** - Porta em que a página de bloqueio será exibida. Consulte a [[tabela_variaveis|tabela de variáveis]]. +  * **ACC** ​Porta do authentication, ​se o SGP for LOCAL a porta é padrão 1813 se for Nuvem consultar SUPORTE. 
-  * **PORTA_BLOQUEIO_AVISO** - Porta em que a página de aviso de bloqueio será exibida. Consulte a [[tabela_variaveis|tabela de variáveis]]. +  * **LINKDOSGP** - URL do SGP (ex: http://​meusgplocal.com.br:​8000 ou https://​meusgpnuvem.sgp.net.br) 
-  * **PASSWORD_USUARIO_SGP** - Password que o SGP Utilizará para acessar o NAS. Recomendamos que seja gerada por mecanismos de geração de password com um tamanho ​minimo ​de 15 caracteres. Armazene essa senha em um local seguro, ela será necessária para configurar o SGP. No Linux, é possível criar a senha com o comando **openssl rand - -hex 15**.+  * **TOKEN** - Token mikrotik do SGP. 
 +  * **RADIUS** - IP que o SGP respondeem caso de Nuvem será IP que responde ou o gateway da VPN fornecida pelo suporte. 
 +  * **BLQ** - Porta em que a página de bloqueio será exibida ​se o SGP for LOCAL é padrão 6403. Consulte a [[tabela_variaveis|tabela de variáveis]] ​para ver o conteúdo da pagina
 +  * **AVS** - Porta em que a página de aviso de bloqueio será exibida ​se o SGP for LOCAL é padrão 6403. Consulte a [[tabela_variaveis|tabela de variáveis]] ​para ver o conteúdo da pagina
 +  * **PASSVPNUSER** - Password que o SGP Utilizará para acessar o NAS. Recomendamos que seja gerada ​(se usar VPN usa-se a mesma senha) ​por mecanismos de geração de password com um tamanho ​mínimo ​de 15 caracteres. Armazene essa senha em um local seguro, ela será necessária para configurar o SGP. No Linux, é possível criar a senha com o comando **openssl rand - -hex 15**.
 </​note>​ </​note>​
  
Linha 14: Linha 18:
  
 <​code>​ <​code>​
-/radius incoming set accept=yes 
  
-/ip service set api address=IP_DO_SGP ​disabled=no port=3540 +    :global AUC "​1812"​ 
-/user add name=SGP ​group=full address=IP_DO_SGP ​comment="​USUARIO QUE O SGP UTILIZA ​PARA LOGAR NA RB" password=PASSWORD_USUARIO_SGP+    :global ACC "​1813"​ 
 +    :global AVS "​6402"​ 
 +    :global BLQ "​6403"​ 
 +    :global PASSVPNUSER "​PASSWORD_FORT"​ 
 +    :global RADIUS "IP DO RADIUS"​ 
 +    :global TOKEN "TOKEN MIKROTIK"​ 
 +    :global LINKDOSGP "​http://​x.x.x.x:​8000"​ 
 +    :global IPSGP "IP DO SGP" 
 +     
 +    :global NAS "​IP_DO_NAS"​ 
 +     
 +     
 +    /system backup save name=BACKUP_ANTES_DO_SGP 
 +    /export file=BACKUP_ANTES_DO_SGP_TXT 
 +    # REGRAS DE AVISO E BLOQUEIO 
 +    /system ntp client set enabled=yes primary-ntp=200.160.0.8 
 +    /system clock set time-zone-name=America/​Recife 
 +    /radius incoming set accept=yes 
 +    ​/ip service set api disabled=no port=3540 ​address="​$RADIUS,​$IPSGP"​ 
 +    /user aaa set use-radius=yes 
 +    /ppp aaa set interim-update=5m use-radius=yes 
 +    /snmp community disable public 
 +    /snmp community ​add addresses="​$RADIUS,​$IPSGP" ​name=SGP-GRAPHICs 
 +    /snmp set enabled=yes trap-community=SGP-GRAPHICs trap-version=2 
 +    /user add name=SGP ​comment="​NAO MUDAR SENHA E NÃO ALERAR NADA, USUARIO QUE O SERVIDOR ​SGP ACESSA A RB" \ 
 +        group=full password=$PASSVPNUSER 
 +    /system logging set 0 action=memory disabled=no prefix=""​ topics=info,​!account 
 +    /radius 
 +    add comment="​RADIUS SGP" secret=sgp@radius service=ppp,​dhcp address=$RADIUS accounting-port=$ACC \ 
 +        authentication-port=$AUC timeout=00:​00:​03 src-address=$NAS 
 +     
 +    # REGRAS DE AVISO E BLOQUEIO 
 +     
 +    /ip firewall address-list  
 +    add address=$RADIUS list=SITES-LIBERADOS 
 +    add address=$IPSGP list=SITES-LIBERADOS 
 +    add address=208.67.222.222 list=SITES-LIBERADOS 
 +    add address=208.67.222.220 list=SITES-LIBERADOS 
 +    add address=8.8.8.8 list=SITES-LIBERADOS 
 +    add address=8.8.4.4 list=SITES-LIBERADOS 
 +    add address=1.1.1.1 list=SITES-LIBERADOS 
 +    add address=10.24.0.0/​20 list=BLOQUEADOS 
 +     
 +    /ip firewall filter 
 +    add chain=forward connection-mark=BLOQUEIO-AVISAR action=add-src-to-address-list \ 
 +        address-list=BLOQUEIO-AVISADOS address-list-timeout=00:​01:​00 comment="​SGP REGRAS"​ dst-address=$IPSGP \ 
 +        dst-port=$AVS protocol=tcp 
 +    /ip firewall nat 
 +    add action=masquerade chain=srcnat comment="​SGP REGRAS"​ dst-address-list=\ 
 +        SITES-LIBERADOS src-address-list=BLOQUEADOS 
 +    add action=dst-nat chain=dstnat comment="​SGP REGRAS"​ dst-address-list=\ 
 +        !SITES-LIBERADOS dst-port=80,​443 log-prefix=""​ protocol=tcp \ 
 +        src-address-list=BLOQUEADOS to-addresses=$IPSGP to-ports=$BLQ  
 +    add action=dst-nat chain=dstnat comment="​SGP REGRAS"​ connection-mark=\ 
 +        BLOQUEIO-AVISAR log-prefix=""​ protocol=tcp to-addresses=$IPSGP to-ports=$AVS 
 +    /ip firewall mangle 
 +    add chain=prerouting connection-state=new src-address-list=BLOQUEIO-AVISAR protocol=tcp dst-port=80,​443 \ 
 +        action=mark-connection new-connection-mark=BLOQUEIO-VERIFICAR passthrough=yes comment="​SGP REGRAS"​  
 +    add chain=prerouting connection-mark=BLOQUEIO-VERIFICAR src-address-list=!BLOQUEIO-AVISADOS \ 
 +        action=mark-connection new-connection-mark=BLOQUEIO-AVISAR comment="​SGP REGRAS"​  
 +    /ip firewall raw 
 +    add action=notrack chain=output comment="​SGP NAO FAZER NAT PARA O RADIUS"​ \ 
 +        dst-address=$RADIUS dst-port="​$AUC-$ACC,​3799"​ protocol=udp 
 +    add action=drop chain=prerouting comment="​SGP BLOQUEIO"​ dst-address-list=\ 
 +        !SITES-LIBERADOS src-address-list=BLOQUEADOS 
 +    /system scheduler 
 +    add interval=4h name=sgp-aviso on-event=sgp-aviso policy=\ 
 +        ftp,​reboot,​read,​write,​policy,​test,​password,​sniff,​sensitive start-time=01:​00:​00 disabled=yes 
 +    /system script 
 +    add name=sgp-aviso policy=\ 
 +        ftp,​reboot,​read,​write,​policy,​test,​password,​sniff,​sensitive source=":​log info\ 
 +        \_\"​sgp aviso\";​\r\ 
 +        \n/file remove [find where name=sgp_aviso.rsc]\r\ 
 +        \n/tool fetch url=\"​$LINKDOSGP/​ws/​mikrotik/​aviso/​pendencia/​\\?​token=$TOKEN&​app=mikrotik\"​ dst-path=sgp_aviso.rsc;​\r\ 
 +        \n:delay 30s\r\ 
 +        \nimport file-name=sgp_aviso.rsc;​\r\ 
 +        \n:delay 10s;\r\ 
 +        \n/ip firewall address-list set timeout=00:​15:​00 [/ip firewall address-list find list=BLOQUEIO-AVISAR]";​\ 
 +     
 +    # CONFIGURACAO IPv6 MIKROTIK 
 +     
 +    :global versao [/system package get number=0 version ]; :global versao2 [:pick $versao 0 [:find "​$versao"​ "​."​ -3]]; 
 +    :delay 2s 
 +    :put $versao2 
 +    :if ($versao2=7) do={ 
 +        :global ipv6 [/ipv6 settings get disable-ipv6] 
 +        :if ($ipv6=false) do={ 
 +        :log info "############​\nTEM IPV6 HABILITADO NESSA RB - CONFIGURAR VARIAVEIS E SCRIPT NO PROFILE\n############​" 
 +        :log info "​CONFIGURANDO O POOL DE BLOQUEIO IPv6"​ 
 +        /ipv6 pool add name=bloqueiov6pd prefix-length=64 prefix=2001:​DB9:​100::/​40 
 +        /ipv6 pool add name=bloqueiov6prefix prefix-length=64 prefix=2001:​DBA:​900::/​40 ​    
 +        } else={ 
 +            :log info "############​\nNAO TEM IPV6 HABILITADO NESSA RB\n############"​ 
 +        } 
 +    } else={ 
 +        :if ($versao2=6) do={ 
 +        :global ipv6 [/system package get ipv6 disabled ] 
 +        :if ($ipv6=false) do={ 
 +        :log info "############​\nTEM IPV6 HABILITADO NESSA RB - CONFIGURAR VARIAVEIS E SCRIPT NO PROFILE\n############"​ 
 +        :log info "​CONFIGURANDO O POOL DE BLOQUEIO IPv6"​ 
 +        /ipv6 pool add name=bloqueiov6pd prefix-length=64 prefix=2001:​DB9:​100::/​40 
 +        /ipv6 pool add name=bloqueiov6prefix prefix-length=64 prefix=2001:​DBA:​900::/​40 ​   
 +        } else={ 
 +        :log info "############​\nNAO TEM IPV6 HABILITADO NESSA RB\n############"​ 
 +        } 
 +        } 
 +    } 
 +    # CRIAR BACKUP DOS PPPoEs 
 +     
 +    :global wurl "​ws/​mikrotik/​login/​local"​ 
 +    /system script 
 +    add name=sgp_login_local owner=SGP policy=ftp,​reboot,​read,​write,​policy,​test,​password,​sniff,​sensitive,​romon source=":​global filename \"​sgp_login_local.txt\";​\r\ 
 +        \n/file remove [/file find name=\$filename]\r\ 
 +        \n/tool fetch url=\"​$LINKDOSGP/​$wurl/​\\?​token=$TOKEN&​app=mikrotik&​nas=$NAS&​disabled=1\"​ duration=30 dst-path=\$filename;​\r\ 
 +        \n:delay 32s;\r\ 
 +        \n/import file-name=\$filename;"​ 
 +    /system scheduler 
 +    add disabled=no interval=6h name=sgp_login_local on-event=sgp_login_local policy=\ 
 +        ftp,​reboot,​read,​write,​policy,​test,​password,​sniff,​sensitive,​romon start-time=12:​00:​00 
 +    /tool netwatch 
 +    add comment="​ATIVAR O SECRETS CASO O RADIUS PARE" disabled=yes \ 
 +        down-script="/​ppp secret ; :foreach i in [ find comment~\"​SGP:​\ 
 +        \" ] do={ enable \$i }; /ppp active; :foreach p in [find \\ radius=no comment~\"​SGP:​\"​] do=\ 
 +        { remove \$p; :delay 1};" host=$RADIUS interval=3m timeout=10000ms \ 
 +        up-script="/​ppp secret ; :foreach i in [ find comment~\"​SGP:​\"​ ] do={ disa\ 
 +        ble \$i }; /ppp active; :foreach p in [find \\ radius=no comment~\"​SGP:​\"​] do={ remove \$p;\ 
 +        \_:delay 1};" 
 +    :log print where message="​TEM IPV6 HABILITADO NESSA RB - CONFIGURAR VARIAVEIS E SCRIPT NO PROFILE"​ or message="​NAO TEM IPV6 HABILITADO NESSA RB" 
 +     
 +    #Script Integração 
 +    #Systema de Gerenciamento de provedores - SGP
  
-/user aaa set use-radius=yes 
-/ppp aaa set interim-update=5m use-radius=yes 
  
-/tool graphing set page-refresh=300 store-every=5min +</code>
-/tool graphing interface add allow-address=0.0.0.0/​0 disabled=no interface=all store-on-disk=yes +
-/tool graphing queue add allow-address=0.0.0.0/​0 allow-target=yes disabled=no simple-queue=all store-on-disk=yes +
-/tool graphing resource add allow-address=0.0.0.0/​0 disabled=no store-on-disk=yes+
  
-/ip firewall address-list add address=IP_DO_SGP list=SITES-LIBERADOS 
-/ip firewall address-list add address=208.67.222.222 list=SITES-LIBERADOS 
-/ip firewall address-list add address=208.67.222.220 list=SITES-LIBERADOS 
-/ip firewall address-list add address=8.8.8.8 list=SITES-LIBERADOS 
-/ip firewall address-list add address=8.8.4.4 list=SITES-LIBERADOS 
-/ip firewall address-list add address=1.1.1.1 list=SITES-LIBERADOS 
-/ip firewall address-list add address=172.16.100.2 list=SITES-LIBERADOS 
-/ip firewall address-list add address=172.16.150.2 list=SITES-LIBERADOS 
-/ip firewall address-list add address=10.24.0.0/​22 list=BLOQUEADOS 
  
-/ip firewall filter add action=drop chain=forward dst-address-list=!SITES-LIBERADOS src-address-list=BLOQUEADOS comment="​SGP REGRAS"​ +Feito isso, acesse o menu **Administração >> Cadastros >> Radius(NAS)**,​ clique nem **Cadastrar NAS** no canto superior direito da página e preencha o formulário de acordo com as configurações do MikroTik. 
-/ip firewall filter add chain=forward connection-mark=BLOQUEIO-AVISAR action=add-src-to-address-list address-list=BLOQUEIO-AVISADOS address-list-timeout=2h comment="​SGP REGRAS"​ dst-address=IP_DO_SGP dst-port=PORTA_BLOQUEIO_AVISO protocol=tcp+{{ :​cadastronas.png?​600 |}}
  
-/ip firewall nat add action=masquerade chain=srcnat comment="​SGP REGRAS"​ src-address-list=BLOQUEADOS +{{ :​captura_de_tela_de_2018-12-28_14-03-57.png |}}
-/ip firewall nat add action=dst-nat chain=dstnat comment="​SGP REGRAS"​ dst-address-list=!SITES-LIBERADOS dst-port=80,​443 log-prefix=""​ protocol=tcp src-address-list=BLOQUEADOS to-addresses=IP_DO_SGP to-ports=PORTA_BLOQUEIO +
-/ip firewall nat add action=dst-nat chain=dstnat comment="​SGP REGRAS"​ connection-mark=BLOQUEIO-AVISAR log-prefix=""​ protocol=tcp to-addresses=IP_DO_SGP ​ to-ports=PORTA_BLOQUEIO_AVISO+
  
-/ip firewall mangle add chain=prerouting connection-state=new src-address-list=BLOQUEIO-AVISAR protocol=tcp dst-port=80 action=mark-connection new-connection-mark=BLOQUEIO-VERIFICAR passthrough=yes comment="​SGP REGRAS"​ 
-/ip firewall mangle add chain=prerouting connection-mark=BLOQUEIO-VERIFICAR src-address-list=!BLOQUEIO-AVISADOS action=mark-connection new-connection-mark=BLOQUEIO-AVISAR comment="​SGP REGRAS"​ 
-</​code>​ 
  
 +<​html>​
  
-Feito isso, acesse o menu **Administração ​>> ​Cadastros >> Radius(NAS)**,​ clique nem **Cadastrar NAS** no canto superior direito da página e preencha o formulário de acordo com as configurações do MikroTik. +<head> 
-{{ :​captura_de_tela_de_2018-12-28_13-39-29.png |}}+    <meta charset="​UTF-8"​ /
 +    <​meta name="​viewport"​ content="​width=device-width, user-scalable=0"​ />
  
-{{ :captura_de_tela_de_2018-12-28_14-03-57.png |}}+<style type="​text/​css">​ 
 +  
 +        p { 
 +          text-align: center; 
 +        } 
 + 
 + 
 +        img{ 
 +          displayblock; 
 +          margin: 0px auto; 
 +          ​-webkit-box-shadow: 9px 7px 5px rgba(50, 50, 50, 0.5); 
 +        ​--moz-box-shadow: ​  9px 7px 5px rgba(50, 50, 50, 0.5); 
 +        -box-shadow: ​       9px 7px 5px rgba(50, 50, 50, 0.5); 
 +        ​} 
 + 
 +</​style>​ 
 + 
 +</​head> ​       
 + 
 + 
 +<​body>​ 
 +          
 +     <​p>​Para verificar se a conexão ocorreu como esperado, click no <b> ícone da engrenagem</​b>​ localizada ao lado do IP do NAS. </​p>​ 
 +     
 +        <img id="​shadow-box"​ src="​http://​wiki.sgp.net.br/​lib/​exe/​fetch.php?​media=nas:​verificar_sessoes_1.png"​ alt="​verificar sessoes 1">​ 
 + <​br><​br>​ 
 + 
 +     <​p>​Caso a comunicação via API do SGP ao NAS esteja correta, irá ser exibida a seguinte mensagem da imagem abaixo em uma nova aba do navegador. Caso contrário, verifique os passos novamente e contate a central de atendimentos.</​p>​ 
 +     <​br>​ 
 + 
 +        <img id="​shadow-box"​ src="​http://​wiki.sgp.net.br/​lib/​exe/​fetch.php?​media=nas:​nas_ok_.png"​ alt="​NAS OK"> ​  
  
-Para verificar a se a conexão ocorreu como esperado, click em **Opções** na NAS cadastrada e escolha a opção **Verificar Sessões**. 
-{{ :​captura_de_tela_de_2018-12-28_14-16-58.png |}} 
  
-Se tudo deu certo, a seguinte página irá ser exibida. Caso contrário, verifique os passos novamente e contate a central de atendimentos.+</​body>​ 
 +</​html>​