From 03450155b7b0a5c91525a6a552a01621d1f1ced9 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 13:00:16 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 13:00:16. --- .../20260602/20260602130002-Binary.backup | Bin 0 -> 259459 bytes .../20260602/20260602130002-Config.rsc | 3467 +++++++++++++++++ .../20260602/20260602130002-Diff-Config.rsc | 83 + 3 files changed, 3550 insertions(+) create mode 100644 MikroMaster/20260602/20260602130002-Binary.backup create mode 100644 MikroMaster/20260602/20260602130002-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602130002-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602130002-Binary.backup b/MikroMaster/20260602/20260602130002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..8e9cfedb21da7a65cc976db03ea9db8d958eae71 GIT binary patch literal 259459 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%0DYjRk+IS@U`LQgiHC|qNOv~Hyr*{} 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 z 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⋘Jl?lnzz(^8+~5d<^-B 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 z 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=all internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet 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 \ + 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 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:2 dhcp-options=clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"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=91.192.189.2,8.8.4.4 \ + verify-doh-cert=yes +/ip dns static +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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 comment=AMSTER name=amster.vados.ru 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.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 +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=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" 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 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" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + 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" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat 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 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 dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="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=no 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/20260602130002-Diff-Config.rsc b/MikroMaster/history/20260602/20260602130002-Diff-Config.rsc new file mode 100644 index 0000000..bac01ed --- /dev/null +++ b/MikroMaster/history/20260602/20260602130002-Diff-Config.rsc @@ -0,0 +1,83 @@ +23c23 +< # channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +--- +> # channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +2440c2440 +< add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ +2452c2452 +< add address=10.8.0.2 interface=WG network=10.8.0.1 +--- +> add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.1 +2518,2519c2518,2519 +< doh-max-server-connections=20 servers=91.192.189.2,8.8.4.4 \ +< verify-doh-cert=yes +--- +> doh-max-server-connections=20 mdns-repeat-ifaces="ether1 - Unet,WG" \ +> servers=8.8.8.8,91.192.189.2 verify-doh-cert=yes +3207c3207 +< "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ +--- +> "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ +3211c3211 +< "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ +--- +> "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ +3224,3225c3224,3225 +< new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +< src-address-list=NoWG +--- +> disabled=yes new-routing-mark=main passthrough=no src-address=\ +> 10.30.30.0/24 src-address-list=NoWG +3232,3234c3232,3234 +< 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=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 +3243a3244,3245 +> add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ +> !NoVdsina out-interface=WG src-address-list=!NoWG +3263,3264d3264 +< add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ +< out-interface=WG src-address-list=!NoWG +3362,3363c3362,3363 +< 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 +--- +> add check-gateway=none disabled=no distance=2 dst-address=0.0.0.0/0 gateway=\ +> 146.120.64.209 routing-table=main scope=30 target-scope=10 +3443c3443 +< y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ +--- +> y, name=CloudFlare-doh IPv4 1" disabled=no down-script="" host=1.1.1.1 \ +3447c3447 +< oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ +--- +> oudFlare-doh IPv4" disabled=no down-script="" host=1.0.0.1 http-codes="" \ +3449c3449 +< add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ +--- +> add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=no \ +3454c3454 +< -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ +--- +> -DOH IPv4" disabled=no dns-server=8.8.4.4 down-script="" host=dns.google \ +3457c3457 +< add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ +--- +> add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=no down-script="" \ +3461c3461,3464 +< -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ +--- +> -DOH IPv4" disabled=no 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=no down-script=\ +> "" host=91.192.189.2 http-codes="" interval=10s name=ns1.unet.ws \ +3463,3465d3465 +< 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="" -- 2.52.0