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