From 3a595c61b9fb3224930e7253d936b5840acad7b6 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 1 Jun 2026 21:20:15 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 01 21:20:15. --- .../20260601/20260601212002-Binary.backup | Bin 0 -> 259325 bytes .../20260601/20260601212002-Config.rsc | 3463 +++++++++++++++++ .../20260601/20260601212002-Diff-Config.rsc | 6 + 3 files changed, 3469 insertions(+) create mode 100644 MikroMaster/20260601/20260601212002-Binary.backup create mode 100644 MikroMaster/20260601/20260601212002-Config.rsc create mode 100644 MikroMaster/history/20260601/20260601212002-Diff-Config.rsc diff --git a/MikroMaster/20260601/20260601212002-Binary.backup b/MikroMaster/20260601/20260601212002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..96d710e9bea63b8aa91b0c0cd8d9cd4994bd8a26 GIT binary patch literal 259325 zcmV+aKLEh*sF8F1^aB86ftZvSI4yz@ey-Y0MZdfN000O80004Z`SAPzLk=j`{%tBq zJZ8h5?)(xU;ry9mSE$xk@Z+pCon=E2U zjIot>1{{N7EtKfYApIjxy2M!q$efD=OCVvAKH4qQB?p_%8Qw?#lb1Z;TxS5w9+0H( z9kWNjBJL!gEpj#ddF=1r4&U~#v~ek5D%F3z*%5)*KitB1EM`~!;qTQ0K4T+Gq z%)O32>n`5<6@LRTwFIfb+6wj1FOCOu+`PiUr+jBu1{bCtVL4&~tAxx{ZZG49cGKlF z{zi2;wg$+XWWiDJY?yY-u=y64i;V(QrP>TY2PdgmF2Cxl*69<9ZN%1y`o%4#Rg{(9 z{1sKhC7HENuCq0zlocqKH=J`~aIYNG13l4TC>bJL1_ez<2_MKH{&pB!eTACYTyG9w zsbo!k%i*<8Cs#>%^2KOVB}(0zPS}Xh4*|-EZN~LWO?Tm#KzDL`z-?MnRzB2NCn`aq zn-^^&uqBg64^Qv_-`TaD{q681VNMK^oDKnCcq^=pF=swO^}|4t}Yk9m7{g>92=JT4D%>2tZFv}91=U9pAKsMb5ZKw z^*QJ}0T&JxptNbl-;+Tc!T5Q4pmB}l)XUO(&`VCpielk-0h5Coj+zWt$+YS0qj;w<)-}zmuAomFt}n8GrY%V7Ok+2%OP%_L@pjgAD}Qz4Y0N;EGU%3 z*$;P2QvBFuZqrbw5@CLxVt_U={US1k_K;}eO_R1W*Q@7DWp#?cal+J8SqJc$Gw17A z9Ilfo!MLoR8=%Y#!wG4mm9-BB)zOYk8Sqq9Qh90<;RU2%Q7~X;7l>9S)CK6 zqb`gFSVUh~KYWUIpXgk2S%fl@eFmy9`1;q=x2vVB`@kSRvWmK)R`QQ(4#J#4YTiJ> z$fE(+Agd0szH)peU8=m~uyzpA;)(@_M!d%=-vBv(;}kx*0?ho?L@}5EW7S$VB=eGu zO`|b7X_GkPaOwJEU^F`(_C&!u-cQ5OuMU)lt?*)~JxFX?j{CXaxR=K7RX40+#8L zI@lsq%uURS@HR4hBA<}iyK-D5N2JND3dsWGpS;esO~Nm01s&1ttXv4XAGUDAoPLTF zQO^pC7GKrv;YMbeG*0Dfv+eM8KdEOddOXzYF2G)Lz#Zr0>V6*f#v3hzGqsQ4L-rTK zBZB=Z+}UQp5*2s;JAtWtZ=|OIxB3!xQT1Re)Ah8HuFkcQuqII6#K(ALcE&pJdl8>6 z4nhIAm)wXy zYn$)}(`8rNXi7_2=d;AzK=1i#Xq*_VZ-jlPy&Yv2Bvp`kSDWmY`dWgoD$k=~s}&YQ zx)ZoPyr286cA

%j_rZ{bSQ^2d+wQa)`D(u%!g!{SZ;ffm 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260601/20260601212002-Config.rsc b/MikroMaster/20260601/20260601212002-Config.rsc new file mode 100644 index 0000000..b033da6 --- /dev/null +++ b/MikroMaster/20260601/20260601212002-Config.rsc @@ -0,0 +1,3463 @@ +# 2026-06-01 21:20:02 by RouterOS 7.23 +# 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 wireless +# managed by CAPsMAN +# channel: 2422/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 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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.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 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/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 interface=WG network=10.8.0.0 +/ip cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main:2 dhcp-options=clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +/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=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +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=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 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=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 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=64.233.164.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 disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes 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 out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +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-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +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=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" 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" 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="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 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=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="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +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=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +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 +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru 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=no 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 vrf-interface="ether1 - Unet" +/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 forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/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 package update +set ip-version=ipv4 mode=http +/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/20260601/20260601212002-Diff-Config.rsc b/MikroMaster/history/20260601/20260601212002-Diff-Config.rsc new file mode 100644 index 0000000..9444957 --- /dev/null +++ b/MikroMaster/history/20260601/20260601212002-Diff-Config.rsc @@ -0,0 +1,6 @@ +2458,2460c2458 +< add add-default-route=special-classless default-route-distance=2 \ +< default-route-tables=main:2 dhcp-options=clientid,clientid_duid \ +< interface="ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +--- +> add interface="ether1 - Unet" name=client1 -- 2.52.0