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