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