From 4b4933eb2e88829357bd8c21f79178b17565b328 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 3 Jun 2026 02:20:32 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 03 02:20:32. --- .../20260603/20260603022002-Binary.backup | Bin 0 -> 255156 bytes .../20260603/20260603022002-Config.rsc | 3421 +++++++++++++++++ .../20260603/20260603022002-Diff-Config.rsc | 6 + 3 files changed, 3427 insertions(+) create mode 100644 MikroMaster/20260603/20260603022002-Binary.backup create mode 100644 MikroMaster/20260603/20260603022002-Config.rsc create mode 100644 MikroMaster/history/20260603/20260603022002-Diff-Config.rsc diff --git a/MikroMaster/20260603/20260603022002-Binary.backup b/MikroMaster/20260603/20260603022002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..d01cb4054a0bbd7a7f29e613c5b2a6434448b702 GIT binary patch literal 255156 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 z≈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%0D+SVOe3`a1C*A|%V?45J7r3ZEL2&Q+LwZ>yi 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 z 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 ZRpvM3J literal 0 HcmV?d00001 diff --git a/MikroMaster/20260603/20260603022002-Config.rsc b/MikroMaster/20260603/20260603022002-Config.rsc new file mode 100644 index 0000000..a8a594e --- /dev/null +++ b/MikroMaster/20260603/20260603022002-Config.rsc @@ -0,0 +1,3421 @@ +# 2026-06-03 02:20:03 by RouterOS 7.23 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add name=Bridge-LAN port-cost-mode=short ra-guard=yes +/interface ethernet +set [ find default-name=ether1 ] arp=proxy-arp comment="WAN - Unet" \ + loop-protect=off name="ether1 - Unet" rx-flow-control=auto \ + tx-flow-control=auto +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 +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=55982 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys 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 +/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" +/ip smb +set enabled=no interfaces=lo +/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 +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 multipath-hash-policy=l4 +/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="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.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 interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=clientid_duid,clientid 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,9.9.9.9 +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +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 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.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" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one 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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=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=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +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 disabled=yes +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid disabled=yes +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new disabled=yes in-interface="ether1 - Unet" \ + src-address-list=!VDSina +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 +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes 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=\ + "Mark Routing main for VDSina" disabled=yes 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=\ + "!!!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" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes 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" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes 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" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + 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=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="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 check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add 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 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set 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 check-certificate=yes-without-crl +/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 certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get 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="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260603/20260603022002-Diff-Config.rsc b/MikroMaster/history/20260603/20260603022002-Diff-Config.rsc new file mode 100644 index 0000000..5f6cb78 --- /dev/null +++ b/MikroMaster/history/20260603/20260603022002-Diff-Config.rsc @@ -0,0 +1,6 @@ +2508c2508,2510 +< doh-max-server-connections=20 servers=8.8.8.8,9.9.9.9 +--- +> doh-max-server-connections=20 mdns-repeat-ifaces="ether1 - Unet" servers=\ +> 8.8.8.8,9.9.9.9 use-doh-server=\ +> https://security.cloudflare-dns.com/dns-query -- 2.52.0