From 0629807e23f3b1363670bf89d2c518b01606a982 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 21:20:14 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 21:20:14. --- .../20260602/20260602212002-Binary.backup | Bin 0 -> 259975 bytes .../20260602/20260602212002-Config.rsc | 3453 +++++++++++++++++ .../20260602/20260602212002-Diff-Config.rsc | 49 + 3 files changed, 3502 insertions(+) create mode 100644 MikroMaster/20260602/20260602212002-Binary.backup create mode 100644 MikroMaster/20260602/20260602212002-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602212002-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602212002-Binary.backup b/MikroMaster/20260602/20260602212002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..1b066baa2b57af2094aa07b4487c65000ac925e6 GIT binary patch literal 259975 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

ID_6JeO62s7Kb>*k{Kc@n2?|z1 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

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