From ab3776a2a271d45dd715a68bff1247a75db71fbb Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 11:00:22 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 12 11:00:22. --- .../20260612/20260612110002-Binary.backup | Bin 0 -> 271515 bytes .../20260612/20260612110002-Config.rsc | 3599 +++++++++++++++++ .../20260612/20260612110002-Diff-Config.rsc | 10 + 3 files changed, 3609 insertions(+) create mode 100644 MikroMaster/20260612/20260612110002-Binary.backup create mode 100644 MikroMaster/20260612/20260612110002-Config.rsc create mode 100644 MikroMaster/history/20260612/20260612110002-Diff-Config.rsc diff --git a/MikroMaster/20260612/20260612110002-Binary.backup b/MikroMaster/20260612/20260612110002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..10598cd0216a87efa35e6f2550b2c8b22b02e41a GIT binary patch literal 271515 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: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Ð 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/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,::/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=\ + 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 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 add-default-route=special-classless default-route-distance=2 \ + 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 disabled=yes 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" 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" 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" \ + 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" \ + new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="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=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +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=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/20260612110002-Diff-Config.rsc b/MikroMaster/history/20260612/20260612110002-Diff-Config.rsc new file mode 100644 index 0000000..a6834ee --- /dev/null +++ b/MikroMaster/history/20260612/20260612110002-Diff-Config.rsc @@ -0,0 +1,10 @@ +2572a2573 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2574a2576 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2576a2579 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2578a2582 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2581a2586 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings -- 2.52.0