From 2910fa6d250129571165984ec0971b9381248b0b Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 17:00:18 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 12 17:00:18. --- .../20260612/20260612170002-Binary.backup | Bin 0 -> 273023 bytes .../20260612/20260612170002-Config.rsc | 3605 +++++++++++++++++ .../20260612/20260612170002-Diff-Config.rsc | 6 + 3 files changed, 3611 insertions(+) create mode 100644 MikroMaster/20260612/20260612170002-Binary.backup create mode 100644 MikroMaster/20260612/20260612170002-Config.rsc create mode 100644 MikroMaster/history/20260612/20260612170002-Diff-Config.rsc diff --git a/MikroMaster/20260612/20260612170002-Binary.backup b/MikroMaster/20260612/20260612170002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..8d8063a5aeee437ef90f5a7d317b4ea54e4a12f4 GIT binary patch literal 273023 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�} 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/680/f2c803f5\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 21:20:03 11.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \n}" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 trusted-dhcpv6=yes trusted-ra=yes +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=0.0.0.0/0 disabled=yes \ + interface=WG name=MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +add allowed-address=0.0.0.0/0 client-address=10.8.0.2/24 \ + client-allowed-address=0.0.0.0/0 client-dns=8.8.8.8 client-endpoint=\ + 146.120.64.211 client-keepalive=10s client-listen-port=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 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ + no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +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 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 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=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260612/20260612170002-Diff-Config.rsc b/MikroMaster/history/20260612/20260612170002-Diff-Config.rsc new file mode 100644 index 0000000..8f193b4 --- /dev/null +++ b/MikroMaster/history/20260612/20260612170002-Diff-Config.rsc @@ -0,0 +1,6 @@ +3363,3367d3362 +< add action=dst-nat chain=dstnat 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 -- 2.52.0