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/04/27 09:44]
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.
-  * **IP** - IP que o SGP responde ​(público).+  * **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 17: Linha 18:
  
 <​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 +/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+/user aaa set use-radius=yes 
-:global IP "IP_DA_URL+/ppp aaa set interim-update=5m use-radius=yes 
-:global AVS "6402+/snmp community disable public 
-:global BLQ "6403"+/snmp community add addresses="$RADIUS,​$IPSGP" ​name=SGP-GRAPHICs 
 +/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=$IP list=SITES-LIBERADOS+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.222 list=SITES-LIBERADOS
 add address=208.67.222.220 list=SITES-LIBERADOS add address=208.67.222.220 list=SITES-LIBERADOS
Linha 37: 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
-/ip firewall filter  +
-add action=drop chain=forward dst-address-list=!SITES-LIBERADOS src-address-list=BLOQUEADOS comment="​SGP REGRAS"​+
 /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=2h comment="​SGP REGRAS"​ dst-address=$IP dst-port=$AVS protocol=tcp +    ​address-list=BLOQUEIO-AVISADOS address-list-timeout=00:​01:​00 ​comment="​SGP REGRAS"​ dst-address=$IPSGP \ 
-/ip firewall nat  +    ​dst-port=$AVS protocol=tcp 
-add action=accept ​chain=srcnat comment="​NAO FAZER NAT PARA O IP DO RADIUS" ​+/ip firewall nat 
-    ​dst-address=$RADIUS dst-port="$AUC-$ACC,​3799"​ protocol=udp +add action=masquerade ​chain=srcnat comment="​SGP REGRAS" dst-address-list=
-add action=masquerade chain=srcnat comment="​SGP REGRAS" ​src-address-list=+    SITES-LIBERADOS ​src-address-list=BLOQUEADOS
-    ​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=$IP 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=$IP 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 \ +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 67: 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;​" +    \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 + 
-/ip accounting set enabled=yes +# CONFIGURACAO IPv6 MIKROTIK 
-/system ntp client set enabled=yes primary-ntp=200.160.0.8 + 
-/system clock set time-zone-name=America/Recife +:global versao [/system package get number=0 version ]; :global versao2 [:pick $versao 0 [:find "​$versao"​ "​."​ -3]]; 
-/radius incoming ​set accept=yes +:delay 2s 
-/ip service +:put $versao2 
-set api disabled=no port=3540 +:if ($versao2=7) do={ 
-set www disabled=no port=8008 +    :global ipv6 [/ipv6 settings get disable-ipv6] 
-/user aaa set use-radius=yes +    :if ($ipv6=false) do={ 
-/ppp aaa set interim-update=5m use-radius=yes +    :log info "############​\nTEM IPV6 HABILITADO NESSA RB\n############"​ 
-/interface pppoe-server server set authentication=pap [ find where .id!=999] +    :log info "​CONFIGURANDO O POOL DE BLOQUEIO IPv6"​ 
-/interface ​pppoe-server server ​set one-session-per-host=no [find .id!=999] +    ​/ipv6 pool add name=bloqueiov6pd prefix-length=64 prefix=2001:​DB9:​100::/​40 
-/tool graphing set page-refresh=300 store-every=5min +    /ipv6 pool add name=bloqueiov6prefix prefix-length=64 prefix=2001:​DBA:​900::​/40 
-/tool graphing interface ​add allow-address=0.0.0.0/0 disabled=no interface=all store-on-disk=yes +    :log info "​CONFIGURANDO O SCRIPT NOS PROFILE DOS PPPOE SERVER"​ 
-/tool graphing queue add allow-address=0.0.0.0/0 allow-target=yes disabled=no simple-queue=all store-on-disk=yes +    ​/ppp profile ​set  on-up=":​local \ 
-/tool graphing resource add allow-address=0.0.0.0/0 disabled=no store-on-disk=yes +        ​ipv6pool \"​bloqueiov6pd\"​\r\ 
-/snmp community add addresses=$RADIUS ​name=SGP-GRAPHICs +        \n:local prefixo\r\ 
-/snmp set enabled=yes trap-community=SGP-GRAPHICs trap-version=2 +        \n:local servername \"<​pppoe-\$user>​\"​\r\ 
-/​system ​logging set 0 action=memory ​disabled=no ​prefix=""​ topics=info,!account +        \n:delay 30s\r\ 
-/radius +        \n:log info [/ipv6 dhcp-server binding find server=\"​\$servername\"​]\r\ 
-add comment="​RADIUS ​SGP" ​secret=sgp@radius service=ppp,dhcp,login address=$RADIUS accounting-port=$ACC authentication-port=$AUC +        ​\n:​foreach binding in=[/ipv6 dhcp-server binding find status=\"​bound\"​ server=\"​\$servername\"​] do={\r\ 
-    ​timeout=00:00:03 +        \n:set prefixo [/ipv6 dhcp-server binding get \$binding address]\r\ 
-/user add name=SGP comment="USUARIO QUE O SERVIDOR SGP ACESSA A RB" ​group=full password=$PASSVPNUSER+        \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"
  
-/interface sstp-client add connect-to=($IP.":​4433"​) user=$USERVPN password=$PASSVPNUSER name="SGP-SSTP"​\ +#Script Integração 
-    disabled=no profile=default-encryption+#Systema de Gerenciamento de provedores ​- SGP
  
  
Linha 104: 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>​