From ca0483d1c0c7d08c1b2983f9a36c46434b35726f Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 5 Jun 2026 23:20:32 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 05 23:20:32. --- .../20260605/20260605232002-Binary.backup | Bin 0 -> 253572 bytes .../20260605/20260605232002-Config.rsc | 3395 +++++++++++++++++ .../20260605/20260605232002-Diff-Config.rsc | 43 + 3 files changed, 3438 insertions(+) create mode 100644 MikroMaster/20260605/20260605232002-Binary.backup create mode 100644 MikroMaster/20260605/20260605232002-Config.rsc create mode 100644 MikroMaster/history/20260605/20260605232002-Diff-Config.rsc diff --git a/MikroMaster/20260605/20260605232002-Binary.backup b/MikroMaster/20260605/20260605232002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..a7dfd7eb8f2796c4f699f303fd982bbc86348977 GIT binary patch literal 253572 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%0D4KqYY;6feR{fJt2RS+ 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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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.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" +/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 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main interface="ether1 - Unet" name=client1 \ + 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,9.9.9.9 +/ip dns static +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 name=reg.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" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" 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 +/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 +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 +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=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +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 +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=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +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=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=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes 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="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" in-interface-list=\ + WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 nd +set [ find default=yes ] disabled=yes +/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/20260605/20260605232002-Diff-Config.rsc b/MikroMaster/history/20260605/20260605232002-Diff-Config.rsc new file mode 100644 index 0000000..0032c23 --- /dev/null +++ b/MikroMaster/history/20260605/20260605232002-Diff-Config.rsc @@ -0,0 +1,43 @@ +3096,3098d3095 +< add action=fasttrack-connection chain=forward comment=\ +< "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ +< connection-state=established,related,new +3103a3101,3103 +> add action=fasttrack-connection chain=forward comment=\ +> "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ +> connection-state=established,related,new disabled=yes +3176,3180c3176,3180 +< 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 \ +--- +> add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" 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 dst-port=5000 \ +> in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ +3182,3183c3182,3183 +< 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 \ +--- +> add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ +> in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ +3189,3190c3189 +< "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ +< 10.30.30.33 to-ports=22 +--- +> "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +3194,3195c3193,3194 +< disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ +< to-addresses=10.30.30.33 to-ports=80 +--- +> dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ +> 10.30.30.33 to-ports=80 +3211,3212d3209 +< add action=accept chain=prerouting comment="Trusted DNS" in-interface-list=\ +< WAN src-address-list=Trusted-DNS +3218a3216,3217 +> add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ +> in-interface-list=WAN src-address-list=Trusted-DNS -- 2.52.0