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
Próxima revisão Ambos lados da revisão seguinte
integracao_mikrotik [2020/06/16 13:19]
djol
integracao_mikrotik [2022/11/23 15:32]
gabriel
Linha 5: Linha 5:
   * **AUC** - Porta do accounting, se o SGP for LOCAL a porta é padrão 1812 se for Nuvem consultar SUPORTE.   * **AUC** - Porta do accounting, se o SGP for LOCAL a porta é padrão 1812 se for Nuvem consultar SUPORTE.
   * **ACC** - Porta do authentication,​ se o SGP for LOCAL a porta é padrão 1813 se for Nuvem consultar SUPORTE.   * **ACC** - Porta do authentication,​ se o SGP for LOCAL a porta é padrão 1813 se for Nuvem consultar SUPORTE.
-  * **IPVPN** - IP que conecta a VPN (solicitar no suporte caso SGP for nuvem). 
-  * **IPBLQAVS** - IP que direciona para paginas de Aviso e Bloqueio (solicitar no suporte caso SGP for nuvem). 
   * **LINKDOSGP** - URL do SGP (ex: http://​meusgplocal.com.br:​8000 ou https://​meusgpnuvem.sgp.net.br)   * **LINKDOSGP** - URL do SGP (ex: http://​meusgplocal.com.br:​8000 ou https://​meusgpnuvem.sgp.net.br)
 +  * **TOKEN** - Token mikrotik do SGP.
   * **RADIUS** - IP que o SGP responde, em caso de Nuvem será o IP que responde ou o gateway da VPN fornecida pelo suporte.   * **RADIUS** - IP que o SGP responde, em caso de Nuvem será o 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.   * **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.
Linha 20: Linha 19:
 <​code>​ <​code>​
  
-:global USERVPN "USUÁRIO_DA_VPN"+:global USERVPN "LOGIN_VPN" 
 +:global AUC "​x812"​ 
 +:global ACC "​x813"​ 
 +:global AVS "​64xx"​ 
 +:global BLQ "​64xx"​ 
 +:global PASSVPNUSER "​PASSWORD_FORT"​ 
 +:global RADIUS "​172.16.116.1"​ 
 +:global TOKEN "​2a5fadc1-aadd-486a-954b-12041f16cb0b"​ 
 +:global LINKDOSGP "​https://​linkdosgp.sgp.net.br"​ 
 +:global IPSGP "​177.52.36.x"​ 
 + 
 +:global NAS "​IP_NAS"​ 
 + 
 /system backup save name=BACKUP_ANTES_DO_SGP /system backup save name=BACKUP_ANTES_DO_SGP
 /export file=BACKUP_ANTES_DO_SGP_TXT /export file=BACKUP_ANTES_DO_SGP_TXT
-:global PASSVPNUSER ​"SENHA_DA_VPN_E_USUÁRIO+# AJUSTES NO MIKROTIK 
-:global AUC "1812+/system ntp client set enabled=yes primary-ntp=200.160.0.8 
-:global ACC "1813+/system clock set time-zone-name=America/​Recife 
-:global RADIUS ​"IP_DO_RADIUS+/radius incoming set accept=yes 
-:global TOKENAQUI ​"TOKEN_GERADO_NO_SGP+/ip service set api disabled=no port=3540 address="$RADIUS,​$IPSGP
-:global LINKDOSGP "​URL_DO_SGP:8000" +/user aaa set use-radius=yes 
-:global IPVPN "​IP_QUE_CONECTA_VPN"​ +/ppp aaa set interim-update=5m use-radius=yes 
-:global IPBLQAVS ​"IP_AVISO_BLQOUEIO+/snmp community disable public 
-:global AVS "6402+/snmp community add addresses="$RADIUS,​$IPSGP" ​name=SGP-GRAPHICs 
-:global BLQ "6403"+/snmp set enabled=yes trap-community=SGP-GRAPHICs trap-version=2 
 +/ppp secret set service=any [find .id!=999] 
 +/user add name=SGP comment="NAO MUDAR SENHA E NÃO ALTERAR 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,​login address=$RADIUS accounting-port=$ACC \ 
 +    ​authentication-port=$AUC timeout=00:00:03 src-address=$NAS 
 +     
 +/ppp profile add name=VPN-SGP use-encryption=yes 
 +/interface pptp-client add connect-to=$IPSGP user=$USERVPN password=$PASSVPNUSER ​ name="SGP-PPTP"\ 
 +    ​disabled=no comment=SGP-PPTP profile=VPN-SGP keepalive-timeout=30 
 +     
 +/​interface ​ l2tp-client add connect-to=$IPSGP user=$USERVPN password=$PASSVPNUSER name="SGP-L2TP"\ 
 +    ​disabled=no profile=VPN-SGP comment=SGP-L2TP keepalive-timeout=30 
 + 
 +/interface ovpn-client 
 +add connect-to=$IPSGP user=$USERVPN password=$PASSVPNUSER profile=VPN-SGP name="SGP-OVPN"
 +    disabled=no comment=SGP-OVPN 
 +# REGRAS DE AVISO E BLOQUEIO
  
 /ip firewall address-list ​ /ip firewall address-list ​
-add address=$IPVPN list=SITES-LIBERADOS +add address=$RADIUS ​list=SITES-LIBERADOS 
-add address=$IPBLQAVS ​list=SITES-LIBERADOS+add address=$IPSGP list=SITES-LIBERADOS
 add address=208.67.222.222 list=SITES-LIBERADOS add address=208.67.222.222 list=SITES-LIBERADOS
 add address=208.67.222.220 list=SITES-LIBERADOS add address=208.67.222.220 list=SITES-LIBERADOS
Linha 43: Linha 74:
 add address=1.1.1.1 list=SITES-LIBERADOS add address=1.1.1.1 list=SITES-LIBERADOS
 add address=10.24.0.0/​20 list=BLOQUEADOS add address=10.24.0.0/​20 list=BLOQUEADOS
-# Aviso bloqueio  +
-/ip firewall filter  +
-add action=drop chain=forward dst-address-list=!SITES-LIBERADOS src-address-list=BLOQUEADOS comment="​SGP REGRA"+
 /ip firewall filter /ip firewall filter
 add chain=forward connection-mark=BLOQUEIO-AVISAR action=add-src-to-address-list \ 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=$IPBLQAVS ​dst-port=$AVS ​+    ​address-list=BLOQUEIO-AVISADOS address-list-timeout=00:​01:​00 comment="​SGP REGRAS"​ dst-address=$IPSGP \ 
-protocol=tcp  +    ​dst-port=$AVS protocol=tcp 
-/ip firewall nat  +/ip firewall nat 
-add action=accept ​chain=srcnat comment="​NAO FAZER NAT PARA O DO RADIUS" ​+add action=masquerade ​chain=srcnat comment="​SGP REGRAS" dst-address-list=
-    ​dst-address=$RADIUS dst-port="$AUC-$ACC,​3799"​ protocol=udp  +    SITES-LIBERADOS ​src-address-list=BLOQUEADOS
-add action=masquerade chain=srcnat comment="​SGP REGRAS" ​src-address-list=+
-    ​BLOQUEADOS ​+
 add action=dst-nat chain=dstnat comment="​SGP REGRAS"​ dst-address-list=\ add action=dst-nat chain=dstnat comment="​SGP REGRAS"​ dst-address-list=\
     !SITES-LIBERADOS dst-port=80,​443 log-prefix=""​ protocol=tcp \     !SITES-LIBERADOS dst-port=80,​443 log-prefix=""​ protocol=tcp \
-    src-address-list=BLOQUEADOS to-addresses=$IPBLQAVS ​to-ports=$BLQ ​+    src-address-list=BLOQUEADOS to-addresses=$IPSGP to-ports=$BLQ ​
 add action=dst-nat chain=dstnat comment="​SGP REGRAS"​ connection-mark=\ add action=dst-nat chain=dstnat comment="​SGP REGRAS"​ connection-mark=\
-    BLOQUEIO-AVISAR log-prefix=""​ protocol=tcp to-addresses=$IPBLQAVS ​to-ports=$AVS ​ +    BLOQUEIO-AVISAR log-prefix=""​ protocol=tcp to-addresses=$IPSGP to-ports=$AVS
-# Aviso bloqueio ​+
 /ip firewall mangle /ip firewall mangle
 add chain=prerouting connection-state=new src-address-list=BLOQUEIO-AVISAR protocol=tcp dst-port=80,​443 \ 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" ​+    ​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 \ add chain=prerouting connection-mark=BLOQUEIO-VERIFICAR src-address-list=!BLOQUEIO-AVISADOS \
-action=mark-connection new-connection-mark=BLOQUEIO-AVISAR comment="​SGP REGRAS" ​+    ​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 /system scheduler
-add interval=1h name=sgp-aviso on-event=sgp-aviso policy=\ +add interval=4h name=sgp-aviso on-event=sgp-aviso policy=\ 
-    ftp,​reboot,​read,​write,​policy,​test,​password,​sniff,​sensitive ​start-date=\ +    ftp,​reboot,​read,​write,​policy,​test,​password,​sniff,​sensitive start-time=01:​00:​00 ​disabled=yes
-    may/​29/​2017 ​start-time=01:​00:​00+
 /system script /system script
 add name=sgp-aviso policy=\ add name=sgp-aviso policy=\
Linha 75: Linha 105:
     \_\"​sgp aviso\";​\r\     \_\"​sgp aviso\";​\r\
     \n/file remove [find where name=sgp_aviso.rsc]\r\     \n/file remove [find where name=sgp_aviso.rsc]\r\
-    \n/tool fetch url=\"​$LINKDOSGP/​ws/​mikrotik/​aviso/​pendencia/​\?​token=$TOKENAQUI&​app=mikrotik\"​ dst-path=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\     \n:delay 30s\r\
     \nimport file-name=sgp_aviso.rsc;​\r\     \nimport file-name=sgp_aviso.rsc;​\r\
-    \n:delay 10s\r\ +    \n:delay 10s;\r\ 
-    \n/ip firewall address-list set timeout=00:30:00 [/ip firewall address-list find list=BLOQUEIO-AVISAR]"​ +    \n/ip firewall address-list set timeout=00:15:00 [/ip firewall address-list find list=BLOQUEIO-AVISAR]"​;\
-/ip accounting set enabled=yes +
-/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 +
-/user aaa set use-radius=yes +
-/ppp aaa set interim-update=5m use-radius=yes +
-/tool graphing set page-refresh=300 store-every=5min +
-/tool graphing interface add allow-address=$RADIUS disabled=no interface=all store-on-disk=yes +
-/tool graphing queue add allow-address=$RADIUS allow-target=yes disabled=no simple-queue=all store-on-disk=yes +
-/tool graphing resource add allow-address=$RADIUS disabled=no store-on-disk=yes +
-/snmp community add addresses=$RADIUS name=SGP-GRAPHICs +
-/snmp set enabled=yes trap-community=SGP-GRAPHICs trap-version=2 +
-/system logging set 0 action=memory disabled=no prefix=""​ topics=info,​!account +
-/radius +
-add comment="​RADIUS SGP" secret=sgp@radius service=ppp,​dhcp,​login address=$RADIUS accounting-port=$ACC authentication-port=$AUC ​\ +
-    timeout=00:​00:​03 +
-/user add name=SGP comment="​USUARIO QUE O SERVIDOR SGP ACESSA A RB" group=full password=$PASSVPNUSER+
  
-/interface ovpn-client +# CONFIGURACAO IPv6 MIKROTIK 
-add connect-to=$IP user=$USERVPN password=$PASSVPNUSER ​profile=default-encryption ​name="VPN-SGP"​\ + 
-    disabled=no+: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\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 
 +    :log info "​CONFIGURANDO O SCRIPT NOS PROFILE DOS PPPOE SERVER"​ 
 +    /ppp profile set  on-up=":​local \ 
 +        ipv6pool \"​bloqueiov6pd\"​\r\ 
 +        \n:local prefixo\r\ 
 +        \n:local servername \"<​pppoe-\$user>​\"​\r\ 
 +        \n:delay 30s\r\ 
 +        \n:log info [/ipv6 dhcp-server binding find server=\"\$servername\"​]\r\ 
 +        \n:foreach binding in=[/ipv6 dhcp-server binding find status=\"​bound\"​ server=\"​\$servername\"​] do={\r\ 
 +        \n:set prefixo [/ipv6 dhcp-server binding get \$binding address]\r\ 
 +        \n:log info \"​FETCH $LINKDOSGP/​ws/​radius/​ipv6/​update/​\\\?​token=$TOKEN&​username=\$user&​app=mikrotik&​nas\ 
 +        ip=\$NAS&​pd=\$prefixo\"​\r\ 
 +        \n/tool fetch url=\"​$LINKDOSGP/​ws/​radius/​ipv6/​update/​\\\?​token=$TOKEN&​username=\$user&​app=mikrotik&​nasip=\$NAS&​\ 
 +        pd=\$prefixo\"​ mode=http as-value output=user\r\ 
 +        \n}" [find .id!=999] 
 +    /ppp profile ​set on-down=":​local servernam\ 
 +        e \"<​pppoe-\$user>​\"​\r\ 
 +        \n/ipv6 dhcp-server binding remove [find server=\$servername]\r\ 
 +        \n:local servername \"<​pppoe-\$user>​\"​\r\ 
 +        \n/ipv6 dhcp-server remove [find numbers=\$user]\r\ 
 +        \n" [find .id!=999] 
 +    } 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\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 
 +    :log info "CONFIGURANDO O SCRIPT NOS PROFILE DOS PPPOE SERVER"​ 
 +    /ppp profile set  on-up=":​local \ 
 +        ipv6pool \"​bloqueiov6pd\"​\r\ 
 +        \n:local prefixo\r\ 
 +        \n:local servername \"<​pppoe-\$user>​\"​\r\ 
 +        \n:delay 30s\r\ 
 +        \n:log info [/ipv6 dhcp-server binding find server=\"​\$servername\"​]\r\ 
 +        \n:foreach binding in=[/ipv6 dhcp-server binding find status=\"​bound\"​ server=\"​\$servername\"​] do={\r\ 
 +        \n:set prefixo [/ipv6 dhcp-server binding get \$binding address]\r\ 
 +        \n:log info \"​FETCH $LINKDOSGP/​ws/​radius/​ipv6/​update/​\\\?​token=$TOKEN&​username=\$user&​app=mikrotik&​nas\ 
 +        ip=\$NAS&​pd=\$prefixo\"​\r\ 
 +        \n/tool fetch url=\"​$LINKDOSGP/​ws/​radius/​ipv6/​update/​\\\?​token=$TOKEN&​username=\$user&​app=mikrotik&​nasip=\$NAS&​\ 
 +        pd=\$prefixo\"​ mode=http as-value output=user\r\ 
 +        \n}" [find .id!=999] 
 +    /ppp profile set on-down=":​local servernam\ 
 +        e \"<​pppoe-\$user>​\"​\r\ 
 +        \n/ipv6 dhcp-server binding remove [find server=\$servername]\r\ 
 +        \n:local servername \"<​pppoe-\$user>​\"​\r\ 
 +        \n/ipv6 dhcp-server remove [find numbers=\$user]\r\ 
 +        \n" [find .id!=999] 
 +    } 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] 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] do={ remove \$p;\ 
 +    \_:delay 1};" 
 + 
 +:log print where message="​TEM IPV6 HABILITADO NESSA RB" or message="​NAO TEM IPV6 HABILITADO NESSA RB" 
 + 
 +#Script Integração 
 +#Systema de Gerenciamento de provedores - SGP
  
  
Linha 109: Linha 211:
  
 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. 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.
-{{ :captura_de_tela_de_2018-12-28_13-39-29.png |}}+{{ :cadastronas.png?600 |}}
  
 {{ :​captura_de_tela_de_2018-12-28_14-03-57.png |}} {{ :​captura_de_tela_de_2018-12-28_14-03-57.png |}}
  
-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.+<​html>​ 
 + 
 +<​head>​ 
 +    <meta charset="​UTF-8"​ /> 
 +    <meta name="​viewport"​ content="​width=device-widthuser-scalable=0"​ /> 
 + 
 +<style type="​text/​css">​ 
 +  
 +        p { 
 +          text-align: center; 
 +        } 
 + 
 + 
 +        img{ 
 +          display: block; 
 +          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 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"> ​   
 + 
 + 
 +</​body>​ 
 +</​html>​