From 05eb6abbadf5ed7723b636a146fe5a33255ef1f6 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 8 Jun 2026 07:20:25 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 08 07:20:25. --- .../20260608/20260608072002-Binary.backup | Bin 0 -> 258153 bytes .../20260608/20260608072002-Config.rsc | 3439 +++++++++++++++++ .../20260608/20260608072002-Diff-Config.rsc | 30 + 3 files changed, 3469 insertions(+) create mode 100644 MikroMaster/20260608/20260608072002-Binary.backup create mode 100644 MikroMaster/20260608/20260608072002-Config.rsc create mode 100644 MikroMaster/history/20260608/20260608072002-Diff-Config.rsc diff --git a/MikroMaster/20260608/20260608072002-Binary.backup b/MikroMaster/20260608/20260608072002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..7ff30bd778aab72c8f42310da5cbd752678274ac GIT binary patch literal 258153 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℘d%SHkuBZx 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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 lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set accept-router-advertisements-on=LAN allow-fast-path=no disable-ipv6=yes \ + 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 check-gateway=arp default-route-tables=main dhcp-options=\ + hostname,clientid,clientid_duid interface="ether1 - Unet" name=client1 \ + use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4,10.30.30.81 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +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 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 comment="udp Accept input DNS queries" \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ + 10.30.30.0/24 +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + 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 src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp src-address=!10.30.30.0/24 \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ + 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="udp Redirect DNS in NAT" dst-port=\ + 53 protocol=udp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" dst-port=\ + 53 protocol=tcp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + 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" disabled=yes \ + 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 dhcp-client +add accept-prefix-without-address=no dhcp-options=\ + DUID,domain-search-list,HostName dhcp-options=\ + DUID,domain-search-list,HostName interface=lo pool-name=pool10-net-local \ + rapid-commit=no request=info +/ipv6 dhcp-server +add address-pool=pool10-net-local dhcp-option=domain-search-set interface=\ + Bridge-LAN name=DHCP-v6 use-reconfigure=yes +/ipv6 nd +set [ find default=yes ] advertise-dns=self disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes +/ipv6 nd prefix +add disabled=yes interface=Bridge-LAN prefix=none +/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/20260608072002-Diff-Config.rsc b/MikroMaster/history/20260608/20260608072002-Diff-Config.rsc new file mode 100644 index 0000000..ae17c93 --- /dev/null +++ b/MikroMaster/history/20260608/20260608072002-Diff-Config.rsc @@ -0,0 +1,30 @@ +70,74d69 +< /ipv6 dhcp-client option +< add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +< add code=12 name=HostName value="\$(HOSTNAME)" +< add code=61 name=DUID value=0x00030001488f5a8e1abc +< add code=61 name=clientid +2434c2429,2430 +< max-neighbor-entries=8192 multipath-hash-policy=l4 +--- +> disable-link-local-address=yes forward=no max-neighbor-entries=8192 \ +> multipath-hash-policy=l4 +3348,3351c3344,3345 +< add accept-prefix-without-address=no dhcp-options=\ +< DUID,domain-search-list,HostName dhcp-options=\ +< DUID,domain-search-list,HostName interface=lo pool-name=pool10-net-local \ +< rapid-commit=no request=info +--- +> add allow-reconfigure=yes interface=Bridge-LAN pool-name=pool10-net-local \ +> pool-prefix-length=64 request=address,prefix use-interface-duid=yes +3354c3348 +< Bridge-LAN name=DHCP-v6 use-reconfigure=yes +--- +> Bridge-LAN name=DHCP-v6 +3356,3359c3350 +< set [ find default=yes ] advertise-dns=self disabled=yes interface=Bridge-LAN \ +< managed-address-configuration=yes other-configuration=yes +< /ipv6 nd prefix +< add disabled=yes interface=Bridge-LAN prefix=none +--- +> set [ find default=yes ] disabled=yes -- 2.52.0