From 56b8ce6093fca785928b85f64d61e278ccf08004 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 9 Jun 2026 07:21:12 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 09 07:21:12. --- .../20260609/20260609072002-Binary.backup | Bin 0 -> 263454 bytes .../20260609/20260609072002-Config.rsc | 3594 +++++++++++++++++ .../20260609/20260609072002-Diff-Config.rsc | 8 + 3 files changed, 3602 insertions(+) create mode 100644 MikroMaster/20260609/20260609072002-Binary.backup create mode 100644 MikroMaster/20260609/20260609072002-Config.rsc create mode 100644 MikroMaster/history/20260609/20260609072002-Diff-Config.rsc diff --git a/MikroMaster/20260609/20260609072002-Binary.backup b/MikroMaster/20260609/20260609072002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..9e8ed17c971ccca766b8e8e865e1209c189c9f74 GIT binary patch literal 263454 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

$2!&Xx$hencwKp9L?|D%BHTBq<$yfZ1*!d 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 z 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

6E7x(BSCy;_si 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\"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/679/bd93dce4\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 08.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" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \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 trusted-dhcpv6=yes trusted-ra=yes +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 lldp-med=no lldp-poe-power=no protocol="" +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + 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 disabled=yes \ + 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 disabled=yes 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 default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ + no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +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 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" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes 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=amster 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=10.30.30.30 comment=miller disabled=yes list=NoWG +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=tcp \ + src-address=10.30.30.0/24 +add action=accept chain=input comment="udp Accept input DNS queries" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=udp \ + src-address=10.30.30.0/24 +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=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 +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=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="udp Redirect DNS in NAT" dst-port=\ + 53 protocol=udp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" dst-port=\ + 53 protocol=tcp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + 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 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" disabled=yes \ + 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 disabled=yes 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" 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 comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=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 src-address-list=TRUSTED 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="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=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=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=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=yes 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 dhcp-client +add add-default-route=yes disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260609/20260609072002-Diff-Config.rsc b/MikroMaster/history/20260609/20260609072002-Diff-Config.rsc new file mode 100644 index 0000000..11d1bcd --- /dev/null +++ b/MikroMaster/history/20260609/20260609072002-Diff-Config.rsc @@ -0,0 +1,8 @@ +356c356 +< \n:global CommitId \"main/679/bd93dce4\";\r\ +--- +> \n:global CommitId \"main/672/7cf8bc7a\";\r\ +359c359 +< r: root, in 13:30:03 08.06.2026.\";\r\ +--- +> r: root, in 14:35:04 06.06.2026.\";\r\ -- 2.52.0