From 2e2b4144e20b7f49b6ac789fd68916fdaaf08e6c Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 1 Jun 2026 17:00:38 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 01 17:00:38. --- .../20260601/20260601170002-Binary.backup | Bin 0 -> 259191 bytes .../20260601/20260601170002-Config.rsc | 3462 +++++++++++++++++ .../20260601/20260601170002-Diff-Config.rsc | 16 + 3 files changed, 3478 insertions(+) create mode 100644 MikroMaster/20260601/20260601170002-Binary.backup create mode 100644 MikroMaster/20260601/20260601170002-Config.rsc create mode 100644 MikroMaster/history/20260601/20260601170002-Diff-Config.rsc diff --git a/MikroMaster/20260601/20260601170002-Binary.backup b/MikroMaster/20260601/20260601170002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..2369e5fbf68cab01e86c85f4d1cff3aec88f8917 GIT binary patch literal 259191 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%0A-}hpKI6xvUweDHK7T9Cr_S( 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 z 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/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=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=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 disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes 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 out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=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-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" 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 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no 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/20260601/20260601170002-Diff-Config.rsc b/MikroMaster/history/20260601/20260601170002-Diff-Config.rsc new file mode 100644 index 0000000..e62d3e8 --- /dev/null +++ b/MikroMaster/history/20260601/20260601170002-Diff-Config.rsc @@ -0,0 +1,16 @@ +3225,3226c3225,3226 +< new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +< src-address-list=NoWG +--- +> disabled=yes new-routing-mark=main passthrough=no src-address=\ +> 10.30.30.0/24 src-address-list=NoWG +3228,3229c3228,3229 +< dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ +< 10.30.30.0/24 src-address-list=!NoWG +--- +> disabled=yes dst-address=!10.30.30.0/24 new-routing-mark=To-VPN \ +> src-address=10.30.30.0/24 src-address-list=!NoWG +3361c3361 +< add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ +--- +> add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ -- 2.52.0