From b0725a1cc697ce77673d386cf045ed87e6194f24 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 16 Jun 2026 21:01:33 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 16 21:01:33. --- .../20260616/20260616210004-Binary.backup | Bin 0 -> 273800 bytes .../20260616/20260616210004-Config.rsc | 3668 +++++++++++++++++ .../20260616/20260616210004-Diff-Config.rsc | 100 + 3 files changed, 3768 insertions(+) create mode 100644 MikroMaster/20260616/20260616210004-Binary.backup create mode 100644 MikroMaster/20260616/20260616210004-Config.rsc create mode 100644 MikroMaster/history/20260616/20260616210004-Diff-Config.rsc diff --git a/MikroMaster/20260616/20260616210004-Binary.backup b/MikroMaster/20260616/20260616210004-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..c917149f1c81d3d3fe12ee812eb3cc58e163db3d GIT binary patch literal 273800 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

?k% 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

6P};s?gA4jxO60 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 z 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
pq$%a=c7wckeNp^t+e~s67WfK)|bLFvs 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
it_| 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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 +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 trusted=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 +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes forward=no \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=static internet-interface-list=WAN \ + lan-interface-list=LAN request-interval=1m wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/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=10s 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 discovery-interfaces=Bridge-LAN enabled=yes 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:2 dhcp-options=clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set=iVados 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.4.4,1.0.0.1 verify-doh-cert=yes +/ip dns static +add address=109.107.177.79 name=vds.vados.ru type=A +add comment="Local DNS server for vados.ru" disabled=yes ns=10.30.30.81 \ + regexp=*.vados.ru type=NS +add comment="*.vados.ru Regexp" disabled=yes forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" disabled=yes 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 disabled=yes name=\ + ns.vados.ru.local type=A +add comment="DNS ns.vados.ru.local" disabled=yes 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" disabled=yes 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 disabled=yes 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=wg.vados.ru comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" disabled=yes 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 disabled=yes +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" \ + 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" \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ + 10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" dst-address-list=\ + VPN-Server out-interface="ether1 - Unet" protocol=udp src-port=13231 +add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ + out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp src-address-list=VDSina +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related in-interface-list=\ + *2000014 +add action=drop chain=input in-interface=!Bridge-LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" 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-list=VPN-Server \ + 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" \ + dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack routing-mark=To-VPN +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 new-routing-mark=To-VPN 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" dst-address=\ + !10.30.30.0/24 out-interface="ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=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="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="(unknown)" 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=109.107.177.79 interface=WG type=external +add interface=lo type=internal +add interface=wlan2 type=internal +add interface=wlan1 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 firewall address-list +add address=::/128 comment="defconf: unspecified address" list=bad_ipv6 +add address=::1/128 comment="defconf: lo" list=bad_ipv6 +add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6 +add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6 +add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6 +add address=100::/64 comment="defconf: discard only " list=bad_ipv6 +add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6 +add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6 +add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6 +/ipv6 firewall filter +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=input comment="defconf: accept UDP traceroute" \ + dst-port=33434-33534 protocol=udp +add action=accept chain=input comment=\ + "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\ + udp src-address=fe80::/10 +add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \ + protocol=udp +add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=input comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=input comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +add action=accept chain=forward comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6 +add action=drop chain=forward comment=\ + "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6 +add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \ + hop-limit=equal:1 protocol=icmpv6 +add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=forward comment="defconf: accept HIP" protocol=139 +add action=accept chain=forward comment="defconf: accept IKE" dst-port=\ + 500,4500 protocol=udp +add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=forward comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=forward comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +/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 bfd configuration +add addresses=10.8.0.0/24 disabled=no forbid-bfd=yes interfaces=WG min-rx=\ + 200ms min-tx=200ms multiplier=5 vrf=main +/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="" +add check-certificate=yes comment=\ + "doh, doh-url=https://vds.vados.ru/vds-query, name=vds.vados.ru" \ + disabled=yes down-script="" host=109.107.177.79 http-codes="" name=\ + vds.vados.ru port=443 test-script="" type=https-get up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260616/20260616210004-Diff-Config.rsc b/MikroMaster/history/20260616/20260616210004-Diff-Config.rsc new file mode 100644 index 0000000..e9e07c3 --- /dev/null +++ b/MikroMaster/history/20260616/20260616210004-Diff-Config.rsc @@ -0,0 +1,100 @@ +22c22 +< # channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +--- +> # channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +32,34c32,34 +< add include=static name=LAN +< add name=Internet +< add include=Internet name=WAN +--- +> add name=LAN +> add exclude=LAN name=WAN +> add exclude=LAN include=WAN name=Internet +2577a2578 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2579a2581 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2581a2584 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2583a2587 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2586a2591 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2590,2591c2595,2596 +< set detect-interface-list=static internet-interface-list=WAN \ +< lan-interface-list=LAN request-interval=1m wan-interface-list=WAN +--- +> set detect-interface-list=all internet-interface-list=WAN lan-interface-list=\ +> LAN wan-interface-list=Internet +2593a2599,2601 +> /interface list member +> add interface=WG list=WAN +> add interface=Bridge-LAN list=LAN +2612,2613c2620,2622 +< default-route-tables=main:2 dhcp-options=clientid,clientid_duid \ +< interface="ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +--- +> default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ +> interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ +> no use-peer-ntp=no +2670c2679 +< doh-max-server-connections=20 servers=8.8.4.4,1.0.0.1 verify-doh-cert=yes +--- +> doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 +2672d2680 +< add address=109.107.177.79 name=vds.vados.ru type=A +3321c3329 +< *2000014 +--- +> Internet +3325,3326c3333,3335 +< "Mark Routing main for NoVdsina" dst-address-list=NoVdsina \ +< new-routing-mark=main passthrough=no src-address=10.30.30.0/24 +--- +> "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 +3328,3329c3337,3339 +< "Mark Routing main for VDSina" dst-address-list=VPN-Server \ +< new-routing-mark=main passthrough=no src-address=10.30.30.0/24 +--- +> "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ +> dst-address-list=VPN-Server new-routing-mark=main passthrough=no \ +> src-address=10.30.30.0/24 +3340,3341c3350,3351 +< new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +< src-address-list=NoWG +--- +> disabled=yes new-routing-mark=main passthrough=no src-address=\ +> 10.30.30.0/24 src-address-list=NoWG +3344c3354,3355 +< To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +--- +> To-VPN routing-mark=!main src-address=10.30.30.0/24 src-address-list=\ +> !NoWG +3346,3347c3357,3358 +< "Mark VPN connections to exclude from FastTrack" disabled=yes \ +< new-connection-mark=VPN_No_FastTrack routing-mark=To-VPN +--- +> "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ +> VPN_No_FastTrack routing-mark=To-VPN +3352c3363,3364 +< 10.8.0.0/24 new-routing-mark=To-VPN src-address=10.30.30.0/24 +--- +> 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ +> src-address=10.30.30.0/24 +3480,3481c3492,3493 +< add check-gateway="(unknown)" disabled=no distance=1 dst-address=0.0.0.0/0 \ +< gateway=WG routing-table=To-VPN scope=30 target-scope=10 +--- +> add check-gateway=none disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ +> WG routing-table=To-VPN scope=30 target-scope=10 +3584,3586d3595 +< /routing bfd configuration +< add addresses=10.8.0.0/24 disabled=no forbid-bfd=yes interfaces=WG min-rx=\ +< 200ms min-tx=200ms multiplier=5 vrf=main +3663,3666d3671 +< add check-certificate=yes comment=\ +< "doh, doh-url=https://vds.vados.ru/vds-query, name=vds.vados.ru" \ +< disabled=yes down-script="" host=109.107.177.79 http-codes="" name=\ +< vds.vados.ru port=443 test-script="" type=https-get up-script="" -- 2.52.0

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�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 z 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