# version: 7.12.1 (stable) # factory-software: 7.4.1 # total-memory: 1024.0MiB # cpu: ARM64 # cpu-count: 4 # total-hdd-space: 1024.0MiB # architecture-name: arm64 # board-name: RB5009UG+S+ # platform: MikroTik # installed-version: 7.12.1 # Flags: U - UNDOABLE # Columns: ACTION, BY, POLICY # ACTION BY POLICY # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U the proxy access rule removed wisphubm104km0l79bpmul write # U address list entry removed wisphubm104km0l79bpmul write # U the proxy access rule added wisphubm104km0l79bpmul write # U address list entry added wisphubm104km0l79bpmul write # U simple queue changed wisphubm104km0l79bpmul write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U the proxy access rule removed wisphubm104km0l79bpmul write # U address list entry removed wisphubm104km0l79bpmul write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U RADIUS client changed brayan write # U log rule added MEXICARRIER write # U log rule added MEXICARRIER write # U log rule added MEXICARRIER write # U log rule added MEXICARRIER write # U log action added MEXICARRIER write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U the proxy access rule removed wisphubm104km0l79bpmul write # U address list entry removed wisphubm104km0l79bpmul write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U the proxy access rule added wisphubm104km0l79bpmul write # U address list entry added wisphubm104km0l79bpmul write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U address list entry removed wisphubm104km0l79bpmul write # U dns changed Rvisnet write # U dns changed Rvisnet write # U ip service changed Rvisnet write # U dns changed Rvisnet write # U dns changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U ntp settings changed MEXICARRIER write # U ntp server record added read # U ntp server record added read # U dns changed MEXICARRIER write # U ip service changed MEXICARRIER write # U ip service changed MEXICARRIER write # U ip service changed MEXICARRIER write # U user AAA settings changed MEXICARRIER write # policy # U RADIUS client added MEXICARRIER write # U the proxy access rule removed wisphubm104km0l79bpmul write # U address list entry removed wisphubm104km0l79bpmul write # U device changed Rvisnet write # U device changed Rvisnet write # U device changed Rvisnet write # U the proxy access rule added wisphubm104km0l79bpmul write # U address list entry added wisphubm104km0l79bpmul write # U address list entry removed wisphubm104km0l79bpmul write # U the proxy access rule added wisphubm104km0l79bpmul write # U address list entry added wisphubm104km0l79bpmul write # U address list entry removed wisphubm104km0l79bpmul write # # software id = F142-9KWJ # # model = RB5009UG+S+ # serial number = HEA08XDXYZH /interface bridge add admin-mac=BC:A0:1D:53:EA:B5 auto-mac=no name=LAN /interface ethernet set [ find default-name=ether1 ] name=ether1-WanMalacota set [ find default-name=ether2 ] name=ether2-Lap120-108 set [ find default-name=ether3 ] name=ether3-ROCKET-93.4 set [ find default-name=ether4 ] name=ether4-ROCKET-93.5 set [ find default-name=ether6 ] name=ether6-SBO-142 set [ find default-name=ether7 ] name=ether7-YECHE /interface list add comment="{\"app\":\"argusblack\"}" name=argusblack_WAN add comment="{\"app\":\"argusblack\"}" name=argusblack_LAN add name=Lista_WAN_WispHub /interface wireless security-profiles set [ find default=yes ] supplicant-identity=MikroTik /ppp profile add address-list=argusblack_servicio_suspendido comment="{\"app\":\"argusblack\",\"descripcion\":\"Perfil que ayuda a agregar a los usuarios PPPoE a la lista de clientes suspendidos\",\"checksum\":\"0529241446f87e8a5be1d6f58b538cb6\"}" name=argusblack_servicio_suspendido on-down="{ :local quitipcpepppoe [:parse [/system script get argusblack_quitipcpepppoe source]]; \$quitipcpepppoe user=\$user;}" on-up="{ :local actipcpepppoe [:parse [/system script get argusblack_actipcpepppoe source]]; \$actipcpepppoe user=\$user remote-address=\$\"remote-address\";}" add name=wisphub-profile /interface sstp-client add comment="WispHub VPN" connect-to=vpn5.wisphub.app disabled=no name=WisphubVPN password=zk58k2ufmk3ywndwp9oolj2b7f9axe profile=wisphub-profile user=wisphubm104km0l79bpmul /queue simple add max-limit=8M/8M name="Luis Alberto Mart\C3\ADnez Aparicio" target=192.168.93.34/32 add max-limit=8M/8M name="Julio Gonz\C3\A1lez Gumercindo" target=192.168.93.38/32 add max-limit=6M/6M name="Jos\C3\A9 Mar\C3\ADa Aparicio Morales" target=192.168.93.101/32 add max-limit=6M/6M name="Anuar Jimenez Perez" target=192.168.93.139/32 add max-limit=2M/2M name="Homero Miranda Reyes" target=192.168.93.56/32 add max-limit=8M/8M name="Silvia De La Cruz Bruno" target=192.168.93.32/32 add max-limit=8M/8M name="Miguel Angel Antonio Castillo" target=192.168.93.190/32 add max-limit=8M/8M name="Blanca Estela Miranda Salvador" target=192.168.93.178/32 add max-limit=8M/8M name="Amayrani Severo Salvador" target=192.168.93.241/32 add max-limit=25M/25M name="Brenda Isamar Miranda Miranda" target=192.168.93.81/32 add max-limit=8M/8M name="Daniel Miranda Miranda" target=192.168.93.181/32 add max-limit=8M/8M name="Aricel Teodoro Aparici\C3\B3" target=192.168.93.175/32 add max-limit=3M/3M name="Omar Ordo\C3\B1ez Rosalio" target=192.168.93.92/32 add max-limit=20M/20M name="Graciela Reyes Merced" target=192.168.93.64/32 add max-limit=8M/8M name="Jimena Ch\C3\A1vez Navarrete" target=192.168.93.232/32 add max-limit=3M/3M name="Carmen Gonz\C3\A1lez Alejandro" target=192.168.93.16/32 add max-limit=5M/5M name="Miriam Reyes Aguilar" target=192.168.93.27/32 add max-limit=3M/3M name="Brayan Robledo Ram\C3\ADrez" target=192.168.93.105/32 add max-limit=35M/35M name="Alejandra Esteban Hern\C3\A1ndez" target=192.168.93.28/32 add max-limit=35M/35M name="Edwin Martinez Jimenez" target=192.168.93.54/32 add max-limit=8M/8M name="Esmeralda P\C3\A9rez Ortiz" target=192.168.93.180/32 add max-limit=8M/8M name="Perla M\C3\A1ximo Ram\C3\ADrez" target=192.168.93.227/32 add max-limit=20M/20M name="Laura Edith Sanchez Velazquez" target=192.168.93.224/32 add max-limit=20M/20M name="Ana Ivette Miranda Rodr\C3\ADguez" target=192.168.93.219/32 add max-limit=8M/8M name="Ximena Miranda Rocha" target=192.168.93.26/32 add max-limit=8M/8M name="Mayra Hern\C3\A1ndez Cesareo" target=192.168.93.226/32 add max-limit=15M/15M name="Humberto David Macario Cruz" target=192.168.93.238/32 add max-limit=3M/3M name="Belem Eligi\C3\B3 Maldonado" target=192.168.93.89/32 add max-limit=2M/2M name="Francisco Morales" target=192.168.93.51/32 add max-limit=25M/25M name="Miguel \C3\81ngel Alejandro Viviano" target=192.168.93.149/32 add max-limit=7M/7M name="Juan Carlos Mart\C3\ADnez Robledo" target=192.168.93.160/32 add max-limit=3M/3M name="Pablo Marcelo Leonardo" target=192.168.93.114/32 add max-limit=4M/4M name="Miguel \C3\81ngel Br\C3\ADgido Mart\C3\ADnez" target=192.168.93.113/32 add max-limit=20M/20M name="Rocio Salvador Rosas" target=192.168.93.19/32 add max-limit=20M/20M name="Yeraldi De Jes\C3\BAs Becerril" target=192.168.93.17/32 add max-limit=20M/20M name="Emanuel Monroy Anastacio" target=192.168.93.199/32 add max-limit=8M/8M name="Valeria Peralta G\C3\B3mez" target=192.168.93.239/32 add max-limit=25M/25M name="Karla Araceli Solis Orozco" target=192.168.93.84/32 add max-limit=20M/20M name="Ricardo Severo Rojo" target=192.168.93.47/32 add max-limit=15M/15M name="Yhoaly Rojo Bartolo" target=192.168.93.96/32 add max-limit=20M/20M name="Miguel \C3\81ngel Ordo\C3\B1ez Olivares" target=192.168.93.58/32 /queue type add kind=pcq name=argusblack_DW pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-src-address6-mask=64 add kind=pcq name=argusblack_UP pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-src-address6-mask=64 add kind=pcq name=argusblack_qt_4409_dw pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-rate=8M pcq-src-address6-mask=64 add kind=pcq name=argusblack_qt_4409_up pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-rate=8M pcq-src-address6-mask=64 add kind=pcq name=argusblack_qt_4410_dw pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-rate=10M pcq-src-address6-mask=64 add kind=pcq name=argusblack_qt_4410_up pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-rate=10M pcq-src-address6-mask=64 add kind=pcq name=argusblack_qt_4411_dw pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-rate=15M pcq-src-address6-mask=64 add kind=pcq name=argusblack_qt_4411_up pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-rate=15M pcq-src-address6-mask=64 /routing table add fib name=argusblack_sin_internet /snmp community add addresses=::/0 name=SNMP-SOMNET /system logging action add bsd-syslog=yes name=GrafanaLoki remote=172.20.0.254 remote-port=1514 src-address=172.20.1.64 target=remote /user group add name=wisphub policy="local,ftp,reboot,read,write,policy,test,password,sniff,sensitive,api,romon,!telnet,!ssh,!winbox,!web,!rest-api" /interface bridge port add bridge=LAN interface=ether2-Lap120-108 add bridge=LAN interface=ether3-ROCKET-93.4 add bridge=LAN interface=ether4-ROCKET-93.5 add bridge=LAN interface=ether5 add bridge=LAN interface=ether6-SBO-142 add bridge=LAN interface=ether7-YECHE add bridge=LAN interface=ether8 /ip neighbor discovery-settings set discover-interface-list=none /interface l2tp-server server set authentication=mschap2 enabled=yes ipsec-secret=L2tp#2024 use-ipsec=required /interface list member add interface=ether1-WanMalacota list=Lista_WAN_WispHub /ip address add address=192.168.93.1/24 interface=LAN network=192.168.93.0 add address=172.20.1.64/16 comment="IP REDUNDANCIA SOMNET" interface=ether1-WanMalacota network=172.20.0.0 add address=38.123.220.190/24 comment="IP PUBLICA SOMNET" interface=ether1-WanMalacota network=38.123.220.0 /ip dns set servers=8.8.8.8,1.0.0.2 /ip firewall address-list add address=preinscripcionessipce.edomex.gob.mx list=https://preinscripcionessipce.edomex.gob.mx/ add address=192.168.93.113 comment="Miguel \C3\81ngel Br\C3\ADgido Mart\C3\ADnez" list=Moroso add address=192.168.93.254 comment="Jorge Ord\C3\B3\C3\B1ez Jim\C3\A9nez Encuathi" list=Aviso add address=192.168.93.34 comment="Luis Alberto Mart\C3\ADnez Aparicio" list=Aviso add address=192.168.93.181 comment="Daniel Miranda Miranda" list=Moroso add address=137.184.155.255 list=servers_wisphub add address=206.189.232.53 list=servers_wisphub add address=134.122.28.53 list=servers_wisphub add address=68.183.23.150 list=servers_wisphub add address=servers-corte.wisphub.app list=servers_wisphub add address=clientes.portalinternet.app list=servers_wisphub /ip firewall filter add action=accept chain=input comment="L2TP VPN" dst-port=1701,500,4500 protocol=udp add action=accept chain=input protocol=ipsec-esp add action=reject chain=forward comment="{\"app\":\"argusblack\",\"accion\":\"bloqueo de paquetes icmp para servicios suspendidos\"}" dst-address-list=!argusblack_noc protocol=icmp reject-with=icmp-network-unreachable src-address-list=argusblack_servicio_suspendido add action=reject chain=forward comment="{\"app\":\"argusblack\",\"accion\":\"bloqueo de trafico tcp para puertos distintos al 53 y 80 para servicios suspendidos\"}" dst-address-list=!argusblack_noc dst-port=!53,80 protocol=tcp reject-with=icmp-host-prohibited src-address-list=argusblack_servicio_suspendido add action=reject chain=forward comment="{\"app\":\"argusblack\",\"accion\":\"bloqueo de trafico udp para puertos distintos al 53 para servicios suspendidos\"}" dst-address-list=!argusblack_noc dst-port=!53 protocol=udp reject-with=icmp-host-prohibited src-address-list=argusblack_servicio_suspendido add action=log chain=forward comment="{\"app\":\"argusblack\",\"bandera\":\"posicion_reglas\"}" disabled=yes add action=drop chain=input comment="WispHub - Bloquear puerto WebProxy desde WANs" dst-port=999 in-interface-list=Lista_WAN_WispHub protocol=tcp /ip firewall mangle add action=mark-connection chain=prerouting comment=argusblack_noc connection-mark=no-mark in-interface-list=argusblack_WAN new-connection-mark=argusblack_noc passthrough=yes src-address-list=argusblack_noc add action=accept chain=prerouting comment=argusblack_noc connection-mark=argusblack_noc add action=accept chain=prerouting comment=argusblack_aps src-address-list=argusblack_aps add action=accept chain=prerouting comment=argusblack_dnstcp dst-address-list=argusblack_direccionesiplans dst-port=53 in-interface-list=argusblack_LAN protocol=tcp add action=accept chain=prerouting comment=argusblack_dnsudp dst-address-list=argusblack_direccionesiplans dst-port=53 in-interface-list=argusblack_LAN protocol=udp add action=accept chain=prerouting comment=argusblack_icmp dst-address-list=argusblack_direccionesiplans in-interface-list=argusblack_LAN protocol=icmp add action=mark-connection chain=prerouting comment="{\"app\":\"argusblack\",\"accion\":\"servicio suspendido\"}" connection-mark=no-mark in-interface-list=argusblack_LAN new-connection-mark=argusblack_servicio_suspendido_conn passthrough=yes src-address-list=argusblack_servicio_suspendido add action=mark-packet chain=prerouting comment="{\"app\":\"argusblack\",\"accion\":\"servicio suspendido\"}" connection-mark=argusblack_servicio_suspendido_conn new-packet-mark=argusblack_servicio_suspendido_pkt passthrough=no add action=log chain=prerouting comment="{\"app\":\"argusblack\",\"bandera\":\"posicion_marcas_de_rutas_a_isps_sin_reuso\"}" disabled=yes add action=log chain=prerouting comment="{\"app\":\"argusblack\",\"bandera\":\"posicion_reglas\"}" disabled=yes add action=mark-connection chain=prerouting comment=argusblack_hotspot connection-mark=no-mark hotspot=from-client new-connection-mark=argusblack_hotspot add action=mark-routing chain=prerouting comment="{\"app\":\"argusblack\",\"accion\":\"servicio suspendido a usuarios no registrados\"}" connection-mark=no-mark disabled=yes in-interface-list=argusblack_LAN new-routing-mark=argusblack_sin_internet passthrough=no /ip firewall nat add action=accept chain=dstnat comment="WispHub - Permitir pagina web morosos" dst-address-list=servers_wisphub src-address-list=Moroso add action=accept chain=dstnat comment="WispHub - Permitir pagina web avisos" dst-address-list=servers_wisphub src-address-list=Aviso add action=masquerade chain=srcnat comment="NAT DEFECTO" out-interface=ether1-WanMalacota add action=masquerade chain=srcnat disabled=yes out-interface=*B add action=dst-nat chain=dstnat comment="{\"app\":\"argusblack\",\"accion\":\"dirigir trafico tcp de dns a servidor de serviciovencido.argus.black\"}" dst-port=53 protocol=tcp src-address-list=argusblack_servicio_suspendido to-addresses=68.183.175.23 add action=dst-nat chain=dstnat comment="{\"app\":\"argusblack\",\"accion\":\"dirigir trafico tcp de dns a servidor de serviciovencido.argus.black\"}" dst-port=53 protocol=udp src-address-list=argusblack_servicio_suspendido to-addresses=68.183.175.23 add action=redirect chain=dstnat comment="{\"app\":\"argusblack\",\"accion\":\"redirigir el trafico web al puerto del webproxy del router\"}" dst-port=80 protocol=tcp src-address-list=argusblack_servicio_suspendido to-ports=8080 add action=log chain=forward comment="{\"app\":\"argusblack\",\"bandera\":\"posicion_reglas\"}" disabled=yes add action=redirect chain=dstnat comment="WispHub - Suspension de clientes(TCP)" dst-port=!8291 in-interface-list=!Lista_WAN_WispHub protocol=tcp src-address-list=Moroso to-ports=999 add action=redirect chain=dstnat comment="WispHub - Suspension de clientes(UDP)" dst-port=!8291,53 in-interface-list=!Lista_WAN_WispHub protocol=udp src-address-list=Moroso to-ports=999 add action=redirect chain=dstnat comment="WispHub - Aviso de Pago en Pantalla de clientes(TCP)" dst-port=80 in-interface-list=!Lista_WAN_WispHub protocol=tcp src-address-list=Aviso to-ports=999 /ip proxy set enabled=yes port=999 /ip route add blackhole comment="{\"app\":\"argusblack\",\"objetivo\":\"bloquear trafico\_a internet\",\"checksum\":\"345cee9ee9fb7d4307ac4ae531c7ab56\"}" disabled=yes distance=10 dst-address=0.0.0.0/0 gateway="" pref-src="" routing-table=argusblack_sin_internet scope=30 suppress-hw-offload=no target-scope=10 add check-gateway=ping comment="Ruta Principal (SOMNET)" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=38.123.220.1 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10 add check-gateway=ping comment="Ruta Redundancia (SOMNET)" disabled=no distance=10 dst-address=0.0.0.0/0 gateway=172.20.1.1 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10 add disabled=no dst-address=204.93.0.0/16 gateway=38.123.220.1 routing-table=main suppress-hw-offload=no add disabled=no distance=1 dst-address=187.189.0.0/16 gateway=172.20.1.1 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10 add distance=1 dst-address=172.29.225.0/24 gateway=WisphubVPN add comment=RutaINE disabled=no dst-address=3.161.0.0/16 gateway=201.234.96.36 routing-table=main suppress-hw-offload=no /ip service set telnet disabled=yes set ftp disabled=yes set www port=10 set ssh port=46825 set api address=172.25.128.0/19,172.29.225.0/24 set api-ssl disabled=yes /ppp secret add local-address=192.168.254.1 name=jjimenez password=jjimenez remote-address=192.168.254.2 service=l2tp /radius add address=172.20.6.1 secret=Fr3eR4d!u5 service=login /snmp set contact=SOMNET enabled=yes location="CASA DON SANTOS" trap-community=SNMP-SOMNET trap-interfaces=all trap-version=2 /system clock set time-zone-name=America/Mexico_City /system identity set name=MK_CasaDonSantos /system logging add action=GrafanaLoki prefix="172.20.1.64 " topics=info add action=GrafanaLoki prefix="172.20.1.64 " topics=critical add action=GrafanaLoki prefix=172.20.1.64 topics=error add action=GrafanaLoki prefix=172.20.1.64 topics=warning /system note set show-at-login=no /system ntp client set enabled=yes /system ntp client servers add address=0.mx.pool.ntp.org add address=1.mx.pool.ntp.org /system scheduler add comment="{\"app\":\"argusblack\",\"scheduler\":\"lanzadorcheckisps\",\"checksum\":\"8761c5fc9c91c8eac6efc15a8023bd63\"}" interval=1m name=argusblack_lanzadorcheckisps on-event=":local lanzadorcheckisps do={ :local idJobEjecucion [/system script job find script=\"argusblack_checkisps\"]; :if ( \$idJobEjecucion!=\"\" ) do={ :return \"\"; }; /system script run \"argusblack_checkisps\"; }; \$lanzadorcheckisps;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"lanzadorrectificadorispsinalcanzables\",\"checksum\":\"9c2a733dde5e3e6d3af273df7ed686ed\"}" interval=5m name=argusblack_lanzadorrectificadorispsinalcanzables on-event=":local lanzadorrectificadorispsinalcanzables do={ :local idJobEjecucion [/system script job find script=\"argusblack_rectificadorispsinalcanzables\"]; :if ( \$idJobEjecucion!=\"\" ) do={ :return \"\"; }; /system script run \"argusblack_rectificadorispsinalcanzables\"; }; \$lanzadorrectificadorispsinalcanzables;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"lanzadorrectificadordireccionesippruebasping\",\"checksum\":\"c6fcb087c94bae93a1c9cc09fc214483\"}" interval=1m name=argusblack_lanzadorrectificadordireccionesippruebasping on-event=":local lanzadorrectificadordireccionesippruebasping do={ :local idJobEjecucion [/system script job find script=\"argusblack_rectificadordireccionesippruebasping\"]; :if ( \$idJobEjecucion!=\"\" ) do={ :return \"\"; }; /system script run \"argusblack_rectificadordireccionesippruebasping\"; }; \$lanzadorrectificadordireccionesippruebasping;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"lanzadordefaultroutefailover\",\"checksum\":\"fad087ec62c1e8a2bd3a59c1e9e62910\"}" interval=30s name=argusblack_lanzadordefaultroutefailover on-event=":local lanzadordefaultroutefailover do={ :local idJobEjecucion [/system script job find script=\"argusblack_defaultroutefailover\"]; :if ( \$idJobEjecucion!=\"\" ) do={ :return \"\"; }; /system script run \"argusblack_defaultroutefailover\";\_}; \$lanzadordefaultroutefailover;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"lanzadoractdbcpes\",\"checksum\":\"c6a9f45c6f3c71f9246a8530472eb003\"}" interval=1m name=argusblack_lanzadoractdbcpes on-event=":local lanzadoractdbcpes do={ :local idJobEjecucion [/system script job find script=\"argusblack_actdbcpes\"]; :if ( \$idJobEjecucion!=\"\" ) do={ :return \"\"; }; /system script run \"argusblack_actdbcpes\"; }; \$lanzadoractdbcpes;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"lanzadorcheckcpes\",\"checksum\":\"e0e6d423b79266acae899043b2de9a9d\"}" interval=1m name=argusblack_lanzadorcheckcpes on-event=":local lanzadorcheckcpes do={ :local idJobEjecucion [/system script job find script=\"argusblack_checkcpes\"]; :if ( \$idJobEjecucion!=\"\" ) do={ :return \"\"; }; /system script run \"argusblack_checkcpes\"; }; \$lanzadorcheckcpes;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"lanzadorsincipspppoeab\",\"checksum\":\"4c7293fd8022bbd31ffb7ea65c9c18f4\"}" interval=5m name=argusblack_lanzadorsincipspppoeab on-event=":local lanzadorsincipspppoeab do={ :local idJobEjecucion [/system script job find script=\"argusblack_sincipspppoeab\"]; :if ( \$idJobEjecucion!=\"\" ) do={ :return \"\"; }; /system script run \"argusblack_sincipspppoeab\"; }; \$lanzadorsincipspppoeab;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"lanzadorelimconfigcpes\",\"checksum\":\"6efc66bf0718551b0e838ca9c8663a4c\"}" interval=1m name=argusblack_lanzadorelimconfigcpes on-event=":local lanzadorelimconfigcpes do={ :local idJobEjecucion [/system script job find script=\"argusblack_elimconfigcpes\"]; :if ( \$idJobEjecucion!=\"\" ) do={ :return \"\"; }; /system script run \"argusblack_elimconfigcpes\"; }; \$lanzadorelimconfigcpes;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"notificadorcpesenlinea\",\"checksum\":\"bab713964b9506d94bf9c80410f24078\"}" interval=1m name=argusblack_notificadorcpesenlinea on-event=":local notificadorcpesenlinea do={ :global argusblackcpes; :local idsCpes; :foreach rel in [\$argusblackcpes] do={ :if ( (\$rel->2) = 1 ) do={ :if ( \$idsCpes != nil ) do={ :set idsCpes (\$idsCpes.\",\"); }; :set idsCpes (\$idsCpes.(\$rel->0)); }; }; /tool fetch mode=https http-method=post url=(\"https://apiseg.argus.black/cpes/en-linea\") http-data=(\"idrt=3445&key=1688138139&ids_cpes=\".\$idsCpes) output=none; }; \$notificadorcpesenlinea;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"notificadorispsactivos\",\"checksum\":\"d58b25569996e544433192934b59ff2a\"}" interval=30s name=argusblack_notificadorispsactivos on-event=":local notificadorispsactivos do={ :global argusblackispsmonitoreados; :local idsIspsActivos \"\"; :if ([:typeof \$argusblackispsmonitoreados] = \"nothing\") do={ :set argusblackispsmonitoreados [:toarray \"\"]; }; :foreach idIsp,isp in [\$argusblackispsmonitoreados] do={ :if ( (\$isp->\"estado\") = 1 ) do={ :set idsIspsActivos (\$idsIspsActivos.\$idIsp.\",\"); }; }; :set idsIspsActivos [:pick \$idsIspsActivos 0 ([:len \$idsIspsActivos]-1)]; :if ( [:len \$idsIspsActivos] = 0 ) do={ :set idsIspsActivos \"-1\"; }; /tool fetch mode=https http-method=post url=(\"https://apiseg.argus.black/isps/activos\") http-data=(\"idrt=3445&key=1688138139&ids_isps=\".\$idsIspsActivos) output=none; }; \$notificadorispsactivos;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"notificadorfichasactivas\",\"checksum\":\"462de68848b48196a736246bb8e05e2d\"}" interval=1m name=argusblack_notificadorfichasactivas on-event=":local notificadorfichasactivas do={ :local fichas; :foreach f in=[/ip hotspot active find] do={ :if (\_\$fichas != nil ) do={ :set fichas (\$fichas.\",\"); }; :set fichas (\$fichas.[/ip hotspot active get \$f user]); }; :if (\$fichas = nil) do={ :set fichas \"_\"; }; /tool fetch mode=https http-method=post url=(\"https://apiseg.argus.black/hotspot/fichas/activas\") http-data=(\"idrt=3445&key=1688138139&fichas=\".\$fichas) output=none; }; \$notificadorfichasactivas;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"notificadorfichasconbytesterminados\",\"checksum\":\"9c65a821a01b0c29622892def9bf79bd\"}" interval=1m name=argusblack_notificadorfichasconbytesterminados on-event=":local notificadorfichasconbytesterminados do={ :local fichas; :local bytesIn; :local bytesOut; :local bytesTotal; :local limitBytesIn; :local limitBytesOut; :local limitBytesTotal; :local limiteAlcanzado 0; /ip hotspot user; :foreach f in=[find profile~\"argusblack\"] do={ :set limiteAlcanzado 0; :set bytesIn [get \$f bytes-in]; :set bytesOut [get \$f bytes-out]; :set bytesTotal ( \$bytesIn + \$bytesOut ); :set limitBytesIn [get \$f limit-bytes-in]; :set limitBytesOut [get \$f limit-bytes-out]; :set limitBytesTotal [get \$f limit-bytes-total]; :if ( \$bytesIn >= \$limitBytesIn) do={ :set limiteAlcanzado 1; }; :if ( \$bytesOut >= \$limitBytesOut ) do={ :set limiteAlcanzado 1; }; :if ( (\$bytesIn + \$bytesOut) >= \$limitBytesTotal ) do={ :set limiteAlcanzado 1; }; :if (\$limiteAlcanzado) do={ :if ( \$fichas != nil ) do={ :set fichas (\$fichas.\",\"); }; :set fichas (\$fichas.[get \$f name].\"|\".\$bytesIn.\"|\".\$bytesOut); }; }; :if (\$fichas = nil) do={ :set fichas \"_\"; }; /tool fetch mode=https http-method=post url=(\"https://apiseg.argus.black/hotspot/fichas/con-bytes-terminados\") http-data=(\"idrt=3445&key=1688138139&fichas=\".\$fichas) output=none; } \$notificadorfichasconbytesterminados;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"notificadorrouteractivo\",\"checksum\":\"44b085d761a2f789d9a62c13de476377\"}" interval=1m name=argusblack_notificadorrouteractivo on-event=":local notificadorrouteractivo do={ /tool fetch mode=https http-method=post url=(\"https://apiseg.argus.black/routers/3445/activo\") http-data=(\"key=1688138139\") output=none; }; \$notificadorrouteractivo;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"lanzadorispsfailover\",\"checksum\":\"e2ddf971c979cd80f5cc2a6b3ca175e5\"}" interval=1m name=argusblack_lanzadorispsfailover on-event="{ :local idJobEjecucion [/system\_script job find script=\"argusblack_ispsfailover\"]; :if ( \$idJobEjecucion!=\"\" ) do={ :return \"\"; }; /system script run \"argusblack_ispsfailover\"; }" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="{\"app\":\"argusblack\",\"scheduler\":\"monitorinterfaz\",\"checksum\":\"dab14b2173131d217be0d8a9139abaa0\"}" interval=2m name=argusblack_monitorinterfaz on-event=":local monitorinterfaz do={ :local rping; :local disabled [/interface ovpn-client get argusblack disabled]; :if\_( \$disabled = true ) do={ /interface ovpn-client set argusblack disabled=no; :return 0; }; :set rping [ /ping 10.231.71.1 interface=argusblack count=5 ]; :if ( \$rping > 0 ) do={ :return 0; } else={ /interface ovpn-client set argusblack disabled=yes; }; }; \$monitorinterfaz;" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=1970-01-01 start-time=00:00:00 add comment="Reiniciar Conexion WispHub" interval=1d name="Reiniciar Conexion WispHub" on-event="/interface set WisphubVPN disabled=yes\r \n/interface ethernet set WisphubVPN disabled=yes\r\n:log info message=\"Se Deshabilita WisphubVPN\";\r\n:delay 4s\r\n/interface set WisphubVPN disabled=no\r\n:log info message=\"Se Habilita WisphubVPN\";" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=1970-11-21 start-time=03:32:00 add interval=1d name=Scheduler_deshabilitar_webproxy_wisphub on-event=Script_deshabilitar_webproxy_wisphub policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=2026-06-24 start-time=02:00:00 /system script add comment="{\"app\":\"argusblack\",\"script\":\"checkisps\",\"checksum\":\"3a3f603f275aae2c81ff72140a464970\"}" dont-require-permissions=no name=argusblack_checkisps owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="{\_:global argusblackispsmonitoreados; :global argusblackipspruebaspingaux;\_:local nuevoargusblackispsmonitoreados [:toarray \"\"]; :local idIsp; :local idIsp2; :local routingTable \"\"; :local ipPruebasPing \"\"; :local cantidadPruebasPing [:toarray \"\"]; :local estado 0; :local npings 5; :local rping 0; :local existe 0; :local comment; :local inactive; :local posComa; :if ([:typeof \$argusblackispsmonitoreados] = \"nothing\") do={ :set argusblackispsmonitoreados [:toarray \"\"]; }; /ip/route; :local rutasMonitoreo [find routing-table~\"argusblack_monitorisp_\"]; :foreach idIsp,isp in=[\$argusblackispsmonitoreados] do={ :set existe 0; :foreach k,idRuta in=[\$rutasMonitoreo] do={ :set routingTable [get \$idRuta routing-table]; :set idIsp2 [:pick \$routingTable 22 [:len \$routingTable]]; :if (\$idIsp = \$idIsp2) do={ :set existe 1; }; }; :if ( \$existe = 1 ) do={ :set (\$nuevoargusblackispsmonitoreados->\"\$idIsp\") \$isp; }; }; :set argusblackispsmonitoreados \$nuevoargusblackispsmonitoreados; :foreach k,idRuta in=[\$rutasMonitoreo] do={ :set routingTable [get \$idRuta routing-table]; :set inactive [get \$idRuta inactive]; :set comment [get \$idRuta comment]; :set posComa [:find \$comment \",\"]; :if ([:typeof \$posComa] = \"nil\") do={ :set \$posComa [:len \$comment]; }; :set ipPruebasPing [:toip [:pick \$comment 0 \$posComa]]; :if ( [:typeof \$ipPruebasPing] != \"ip\" ) do={ :set ipPruebasPing [:toip (\$argusblackipspruebaspingaux->0)]; }; :set idIsp [:pick \$routingTable 22 [:len \$routingTable]]; :if ([:typeof (\$argusblackispsmonitoreados->\"\$idIsp\")] = \"nothing\") do={ :set (\$argusblackispsmonitoreados->\"\$idIsp\") [:toarray \"\"]; }; :if ( \$ipPruebasPing != \"\" ) do={ :put \"Probando el ISP \$idIsp ( \$routingTable ) con pings a \$ipPruebasPing\"; :set npings (\$cantidadPruebasPing->\"\$idIsp\"); :if ( \$npings = 0 || [:typeof \$npings] = \"nothing\" || \$npings = \"\" ) do={\_:set npings 5; }; :if ( \$inactive ) do={ :set rping 0; } else={ :set rping [/ping \$ipPruebasPing vrf=\$routingTable count=\$npings size=28]; }; :if ( \$rping > 0) do={ :set ((\$argusblackispsmonitoreados->\"\$idIsp\")->\"estado\") 1; :put \"El ISP \$idIsp si tiene acceso a internet\"; } else={ :set ((\$argusblackispsmonitoreados->\"\$idIsp\")->\"estado\") 0; :put \"El ISP \$idIsp no tiene acceso a internet\"; }; :put \" \"; } else={ :set ((\$argusblackispsmonitoreados->\"\$idIsp\")->\"estado\") \"\"; }; }; }" add comment="{\"app\":\"argusblack\",\"script\":\"rectificadorispsinalcanzables\",\"checksum\":\"f62da0ef979974bc10d9585696000e8c\"}" dont-require-permissions=no name=argusblack_rectificadorispsinalcanzables owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="{\_:local rutasMonitoresIspsInalcanzables [/ip/route find routing-table~\"argusblack_monitorisp\" inactive !disabled ]; :local cantidadMonitoresIspsInalcanzables [:len \$rutasMonitoresIspsInalcanzables]; :local dhcpClients [/ip/dhcp-client find comment~\"\\\"app\\\":\\\"argusblack\\\"\"]; :local cantidadDhcpClients [:len \$dhcpClients ]; :local pppoeClients [/interface/pppoe-client find comment~\"\\\"app\\\":\\\"argusblack\\\"\"]; :local cantidadPppoeClients [:len \$pppoeClients]; :local idIsp; :local routingTable; :local dhcpClient; :local pppoeClient; :if ( \$cantidadMonitoresIspsInalcanzables > 0 && \$cantidadDhcpClients > 0 ) do={ :foreach rutaMonitor in=[\$rutasMonitoresIspsInalcanzables] do={ /ip/route; :set routingTable [get\_\$rutaMonitor routing-table]; :set idIsp [:pick \$routingTable 22 [:len \$routingTable]]; /ip/dhcp-client; :set dhcpClient [find comment~\"\\\"app\\\":\\\"argusblack\\\",\\\"id_isp\\\":\$idIsp,\"]; :if ( [:len \$dhcpClient] > 0 ) do={ release \$dhcpClient; }; }; }; :if ( \$cantidadMonitoresIspsInalcanzables > 0 && \$cantidadPppoeClients > 0 ) do={ :foreach rutaMonitor in=[\$rutasMonitoresIspsInalcanzables] do={ /ip/route; :set routingTable [get \$rutaMonitor routing-table]; :set idIsp [:pick \$routingTable 22 [:len \$routingTable]]; /interface/pppoe-client; :set pppoeClient [find comment~\"\\\"app\\\":\\\"argusblack\\\",\\\"id_isp\\\":\$idIsp,\"]; :if ( [:len \$pppoeClient] > 0 ) do={ set \$pppoeClient disabled=yes; :delay 5; set \$pppoeClient disabled=no; }; }; }; }" add comment="{\"app\":\"argusblack\",\"script\":\"rectificadordireccionesippruebasping\",\"checksum\":\"4602a0f79f1e307bee55e78aac625a53\"}" dont-require-permissions=no name=argusblack_rectificadordireccionesippruebasping owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="{\_:global argusblackipspruebaspingaux; :local rutasMonitoreo; :local comment; :local posComa; :local dirip; :local index; :local rutasMonitoreoSinIp\_[:toarray \"\"]; /ip/route; :set rutasMonitoreo [find routing-table~\"argusblack_monitorisp\"]; :foreach ruta in=[\$rutasMonitoreo] do={ :set comment [get \$ruta comment]; :set posComa [:find \$comment \",\"]; :if ([:typeof \$posComa] = \"nil\") do={ :set \$posComa [:len \$comment]; }; :set dirip [:toip [:pick \$comment 0 \$posComa]]; :if ( [:typeof \$dirip] != \"ip\" ) do={ :set index [:len \$rutasMonitoreoSinIp]; :set (\$rutasMonitoreoSinIp->\$index) \$ruta; }; }; :if ( [:len \$argusblackipspruebaspingaux] = 0) do={ :set argusblackipspruebaspingaux [/ip/dns/get servers]; :set argusblackipspruebaspingaux (\$argusblackipspruebaspingaux, [/ip/dns/get dynamic-servers]); }; :if ( [:len \$argusblackipspruebaspingaux] > 0 && [:len \$rutasMonitoreoSinIp] > 0) do={ :foreach ruta in=[\$rutasMonitoreoSinIp] do={ :set comment [get \$ruta comment]; :if ( [:typeof [:find \$comment \"principal\"]] != \"nil\" ) do={ set \$ruta comment=((\$argusblackipspruebaspingaux->0).\",principal\"); } else={ set \$ruta comment=(\$argusblackipspruebaspingaux->0); }; }; :set argusblackipspruebaspingaux [:pick \$argusblackipspruebaspingaux 1 [:len \$argusblackipspruebaspingaux]]; }; }" add comment="{\"app\":\"argusblack\",\"script\":\"defaultroutefailover\",\"checksum\":\"3ad2430658609a24eb94e66658fa3f6b\"}" dont-require-permissions=no name=argusblack_defaultroutefailover owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":local defaultroutefailover do={ :global argusblackispsmonitoreados; :global idIspPrincipal; :local idsIspsActivos [:toarray \"\"]; :local idRutaDefecto; :local gatewayRutaDefecto; :local commentRutaDefecto; :local idIspRutaDefecto; :local idIspSeleccionado; :local runCountCheckIsps [/system/script/get argusblack_checkisps run-count]; :local rutaIspMonitoreado; :local gatewayIspMonitoreado; :local routingTableIspMonitoreado; :if ([:typeof \$argusblackispsmonitoreados] = \"nothing\") do={ :set argusblackispsmonitoreados [:toarray \"\"]; }; :if ( \$runCountCheckIsps = 0 ) do={ :return 0; }; /ip/route; :if ( [:len \$argusblackispsmonitoreados] > 0 ) do={ :set rutaIspMonitoreado [find routing-table~\"argusblack_monitorisp_\" comment~\"principal\"]; :if ( [:len \$rutaIspMonitoreado] = 0 ) do={ :set rutaIspMonitoreado [:pick [find routing-table~\"argusblack_monitorisp_\"] 0]; }; :set routingTableIspMonitoreado [get \$rutaIspMonitoreado routing-table]; :set idIspPrincipal [:pick \$routingTableIspMonitoreado 22 [:len \$routingTableIspMonitoreado]]; } else={ :set idIspPrincipal \"0\"; }; :if ( \$idIspPrincipal = 0 || [:len \$argusblackispsmonitoreados] = 0 ) do={ /ip/dhcp-client; set [find add-default-route=no] add-default-route=yes; /interface/pppoe-client; set [find add-default-route=no] add-default-route=yes; :return 0; } else={ /ip/dhcp-client; :if ( [:len [find add-default-route=yes]] > 0\_) do={ set [find add-default-route=yes] add-default-route=no; }; /interface/pppoe-client; :if ( [:len [find add-default-route=yes]] > 0 ) do={ set\_[find add-default-route=yes] add-default-route=no; }; }; /ip/route; :set\_idRutaDefecto [find comment=\"argusblack_defaultroute\"]; :if ( [:len \$idRutaDefecto] >= 2 ) do={ :local index 0; :foreach idRutaTmp in=[\$idRutaDefecto] do={ :if ( \$index > 0) do={ remove \$idRutaTmp; }; :set index (\$index+1); }; }; :if ( [:len \$idRutaDefecto] = 0 ) do={ add dst-address=\"0.0.0.0/0\" gateway=\"192.168.254.254\" comment=\"argusblack_defaultroute\"; }; :set idRutaDefecto [find comment=\"argusblack_defaultroute\"]; :set gatewayRutaDefecto [get \$idRutaDefecto gateway]; :foreach id,isp in=[\$argusblackispsmonitoreados] do={ :if ( ((\$argusblackispsmonitoreados->\"\$id\")->\"estado\") = 1 ) do={ :set \$idsIspsActivos (\$idsIspsActivos, \$id); }; :set rutaIspMonitoreado [find routing-table=\"argusblack_monitorisp_\$id\"]; :set gatewayIspMonitoreado [get \$rutaIspMonitoreado gateway]; :if ( \$gatewayIspMonitoreado = \$gatewayRutaDefecto) do={ :set idIspRutaDefecto \$id; }; }; :if ( ((\$argusblackispsmonitoreados->\"\$idIspPrincipal\")->\"estado\") = 1 && \$idIspPrincipal = \$idIspRutaDefecto ) do={ :return 0; }; :if ( ((\$argusblackispsmonitoreados->\"\$idIspPrincipal\")->\"estado\") = 1 && [:len \$idRutaDefecto] = 0 ) do={ :set rutaIspMonitoreado [find routing-table=\"argusblack_monitorisp_\$idIspPrincipal\"]; :set gatewayIspMonitoreado [get \$rutaIspMonitoreado gateway]; add dst-address=\"0.0.0.0/0\" gateway=\$gatewayIspMonitoreado comment=\"argusblack_defaultroute\"; :return 0; }; :if ( ((\$argusblackispsmonitoreados->\"\$idIspPrincipal\")->\"estado\") = 1 && \$idIspPrincipal != \$idIspRutaDefecto ) do={\_:set rutaIspMonitoreado [find routing-table=\"argusblack_monitorisp_\$idIspPrincipal\"]; :set gatewayIspMonitoreado [get \$rutaIspMonitoreado gateway]; :if (\$gatewayIspMonitoreado != \$gatewayRutaDefecto) do={ set \$idRutaDefecto gateway=\$gatewayIspMonitoreado; }; :return 0; }; /ip/route; :if ([:len \$idsIspsActivos] > 0) do={ :set idIspSeleccionado [:pick \$idsIspsActivos 0]; :if ( \$idIspSeleccionado != \$idIspRutaDefecto ) do={ :set rutaIspMonitoreado [find routing-table=\"argusblack_monitorisp_\$idIspSeleccionado\"]; :set gatewayIspMonitoreado [get \$rutaIspMonitoreado gateway]; set \$idRutaDefecto dst-address=\"0.0.0.0/0\" gateway=\$gatewayIspMonitoreado; }; }; }; \$defaultroutefailover;" add comment="{\"app\":\"argusblack\",\"script\":\"actdbcpes\",\"checksum\":\"a9de69ac4f89e1c8d90ab6998cc8a974\"}" dont-require-permissions=no name=argusblack_actdbcpes owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="{\_:global argusblackcpes; :local nvoargusblackcpes; :local idCpeObjetivo; :local addressCpe; :local estadoCpe; :local commentCpe; :local nameSecret;\_:local activeConnection; :if (\$argusblackcpes = nil) do={ :set argusblackcpes {nil}; }; :if (\$nvoargusblackcpes = nil) do={ :set nvoargusblackcpes {nil}; }; :local regsAL [/ip firewall address-list find dynamic=no disabled=no list~\"argusblack\" comment~\"argusblack_cpe\"]; :foreach reg in=[\$regsAL] do={ :set commentCpe [/ip firewall address-list get \$reg comment]; :set idCpeObjetivo [:pick \$commentCpe 15 [:len \$commentCpe]]; :set addressCpe [/ip firewall address-list get \$reg address]; :set estadoCpe 0;\_:foreach k,v in=[\$argusblackcpes] do={ :if ((\$v->0) = \$idCpeObjetivo)\_do={ :set estadoCpe (\$v->2); }; }; :set (\$nvoargusblackcpes->[:len \$nvoargusblackcpes]) {\$idCpeObjetivo;\$addressCpe;\$estadoCpe;\"estatica\"}; }; :local regsPPPoE [/ppp secret find profile~\"argusblack\" service=\"pppoe\" comment~\"argusblack_cpe\"]; :foreach reg in [\$regsPPPoE] do={ :set nameSecret [/ppp secret get \$reg name]; :set commentCpe [/ppp secret get \$reg comment]; :set idCpeObjetivo [:pick \$commentCpe 15 [:len \$commentCpe]]; :set activeConnection [/ppp active find name=\$nameSecret service=\"pppoe\"]; :if ( [:len \$activeConnection] > 1 ) do={ :set activeConnection (\$activeConnection->0); }; :if ( \$activeConnection != \"\" ) do={ :set addressCpe [/ppp active get \$activeConnection address]; :set estadoCpe 1; } else { :set addressCpe nil; :set estadoCpe 0; }; :set (\$nvoargusblackcpes->[:len \$nvoargusblackcpes]) {\$idCpeObjetivo;\$addressCpe;\$estadoCpe;\"pppoe\"}; }; :set argusblackcpes \$nvoargusblackcpes; }" add comment="{\"app\":\"argusblack\",\"script\":\"checkcpes\",\"checksum\":\"568409606ee62fad977beef355d86b89\"}" dont-require-permissions=no name=argusblack_checkcpes owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="{\_:global argusblackcpes; :local idCpe; :local address; :local activo; :local tipo; :local nPings; :foreach k,rel in=[\$argusblackcpes] do={ :set idCpe (\$rel->0); :set address (\$rel->1); :set activo (\$rel->2); :set tipo\_(\$rel->3); :if (\$tipo=\"estatica\") do={ :if (\$address=\"\") do={ :set (\$argusblackcpes->\$k->2) 0; } else={ :set nPings [/ping \$address size=28 count=3]; :if (\$nPings > 0) do={ :set (\$argusblackcpes->\$k->2) 1; }\_else={ :set (\$argusblackcpes->\$k->2) 0; }; }; }; }; }" add comment="{\"app\":\"argusblack\",\"script\":\"sincipspppoeab\",\"checksum\":\"9add0f0ce6d9196591c165bda19a460a\"}" dont-require-permissions=no name=argusblack_sincipspppoeab owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="{\_:global argusblackcpes; :local idCpeObjetivo; :local addressCpe; :local direccionesIP {nil}; :local cadips \"\"; :foreach reg in=[\$argusblackcpes] do={ :if ((\$reg->3) = \"pppoe\" && (\$reg->2) != nil) do={ :set idCpeObjetivo (\$reg->0); :set addressCpe (\$reg->1); :set (\$direccionesIP->[:len \$direccionesIP]) {\$idCpeObjetivo;\$addressCpe}; }; }; :foreach dir in=[\$direccionesIP] do={ :if (\$cadips != \"\") do={ :set cadips (\$cadips.\",\"); }; :if (\$dir != nil) do={ :set cadips (\$cadips.(\$dir->0).\"-\".(\$dir->1)); }; }; /tool fetch mode=https http-method=post url=(\"https://apiseg.argus.black/cpes/pppoe/direcciones-ip\") http-data=(\"idrt=3445&key=1688138139&direccionesip=\".\$cadips) output=none; }" add comment="{\"app\":\"argusblack\",\"script\":\"elimconfigcpes\",\"checksum\":\"b32cc98c51d1c53ca502d3a51a40ece0\"}" dont-require-permissions=no name=argusblack_elimconfigcpes owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":local elimconfigcpes do={ :local res [ /tool fetch mode=https http-method=post url=(\"https://apiseg.argus.black/cpes/ids-a-eliminar\") http-data=(\"idrt=3445&key=1688138139\") as-value output=user ; ]; :if ( (\$res->\"data\") = \"\" ) do={ :return \"\"; }; :local cadIdsCpesEliminados (\$res->\"data\"); :local idsCpesEliminados [:toarray \$cadIdsCpesEliminados]; /ip\_firewall address-list ; :foreach idCpe in=[\$idsCpesEliminados] do={ remove [find comment=(\"argusblack_cpe_\".\$idCpe)]; }; /queue simple ; :foreach idCpe in=[\$idsCpesEliminados] do={ remove [find comment=(\"argusblack_cpe_\".\$idCpe)]; }; /ppp profile ; :foreach idCpe in=[\$idsCpesEliminados] do={ remove [find name=(\"argusblack_cpe_\".\$idCpe)]; }; /ppp secret ;\_:foreach idCpe in=[\$idsCpesEliminados] do={ remove [find comment=(\"argusblack_cpe_\".\$idCpe)]; }; :do { /tool fetch mode=https http-method=post\_url=(\"https://apiseg.argus.black/cpes/ids-eliminados\") http-data=(\"idrt=3445&key=1688138139&ids=\".\$cadIdsCpesEliminados) output=none; } on-error={ }; }; \$elimconfigcpes;" add comment="{\"app\":\"argusblack\",\"script\":\"actipcpepppoe\",\"checksum\":\"2cda63902197fadd86f033c7522fed25\"}" dont-require-permissions=no name=argusblack_actipcpepppoe owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="{\_:global argusblackcpes; :local id [/ppp secret find name=\$user comment~\"argusblack_cpe\"]; :local comment [/ppp secret get \$id comment]; :local\_idCpeObjetivo [:pick \$comment 15 [:len \$comment]]; :if (\$argusblackcpes = nil) do={ :set argusblackcpes {nil}; }; :local keycpe; :foreach k,v in=[\$argusblackcpes] do={ :if ( (\$v->0) = \$idCpeObjetivo) do={ :set keycpe \$k; }; }; :local regcpe {\$idCpeObjetivo;\$\"remote-address\";1;\"pppoe\"}; :if ( \$keycpe != nil ) do={ :set (\$argusblackcpes->\$keycpe) \$regcpe; } else={ :set (\$argusblackcpes->[:len \$argusblackcpes]) \$regcpe; }; }" add comment="{\"app\":\"argusblack\",\"script\":\"quitipcpepppoe\",\"checksum\":\"62d86b9a623d18719b77c638d739c7cb\"}" dont-require-permissions=no name=argusblack_quitipcpepppoe owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="{\_:global argusblackcpes; :local id [/ppp secret find name=\$user comment~\"argusblack_cpe\"]; :local comment [/ppp secret get \$id comment]; :local\_idCpeObjetivo [:pick \$comment 15 [:len \$comment]]; :if (\$argusblackcpes = nil) do={ :set argusblackcpes {nil}; }; :local keycpe; :foreach k,v in=[\$argusblackcpes] do={ :if ( (\$v->0) = \$idCpeObjetivo) do={ :set keycpe \$k; }; }; :local regcpe {\$idCpeObjetivo;nil;0;\"pppoe\"}; :if ( \$keycpe != nil ) do={ :set (\$argusblackcpes->\$keycpe) \$regcpe; } else={ :set (\$argusblackcpes->[:len \$argusblackcpes]) \$regcpe; }; }" add comment="{\"app\":\"argusblack\",\"script\":\"ispsfailover\",\"checksum\":\"70a24bcac3a8cb6ce958321f4adc7862\"}" dont-require-permissions=no name=argusblack_ispsfailover owner=Rvisnet policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=" { :global argusblackispsmonitoreados; :local respaldosIsps [:toarray \"\"]; :local respaldoHabilitado 0; :local gatewayOriginalIsp; :local estadoIspMonitoreado; :local gatewayActualIsp; :local gatewayAux; :local estadoIspResp; :local gatewayIspResp; :local rutaIsp; /ip/route; :foreach idIsp,respaldos in=[\$respaldosIsps] do={ :set rutaIsp [find routing-table=\"argusblack_isp_\$idIsp\"]; :set estadoIspMonitoreado ((\$argusblackispsmonitoreados->\"\$idIsp\")->\"estado\"); :set gatewayOriginalIsp [get [find routing-table=\"argusblack_monitorisp_\$idIsp\"] gateway]; :set gatewayActualIsp [get [find routing-table=\"argusblack_isp_\$idIsp\"] gateway]; :if ( \$gatewayActualIsp != \$gatewayOriginalIsp && \$estadoIspMonitoreado = 1 ) do={ set \$rutaIsp gateway=\$gatewayOriginalIsp; }; :if ( [:len (\$respaldosIsps->\"\$idIsp\")] > 0 && \$estadoIspMonitoreado = 0 ) do={ :set respaldoHabilitado 0; :foreach idIspResp in=[(\$respaldosIsps->\"\$idIsp\")] do={ :set estadoIspResp ((\$argusblackispsmonitoreados->\"\$idIspResp\")->\"estado\"); :set gatewayIspResp [get [find routing-table=\"argusblack_monitorisp_\$idIspResp\"] gateway]; :if ( \$estadoIspResp = 1 && \$gatewayActualIsp =\_\$gatewayIspResp ) do={ :set respaldoHabilitado 1; }; :if ( \$respaldoHabilitado = 0 && \$estadoIspResp = 1 && \$gatewayActualIsp != \$gatewayIspResp) do={ set \$rutaIsp gateway=\$gatewayIspResp; :set respaldoHabilitado 1; }; }; }; }; }" add dont-require-permissions=no name=Script_deshabilitar_webproxy_wisphub owner=wisphubm104km0l79bpmul policy=read,write source="{\n\t#Deshabilitar_webproxy_wisphub\n\t# WispHub - Sistema de Administracion Wisp/ISP en la nube. #\n\t#Contacto: wisphub@gmail.com\n\t#Script que apagua el webproxy si no existen las reglas de wisphub o estan apagadas, esto para evitar ataques externos hacia su router.\n\t#Si las reglas de wisphub existen en el router entoces tu webproxy esta protegido de ataques externos.\n\t#corre todos los dias a las 2 am\n\t#Si usted usa el webproxy con otro sistema, puede eliminar este script,en /system scheduler y /system script.\n\t#Si usted no usa el webproxy con sistema de corte le pedimos mantener apagado el webproxy para futuros ataques.\n\n\t:local bloquearPuertoProxy \"WispHub - Bloquear puerto WebProxy desde WANs\"\n\t:local reglaBloquearPuertoProxy\n\n\t:local permitirWebMorosos \"WispHub - Permitir pagina web morosos\"\n\t:local reglaPermitirWebMorosos\n\n\t:do { :set reglaBloquearPuertoProxy [/ip firewall filter get \$bloquearPuertoProxy comment ]; } on-error={ :set reglaBloquearPuertoProxy \"\"; }\n\t:do { :set reglaPermitirWebMorosos [/ip firewall nat get \$permitirWebMorosos comment ]; } on-error={ :set reglaPermitirWebMorosos \"\"; }\n\t:put \$reglaBloquearPuertoProxy\n\t:put [:len \$reglaBloquearPuertoProxy]\n\t:put \$reglaPermitirWebMorosos\n\t:put [:len \$reglaPermitirWebMorosos]\n\t\n\t:if ( [:len \$reglaBloquearPuertoProxy] > 0 || [:len \$reglaPermitirWebMorosos] > 0 ) do={ # Si existen todas las reglas o al menos una, para despues validar si estan deshabilitadas\n\n\t\t:local bloquearPuertoProxyDisabled\n\t\t:local permitirWebMorososDisabled\n\t\t:do { :set bloquearPuertoProxyDisabled [/ip firewall filter get \$bloquearPuertoProxy disabled ]; } on-error={:set bloquearPuertoProxyDisabled\_true }\n\t\t:do { :set permitirWebMorososDisabled [/ip firewall nat get \$permitirWebMorosos disabled ]; } on-error={:set permitirWebMorososDisabled true }\n\n\t\t:put (\"Filter Rules: \", \$bloquearPuertoProxyDisabled)\n\t\t:put (\"NAT: \", \$permitirWebMorososDisabled)\n\n\t\t:if ( \$bloquearPuertoProxyDisabled = true || \$permitirWebMorososDisabled = true ) do={ # Si todas las reglas estan deshabilitadas o al menos\_una\n\t\t\t\n\t\t\t[ /ip proxy set enabled=no ]\n\t\t\t:put \"Existen las reglas de WispHub. Pero estan deshabilitadas, por seguridad apagamos el webproxy.\"\n\t\t\t:log info \"Existen las reglas de WispHub. Pero estan deshabilitadas, por seguridad apagamos el webproxy.\"\n\t\t\n\t\t} else={ # Si existen todas las reglas y estan activas\n\t\t\t:put \"Todas las reglas de seguridad WebProxy de WispHub funcionando :)\"\n\t\t\t:log info \"Todas las reglas de seguridad WebProxy de WispHub funcionando :)\"\n\t\t}\n\n\t} else={ # Si no existe ninguna regla.\n\t\t[ /ip proxy set enabled=no ]\n\t\t:put \"No existen las reglas de WispHub, por seguridad apagamos el webproxy.\"\n\t\t:log info \"No existen las reglas de WispHub, por seguridad apagamos\_el webproxy.\"\n\t}\n}" /tool graphing interface add /tool graphing queue add /tool graphing resource add /user aaa set default-group=full use-radius=yes