From 04749a1590251ca9da26393ec5f10bd5f0ca04a9 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 12:20:30 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 12 12:20:30. --- .../20260612/20260612122001-Binary.backup | Bin 0 -> 271447 bytes .../20260612/20260612122001-Config.rsc | 3599 +++++++++++++++++ MikroMaster/20260612/wg-dashboard.ini | 62 - .../20260612/20260612122001-Diff-Config.rsc | 37 + 4 files changed, 3636 insertions(+), 62 deletions(-) create mode 100644 MikroMaster/20260612/20260612122001-Binary.backup create mode 100644 MikroMaster/20260612/20260612122001-Config.rsc delete mode 100644 MikroMaster/20260612/wg-dashboard.ini create mode 100644 MikroMaster/history/20260612/20260612122001-Diff-Config.rsc diff --git a/MikroMaster/20260612/20260612122001-Binary.backup b/MikroMaster/20260612/20260612122001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..90405517ad6d9457696907999b7ecb78d974f342 GIT binary patch literal 271447 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

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