From c76a33fce910768362b95c52798120b7ec40a114 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 20 May 2026 23:00:48 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 20 23:00:48. --- .../20260520/20260520230002-Binary.backup | Bin 0 -> 252022 bytes .../20260520/20260520230002-Config.rsc | 3445 +++++++++++++++++ .../20260520/20260520230002-Diff-Config.rsc | 28 + 3 files changed, 3473 insertions(+) create mode 100644 MikroMaster/20260520/20260520230002-Binary.backup create mode 100644 MikroMaster/20260520/20260520230002-Config.rsc create mode 100644 MikroMaster/history/20260520/20260520230002-Diff-Config.rsc diff --git a/MikroMaster/20260520/20260520230002-Binary.backup b/MikroMaster/20260520/20260520230002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..e3bd9e75e608d8b5d304d00835d33ff95346c443 GIT binary patch literal 252022 zcmV+aKLEh*sF8Da*aHAc7x$4gg>i#)B=)@$=^mK?000O80004Z`SAPzLlIa9wg&o- zwr$$dM3h1WgPOe$2SL4jcumFPv$tQbmj9Q1ymfvL|8gJr^NOs z&3*}<@`+C$QGhH)QjVdo{DZ)>^lw0(`(&4SU<@1LO`v$tPk_d+^qxSD>QniE!8%;& zM)=BL`J*R!9{h=eU5Wfc`b#h{G&wuq5n3}mFuNCT>I&>dXa!!I>#*yZ z6^N4QhCH9czI#Br`hf`oaEsmen7zmMP(u!}2_afR% zNWME&?Z$G^sCupeX3~1&aqh-}wCKX2%#?7TZ=0QW&4oi55Z1%Rf5?jdF&O3~sO8gy z<9uZxJmsDJS$L;OXv!W>qFVLLm+6NZvr9io3~U?>iJf4)fNq4Jn>K)=`>b6+dlMM; zMwOZ^Nz7$2uZm$-%i!d%vALacz?n&qL=Qw{3CH`Xo;w2a1g2wfT5kbj(=Ektc+oFR zyg-SC-)R_+A-&b&ct#wiYmwNr@N8^;Rz(yGs%HPU_>}z@>qw@PWpgX|1hwHR$6&1c z7zf#ANVYU(F!Q4Uu4~k+G+PDYL zRSswti<@j3l+jQ8{m=aM>~v1C-KnJbv5pcqLo-v;^*1t!>)VZQ|83)0Hmfptq8tDW zVID5pDk(-MPOu%M$~?k_=blYM%9m4?PB6HpMsabG+Iq?hdid^xx)60sRXyiQQ|Dtf zSuSz|c1zBo5`t#SViSRKJ##i|Hxct*&-hF4mqHSc>3|{JZKiiJG7#iL&kx0fuxwNK zvmpLpBTKU@IhLQ$85tby)30SyR~A@Q)JJvUiynD#juo+>^br#-%<7H@;!4sn3w>Yk zsbCvqH-s^Th&w?xvW~mk{!JmtvB)eYGtbo*9((5&)w8tLTV1Z%+7}eb=1m5&=G8lU zZ#H?5?$Jn)&gWh`RqHs!0XUtO+|Qpx zU>G^o?bHY5ArTcTc}LXJVl^XHmP%y=eXC_(l7k>_a=wofUk^DMx!N(C39wloPjA%Qq;EnP8t)q zAad&#b*i;iKjkg(y%&%3OC-m`UTHFnECkCuHh9wDCYD{t|0lG>o8|EdK4aP+X0ozLqE;09Fhyur7{=z6$qH)^>n9T(Ukjh zMFu9nDEz0yS3GVqG#G1z8*hH!cq+{09zfrOIl3K)3`2k2j;BzUv4)qJE~%jEiwMT-=?{OS4`_7?}pgBWb?{0>yYa%Pq#j@E0uhn#Ej%nY z8yK8mGxxlT?Nat5$bo{0MzuQnfYXM@JP3~$LMj>NzcK6G8 z00nUiJ_74Zskg%yw`0`x?^wk89#wkBduICbO%rDE~D9roa#FgCO`a@s_% zZ|>=EZzneMNT!->priwJ3zG?!702EppOH(T!q^nyAkDe0X1A8ZkM<+SH;DeCwE6w} zEt$I%t9?$p+asqo7IVzPaz+hMcx6{m>U%J!)aG@P2seL6#?3rJkgl zE+Q0HkVZlW5>kq+r6}#UrX9|*Y*8Yfj

E{e7L^Ocnhn%X(IjC3vEMY8F&D=2Bco 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

j^W#7W!$K*RBQcfarRZnC-mwr_| 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�pQy!GD6wZiDJ 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 LxFxj2;X(?j+tkdW literal 0 HcmV?d00001 diff --git a/MikroMaster/20260520/20260520230002-Config.rsc b/MikroMaster/20260520/20260520230002-Config.rsc new file mode 100644 index 0000000..5fab87a --- /dev/null +++ b/MikroMaster/20260520/20260520230002-Config.rsc @@ -0,0 +1,3445 @@ +# 2026-05-20 23:00:04 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add disabled=yes listen-port=13231 mtu=1420 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 disabled=yes interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260520/20260520230002-Diff-Config.rsc b/MikroMaster/history/20260520/20260520230002-Diff-Config.rsc new file mode 100644 index 0000000..47591da --- /dev/null +++ b/MikroMaster/history/20260520/20260520230002-Diff-Config.rsc @@ -0,0 +1,28 @@ +35c35 +< add disabled=yes listen-port=13231 mtu=1420 name=WG +--- +> add listen-port=13231 mtu=1420 name=WG +2448c2448 +< add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +2460c2460 +< add address=10.8.0.2/24 disabled=yes interface=WG network=10.8.0.0 +--- +> add address=10.8.0.2/24 interface=WG network=10.8.0.0 +3225,3226c3225,3226 +< disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ +< src-address=10.30.30.0/24 +--- +> dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ +> 10.30.30.0/24 +3228,3229c3228,3229 +< "Mark VPN connections to exclude from FastTrack" disabled=yes \ +< new-connection-mark=VPN_No_FastTrack +--- +> "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ +> VPN_No_FastTrack +3344c3344 +< add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ +--- +> add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ -- 2.52.0