From 90824a84144f0d416af891c866e87608de672f2e Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 12:40:32 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 12 12:40:32. --- .../20260612/20260612124002-Binary.backup | Bin 0 -> 271516 bytes .../20260612/20260612124002-Config.rsc | 3601 +++++++++++++++++ .../20260612/20260612124002-Diff-Config.rsc | 37 + 3 files changed, 3638 insertions(+) create mode 100644 MikroMaster/20260612/20260612124002-Binary.backup create mode 100644 MikroMaster/20260612/20260612124002-Config.rsc create mode 100644 MikroMaster/history/20260612/20260612124002-Diff-Config.rsc diff --git a/MikroMaster/20260612/20260612124002-Binary.backup b/MikroMaster/20260612/20260612124002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..c55778e34531c724d1131a9ac8de093228709924 GIT binary patch literal 271516 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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/680/f2c803f5\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 21:20:03 11.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 +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 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=dynamic 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=WG list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=0.0.0.0/0 disabled=yes \ + interface=WG name=MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +add allowed-address=0.0.0.0/0 client-address=10.8.0.2/24 \ + client-allowed-address=0.0.0.0/0 client-dns=8.8.8.8 client-endpoint=\ + 146.120.64.211 client-keepalive=10s client-listen-port=10264 \ + endpoint-address=57.151.123.243 endpoint-port=10264 interface=WG name=\ + GitHub persistent-keepalive=10s public-key=\ + "HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" responder=yes +/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.1/24 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=10 \ + default-route-tables=main dhcp-options=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 +add address=10.30.30.33 comment="Direct connet to DNS servers" list=\ + Direct-DNS +/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 dst-port=29185 in-interface="ether1 - Unet" \ + protocol=tcp +add action=accept chain=input dst-port=29185 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" \ + new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" 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" disabled=\ + yes 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" disabled=\ + yes 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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG routing-mark=To-VPN src-address-list=!NoWG +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=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=no distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 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/20260612/20260612124002-Diff-Config.rsc b/MikroMaster/history/20260612/20260612124002-Diff-Config.rsc new file mode 100644 index 0000000..29aa2d9 --- /dev/null +++ b/MikroMaster/history/20260612/20260612124002-Diff-Config.rsc @@ -0,0 +1,37 @@ +25c25 +< add listen-port=29185 mtu=1280 name=WG +--- +> add listen-port=29185 mtu=1420 name=WG +28d27 +< add exclude=LAN include=dynamic name=Internet +30c29 +< add exclude=LAN include=WAN name=UNET +--- +> add exclude=LAN include=WAN name=Internet +2586c2585 +< set detect-interface-list=dynamic internet-interface-list=Internet \ +--- +> set detect-interface-list=WAN internet-interface-list=Internet \ +2591c2590 +< add interface=WG list=WAN +--- +> add interface="ether1 - Unet" list=WAN +2599,2602c2598,2600 +< 146.120.64.211 client-keepalive=10s client-listen-port=10264 \ +< endpoint-address=57.151.123.243 endpoint-port=10264 interface=WG name=\ +< GitHub persistent-keepalive=10s public-key=\ +< "HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" responder=yes +--- +> 146.120.64.211 client-keepalive=10s endpoint-address=57.151.123.243 \ +> endpoint-port=10264 interface=WG name=GitHub persistent-keepalive=10s \ +> public-key="HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" +2613c2611 +< add add-default-route=special-classless default-route-distance=10 \ +--- +> add add-default-route=special-classless default-route-distance=2 \ +3364,3365d3361 +< add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ +< "ether1 - Unet" src-address=10.30.30.0/24 +3367a3364,3365 +> add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ +> "ether1 - Unet" src-address=10.30.30.0/24 -- 2.52.0