From fb101cd856a7faca0be79c4416d3bb4208a72593 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 25 May 2026 22:40:39 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 25 22:40:39. --- .../20260525/20260525224002-Binary.backup | Bin 0 -> 256114 bytes .../20260525/20260525224002-Config.rsc | 3453 +++++++++++++++++ .../20260525/20260525224002-Diff-Config.rsc | 4 + 3 files changed, 3457 insertions(+) create mode 100644 MikroMaster/20260525/20260525224002-Binary.backup create mode 100644 MikroMaster/20260525/20260525224002-Config.rsc create mode 100644 MikroMaster/history/20260525/20260525224002-Diff-Config.rsc diff --git a/MikroMaster/20260525/20260525224002-Binary.backup b/MikroMaster/20260525/20260525224002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..55cc49865c43ac9e383a0b520690cf8f04eba18b GIT binary patch literal 256114 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

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