From 2d9eac346498e81a8937f247be362842c6483776 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 15 Jun 2026 13:00:43 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 15 13:00:43. --- .../20260615/20260615130002-Binary.backup | Bin 0 -> 273068 bytes .../20260615/20260615130002-Config.rsc | 3606 +++++++++++++++++ .../20260615/20260615130002-Diff-Config.rsc | 8 + 3 files changed, 3614 insertions(+) create mode 100644 MikroMaster/20260615/20260615130002-Binary.backup create mode 100644 MikroMaster/20260615/20260615130002-Config.rsc create mode 100644 MikroMaster/history/20260615/20260615130002-Diff-Config.rsc diff --git a/MikroMaster/20260615/20260615130002-Binary.backup b/MikroMaster/20260615/20260615130002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..6d324ff517933141323970f43b9584e927a43568 GIT binary patch literal 273068 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

|Y8#o`KBaeZ#Ms&dn@BCQU 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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/692/cf80d9c2\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 05:40:03 15.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=Internet internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=0.0.0.0/0,::/0 \ + endpoint-address=109.107.177.79 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=20s 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=33821 disabled=yes \ + 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.2 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=clientid,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 disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=input disabled=yes 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" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" 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=dst-nat chain=dstnat disabled=yes dst-port=44333 in-interface=\ + "ether1 - Unet" protocol=udp src-address=!10.30.30.0/24 to-addresses=\ + 10.30.30.33 to-ports=44333 +add action=dst-nat chain=dstnat dst-port=44333 in-interface="ether1 - Unet" \ + protocol=tcp to-addresses=10.30.30.33 to-ports=44333 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=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/20260615/20260615130002-Diff-Config.rsc b/MikroMaster/history/20260615/20260615130002-Diff-Config.rsc new file mode 100644 index 0000000..9e64e13 --- /dev/null +++ b/MikroMaster/history/20260615/20260615130002-Diff-Config.rsc @@ -0,0 +1,8 @@ +356c356 +< \n:global CommitId \"main/692/cf80d9c2\";\r\ +--- +> \n:global CommitId \"main/683/6160edd1\";\r\ +359c359 +< r: root, in 05:40:03 15.06.2026.\";\r\ +--- +> r: root, in 11:50:03 12.06.2026.\";\r\ -- 2.52.0