From 3f3b5693ee5611ad4f724812ddce8280170f8667 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 5 Jun 2026 12:40:35 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 05 12:40:35. --- .../20260605/20260605124002-Binary.backup | Bin 0 -> 255930 bytes .../20260605/20260605124002-Config.rsc | 3440 +++++++++++++++++ .../20260605/20260605124002-Diff-Config.rsc | 46 + 3 files changed, 3486 insertions(+) create mode 100644 MikroMaster/20260605/20260605124002-Binary.backup create mode 100644 MikroMaster/20260605/20260605124002-Config.rsc create mode 100644 MikroMaster/history/20260605/20260605124002-Diff-Config.rsc diff --git a/MikroMaster/20260605/20260605124002-Binary.backup b/MikroMaster/20260605/20260605124002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..2643478970af12113b6cdb4e9574255096d39955 GIT binary patch literal 255930 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℞T7N5FW}Oz4}j*d@`c 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

_aq80gY8d>JAPS%qk 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

sQ6b54;*Q+&oB6c0Va52F2wUHEy;=_x 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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" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/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 interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=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 allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,9.9.9.9 +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 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" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=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="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=accept chain=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=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "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" 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 check-gateway=ping 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 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260605/20260605124002-Diff-Config.rsc b/MikroMaster/history/20260605/20260605124002-Diff-Config.rsc new file mode 100644 index 0000000..3e5a4cb --- /dev/null +++ b/MikroMaster/history/20260605/20260605124002-Diff-Config.rsc @@ -0,0 +1,46 @@ +25c25 +< add disabled=yes listen-port=55982 mtu=1420 name=WG +--- +> add listen-port=55982 mtu=1420 name=WG +2434c2434 +< add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +3123,3141d3122 +< add action=add-src-to-address-list address-list="Honeypot Hacker" \ +< address-list-timeout=12h chain=input comment="block honeypot DNS" \ +< connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ +< udp +< add action=add-src-to-address-list address-list="Honeypot Hacker" \ +< address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ +< in-interface="ether1 - Unet" protocol=tcp +< add action=add-src-to-address-list address-list="Honeypot Hacker" \ +< address-list-timeout=4w2d chain=input comment=\ +< "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ +< in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +< add action=add-src-to-address-list address-list="Honeypot Hacker" \ +< address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ +< connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ +< udp +< add action=add-src-to-address-list address-list="Honeypot Hacker" \ +< address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ +< connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ +< udp +3161c3142 +< established,related,untracked +--- +> established,related,untracked disabled=yes +3163c3144 +< connection-state=invalid +--- +> connection-state=invalid disabled=yes +3166,3167c3147,3148 +< connection-state=new in-interface="ether1 - Unet" src-address-list=\ +< !VDSina +--- +> connection-state=new disabled=yes in-interface="ether1 - Unet" \ +> src-address-list=!VDSina +3333c3314 +< add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ +--- +> add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ -- 2.52.0