From 796ac5ebb5e76a3d749cdd183a0a64fc5903cd35 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 19:20:18 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 19:20:18. --- .../20260602/20260602192001-Binary.backup | Bin 0 -> 260605 bytes .../20260602/20260602192001-Config.rsc | 3466 +++++++++++++++++ .../20260602/20260602192001-Diff-Config.rsc | 15 + 3 files changed, 3481 insertions(+) create mode 100644 MikroMaster/20260602/20260602192001-Binary.backup create mode 100644 MikroMaster/20260602/20260602192001-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602192001-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602192001-Binary.backup b/MikroMaster/20260602/20260602192001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..c5ae024e566deebe6a901f744fd0edfb212655d0 GIT binary patch literal 260605 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

yqvIf|r9NPExpOJc~0}^b; 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�h)5{ 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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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.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" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.1 +/ip cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=clientid,clientid_duid interface=\ + "ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" 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 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.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 name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=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=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" disabled=yes dst-port=123 \ + protocol=udp src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new disabled=yes in-interface="ether1 - Unet" \ + src-address-list=!VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ + src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + 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" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +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 disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set ip-version=ipv4 mode=http +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add 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, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" name="Cuad9-DOH IPv4" test-script="" type=\ + simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260602/20260602192001-Diff-Config.rsc b/MikroMaster/history/20260602/20260602192001-Diff-Config.rsc new file mode 100644 index 0000000..70ae7a0 --- /dev/null +++ b/MikroMaster/history/20260602/20260602192001-Diff-Config.rsc @@ -0,0 +1,15 @@ +2427c2427 +< set detect-interface-list=WAN internet-interface-list=Internet \ +--- +> set detect-interface-list=Internet internet-interface-list=Internet \ +2441c2441 +< add allowed-address=0.0.0.0/0 client-allowed-address=::/0 disabled=yes \ +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ +2518c2518 +< set cache-max-ttl=1d doh-max-concurrent-queries=100 \ +--- +> set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ +3362a3363,3364 +> add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ +> routing-table=main scope=30 target-scope=10 -- 2.52.0