From 4ff51f9b4a943af4985c6aae30b7759ade0d0583 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 3 Jun 2026 01:40:49 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 03 01:40:49. --- .../20260603/20260603014001-Binary.backup | Bin 0 -> 255287 bytes .../20260603/20260603014001-Config.rsc | 3424 +++++++++++++++++ .../20260603/20260603014001-Diff-Config.rsc | 40 + 3 files changed, 3464 insertions(+) create mode 100644 MikroMaster/20260603/20260603014001-Binary.backup create mode 100644 MikroMaster/20260603/20260603014001-Config.rsc create mode 100644 MikroMaster/history/20260603/20260603014001-Diff-Config.rsc diff --git a/MikroMaster/20260603/20260603014001-Binary.backup b/MikroMaster/20260603/20260603014001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..c0bc08163b38b2be815c5a2044f740bac489df21 GIT binary patch literal 255287 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�S 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 Am;e9( literal 0 HcmV?d00001 diff --git a/MikroMaster/20260603/20260603014001-Config.rsc b/MikroMaster/20260603/20260603014001-Config.rsc new file mode 100644 index 0000000..902f92f --- /dev/null +++ b/MikroMaster/20260603/20260603014001-Config.rsc @@ -0,0 +1,3424 @@ +# 2026-06-03 01:40:02 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 mdns-repeat-ifaces=Bridge-LAN servers=::,:: \ + use-doh-server=https://security.cloudflare-dns.com/dns-query \ + verify-doh-cert=yes +/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-Assured-ID-Root-G2.pem_0 check-certificate=no \ + comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add certificate=DigiCert-Assured-ID-Root-CA check-certificate=no comment="doh-\ + fallback, doh-url=https://security.cloudflare-dns.com/dns-query, doh-cert=\ + DigiCert Global Root CA, notify, name=CloudFlare-doh IPv4" disabled=no \ + down-script="" host=1.0.0.1 http-codes="" interval=10s name=\ + "CloudFlare-doh IPv4" port=443 src-address=146.120.64.211 test-script="" \ + type=https-get up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=no 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=no \ + 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/20260603014001-Diff-Config.rsc b/MikroMaster/history/20260603/20260603014001-Diff-Config.rsc new file mode 100644 index 0000000..05d6dda --- /dev/null +++ b/MikroMaster/history/20260603/20260603014001-Diff-Config.rsc @@ -0,0 +1,40 @@ +2400a2401,2403 +> /certificate settings +> set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ +> openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +2508c2511 +< doh-max-server-connections=20 mdns-repeat-ifaces=Bridge-LAN servers=::,:: \ +--- +> doh-max-server-connections=20 mdns-repeat-ifaces=Bridge-LAN \ +3393,3400c3396,3401 +< add certificate=DigiCert-Assured-ID-Root-G2.pem_0 check-certificate=no \ +< comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ +< y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ +< http-codes="" name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ +< https-get up-script="" +< add certificate=DigiCert-Assured-ID-Root-CA check-certificate=no comment="doh-\ +< fallback, doh-url=https://security.cloudflare-dns.com/dns-query, doh-cert=\ +< DigiCert Global Root CA, notify, name=CloudFlare-doh IPv4" disabled=no \ +--- +> add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ +> y, name=CloudFlare-doh IPv4 1" disabled=no down-script="" host=1.1.1.1 \ +> http-codes="" test-script="" type=simple up-script="" +> add certificate=DigiCert-Global-Root-CA check-certificate=yes comment="doh-fal\ +> lback, doh-url=https://security.cloudflare-dns.com/dns-query, doh-cert=Dig\ +> iCert Global Root CA, notify, name=CloudFlare-doh IPv4" disabled=no \ +3404,3406c3405,3406 +< add comment="dns, notify, name=Google-DNS IPv4" disabled=no dns-server=\ +< 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ +< "Google-DNS IPv4" test-script="" type=dns up-script="" +--- +> add comment="dns, notify, name=Google-DNS IPv4" disabled=yes down-script="" \ +> host=8.8.8.8 http-codes="" test-script="" type=simple up-script="" +3416,3419c3416,3418 +< 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="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ +> -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ +> test-script="" type=simple up-script="" -- 2.52.0