From 0532075f58d5232cb92d6f4c92b9318b1d450c71 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 26 May 2026 18:40:40 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 26 18:40:40. --- .../20260526/20260526184001-Binary.backup | Bin 0 -> 258918 bytes .../20260526/20260526184001-Config.rsc | 3462 +++++++++++++++++ .../20260526/20260526184001-Diff-Config.rsc | 12 + 3 files changed, 3474 insertions(+) create mode 100644 MikroMaster/20260526/20260526184001-Binary.backup create mode 100644 MikroMaster/20260526/20260526184001-Config.rsc create mode 100644 MikroMaster/history/20260526/20260526184001-Diff-Config.rsc diff --git a/MikroMaster/20260526/20260526184001-Binary.backup b/MikroMaster/20260526/20260526184001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..4c32f602325d36e10cba0eec2baac303f7bc4cd0 GIT binary patch literal 258918 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/JO*p3r`E32Rk0LeF@TXrasdd9#O!7L$gs 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�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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/661/8d6d2114\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 25.05.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" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/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 +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 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 discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +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 comment=AMSTER name=amster.vados.ru 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.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google 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" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=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=NUC 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=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/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-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN 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-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +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 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=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +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=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +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 +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" 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=\ + "Mark Routing main for NoVdsina" 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=\ + "!!!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" \ + 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 dst-address-list=!Local-Net new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "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=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +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 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" 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 to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="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=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=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=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 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main 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 interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no 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 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 comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple 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="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260526/20260526184001-Diff-Config.rsc b/MikroMaster/history/20260526/20260526184001-Diff-Config.rsc new file mode 100644 index 0000000..848d985 --- /dev/null +++ b/MikroMaster/history/20260526/20260526184001-Diff-Config.rsc @@ -0,0 +1,12 @@ +3155c3155 +< connection-state=established,related,new disabled=yes +--- +> connection-state=established,related,new +3217a3218,3220 +> add action=mark-connection chain=prerouting comment=\ +> "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ +> VPN_No_FastTrack +3230,3232d3232 +< add action=mark-connection chain=prerouting comment=\ +< "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ +< VPN_No_FastTrack -- 2.52.0