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