From b0262469ae912bf7f795f658eae0021d04a27c8e Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 15 Jun 2026 14:40:37 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 15 14:40:37. --- .../20260615/20260615144001-Binary.backup | Bin 0 -> 269910 bytes .../20260615/20260615144001-Config.rsc | 3599 +++++++++++++++++ .../20260615/20260615144001-Diff-Config.rsc | 54 + 3 files changed, 3653 insertions(+) create mode 100644 MikroMaster/20260615/20260615144001-Binary.backup create mode 100644 MikroMaster/20260615/20260615144001-Config.rsc create mode 100644 MikroMaster/history/20260615/20260615144001-Diff-Config.rsc diff --git a/MikroMaster/20260615/20260615144001-Binary.backup b/MikroMaster/20260615/20260615144001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..c7fecb5c957754a07f85cbb220c85460e088146c GIT binary patch literal 269910 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 z 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 y2u)I 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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/692/cf80d9c2\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 05:40:03 15.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=all internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=Internet +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=WG list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 109.107.177.79 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=20s public-key=\ + "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=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 +add address=wg.vados.ru list=VPN-Server +/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=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=input disabled=yes 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=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 disabled=yes protocol=icmp +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +/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" 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=dst-nat chain=dstnat disabled=yes dst-port=44333 in-interface=\ + "ether1 - Unet" protocol=udp src-address=!10.30.30.0/24 to-addresses=\ + 10.30.30.33 to-ports=44333 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG routing-mark=To-VPN src-address-list=!NoWG +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp 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/20260615/20260615144001-Diff-Config.rsc b/MikroMaster/history/20260615/20260615144001-Diff-Config.rsc new file mode 100644 index 0000000..529a50e --- /dev/null +++ b/MikroMaster/history/20260615/20260615144001-Diff-Config.rsc @@ -0,0 +1,54 @@ +2585,2586c2585,2586 +< set detect-interface-list=all internet-interface-list=WAN lan-interface-list=\ +< LAN wan-interface-list=Internet +--- +> set detect-interface-list=Internet internet-interface-list=Internet \ +> lan-interface-list=LAN wan-interface-list=WAN +2590c2590 +< add interface=WG list=WAN +--- +> add interface="ether1 - Unet" list=WAN +2593,2596c2593,2596 +< add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ +< 109.107.177.79 endpoint-port=29185 interface=WG name=MikroVados \ +< persistent-keepalive=20s public-key=\ +< "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +> endpoint-address=109.107.177.79 endpoint-port=29185 interface=WG name=\ +> MikroVados persistent-keepalive=20s public-key=\ +> "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" responder=yes +2602c2602 +< add address=10.8.0.2/24 interface=WG network=10.8.0.0 +--- +> add address=10.8.0.2 interface=WG network=10.8.0.0 +3273,3275d3272 +< add action=fasttrack-connection chain=forward comment=\ +< "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ +< connection-state=established,related,new +3285a3283,3285 +> add action=fasttrack-connection chain=forward comment=\ +> "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ +> connection-state=established,related,new disabled=yes +3316,3319c3316,3319 +< add action=accept chain=input disabled=yes protocol=icmp +< add action=accept chain=input connection-state=established disabled=yes +< add action=accept chain=input connection-state=related disabled=yes +< add action=drop chain=input disabled=yes in-interface-list=!LAN +--- +> add action=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 +3362,3363c3362,3363 +< add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ +< "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +--- +> add action=dst-nat chain=dstnat dst-port=44333 in-interface="ether1 - Unet" \ +> protocol=tcp to-addresses=10.30.30.33 to-ports=44333 +3365c3365,3367 +< out-interface=WG routing-mark=To-VPN src-address-list=!NoWG +--- +> 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 -- 2.52.0