From 14c42244953a9871bc247b2aab33ee4ff3bcb721 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 22 May 2026 18:20:42 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 22 18:20:42. --- .../20260522/20260522182001-Binary.backup | Bin 0 -> 251942 bytes .../20260522/20260522182001-Config.rsc | 3445 +++++++++++++++++ .../20260522/20260522182001-Diff-Config.rsc | 22 + 3 files changed, 3467 insertions(+) create mode 100644 MikroMaster/20260522/20260522182001-Binary.backup create mode 100644 MikroMaster/20260522/20260522182001-Config.rsc create mode 100644 MikroMaster/history/20260522/20260522182001-Diff-Config.rsc diff --git a/MikroMaster/20260522/20260522182001-Binary.backup b/MikroMaster/20260522/20260522182001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..0d116be3780be6bd0096994beaeaa08cfcc3700b GIT binary patch literal 251942 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

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