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