From 5ef2f029cce7a5320ff9beb0e04b5b43114ed391 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 3 Jun 2026 23:40:32 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 03 23:40:32. --- .../20260603/20260603234002-Binary.backup | Bin 0 -> 255074 bytes .../20260603/20260603234002-Config.rsc | 3421 +++++++++++++++++ .../20260603/20260603234002-Diff-Config.rsc | 5 + 3 files changed, 3426 insertions(+) create mode 100644 MikroMaster/20260603/20260603234002-Binary.backup create mode 100644 MikroMaster/20260603/20260603234002-Config.rsc create mode 100644 MikroMaster/history/20260603/20260603234002-Diff-Config.rsc diff --git a/MikroMaster/20260603/20260603234002-Binary.backup b/MikroMaster/20260603/20260603234002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..ee7cfbfea69b8ca6cfc5a6304e3b14cfebef9597 GIT binary patch literal 255074 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�vyyg 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"GP`paw)cSE{@ZE67 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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 \ + 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=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked disabled=yes +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid disabled=yes +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new disabled=yes in-interface="ether1 - Unet" \ + src-address-list=!VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ + src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + dst-port=443 fragment=no in-interface="ether1 - Unet" protocol=tcp \ + src-address=!10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=no 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/20260603/20260603234002-Diff-Config.rsc b/MikroMaster/history/20260603/20260603234002-Diff-Config.rsc new file mode 100644 index 0000000..8371b58 --- /dev/null +++ b/MikroMaster/history/20260603/20260603234002-Diff-Config.rsc @@ -0,0 +1,5 @@ +2448,2449c2448 +< add add-default-route=special-classless default-route-distance=2 \ +< default-route-tables=main dhcp-options=clientid,clientid_duid interface=\ +--- +> add add-default-route=special-classless default-route-tables=main interface=\ -- 2.52.0