From b662dd7aa853ecdba6f58b6f42e9578d448ae576 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 8 Jun 2026 03:40:37 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 08 03:40:37. --- .../20260608/20260608034001-Binary.backup | Bin 0 -> 255991 bytes .../20260608/20260608034001-Config.rsc | 3394 +++++++++++++++++ .../20260608/20260608034001-Diff-Config.rsc | 30 + 3 files changed, 3424 insertions(+) create mode 100644 MikroMaster/20260608/20260608034001-Binary.backup create mode 100644 MikroMaster/20260608/20260608034001-Config.rsc create mode 100644 MikroMaster/history/20260608/20260608034001-Diff-Config.rsc diff --git a/MikroMaster/20260608/20260608034001-Binary.backup b/MikroMaster/20260608/20260608034001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..c7d619e7854e10d8ff586f263078f9dd5f569aa8 GIT binary patch literal 255991 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�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

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