From bd872d210bc9ccf5650cd6e3aae047e89c85f99e Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 19:00:15 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 19:00:15. --- .../20260602/20260602190002-Binary.backup | Bin 0 -> 260733 bytes .../20260602/20260602190002-Config.rsc | 3468 +++++++++++++++++ .../20260602/20260602190002-Diff-Config.rsc | 77 + 3 files changed, 3545 insertions(+) create mode 100644 MikroMaster/20260602/20260602190002-Binary.backup create mode 100644 MikroMaster/20260602/20260602190002-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602190002-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602190002-Binary.backup b/MikroMaster/20260602/20260602190002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..354fb7f96f97c5c3b1445a86238acaaa4042dda8 GIT binary patch literal 260733 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�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

dW+mF4xy3?ogj|HSCMUNe0YT}xm_ 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 mh)\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=Internet internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.1 +/ip cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=clientid,clientid_duid interface=\ + "ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" disabled=yes name=dns.comss.one \ + type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" disabled=yes dst-port=123 \ + protocol=udp src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new disabled=yes in-interface="ether1 - Unet" \ + src-address-list=!VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ + src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + dst-port=443 fragment=no in-interface="ether1 - Unet" protocol=tcp \ + src-address=!10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set ip-version=ipv4 mode=http +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" name="Cuad9-DOH IPv4" test-script="" type=\ + simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260602/20260602190002-Diff-Config.rsc b/MikroMaster/history/20260602/20260602190002-Diff-Config.rsc new file mode 100644 index 0000000..a237a4d --- /dev/null +++ b/MikroMaster/history/20260602/20260602190002-Diff-Config.rsc @@ -0,0 +1,77 @@ +27c27 +< add disabled=yes listen-port=13231 mtu=1280 name=WG +--- +> add listen-port=13231 mtu=1280 name=WG +30d29 +< add name=Internet +2427,2428c2426,2427 +< set detect-interface-list=Internet internet-interface-list=Internet \ +< lan-interface-list=LAN wan-interface-list=WAN +--- +> set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ +> LAN wan-interface-list=WAN +2433c2432 +< add interface="ether1 - Unet" list=WAN +--- +> add comment=Unet interface="ether1 - Unet" list=WAN +2459,2461c2458,2459 +< 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 +--- +> add default-route-distance=2 default-route-tables=main dhcp-options=\ +> clientid,clientid_duid interface="ether1 - Unet" name=client1 +2518c2516 +< set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ +--- +> set cache-max-ttl=1d doh-max-concurrent-queries=100 \ +2521,2523d2518 +< add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +< add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +< add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +2526a2522 +> add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +2533a2530,2532 +> add address=10.30.30.33 name=oxidized.vados.ru type=A +> add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +> add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +3195,3196c3194,3195 +< connection-state=new disabled=yes in-interface="ether1 - Unet" \ +< src-address-list=!VDSina +--- +> connection-state=new in-interface="ether1 - Unet" src-address-list=\ +> !VDSina +3225,3226c3224,3225 +< disabled=yes new-routing-mark=main passthrough=no src-address=\ +< 10.30.30.0/24 src-address-list=NoWG +--- +> new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +> src-address-list=NoWG +3233,3238c3232,3237 +< 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 +--- +> add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ +> out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ +> 1381-65535 +> add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ +> 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ +> src-address=10.30.30.0/24 +3247,3249c3246,3248 +< 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.ruhttps dst-port=443 \ +> fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ +> !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +3267,3268c3266,3267 +< disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ +< to-addresses=10.30.30.33 to-ports=80 +--- +> dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ +> 10.30.30.33 to-ports=80 -- 2.52.0