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