From 41c74cdccd68858092c3c37c4e747c94b7ff44bd Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 8 Jun 2026 04:40:33 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 08 04:40:33. --- .../20260608/20260608044001-Binary.backup | Bin 0 -> 256460 bytes .../20260608/20260608044001-Config.rsc | 3403 +++++++++++++++++ .../20260608/20260608044001-Diff-Config.rsc | 33 + 3 files changed, 3436 insertions(+) create mode 100644 MikroMaster/20260608/20260608044001-Binary.backup create mode 100644 MikroMaster/20260608/20260608044001-Config.rsc create mode 100644 MikroMaster/history/20260608/20260608044001-Diff-Config.rsc diff --git a/MikroMaster/20260608/20260608044001-Binary.backup b/MikroMaster/20260608/20260608044001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..7939a7039b7685cd0fb0bc3dd1f0d28e678208b0 GIT binary patch literal 256460 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

n{^P0K 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.H?#ijk? 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 dp`kpwoGL$9okP<#7m;T7HB!f9_Ac=\"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/672/7cf8bc7a\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:35:04 06.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set accept-router-advertisements-on=LAN allow-fast-path=no disable-ipv6=yes \ + disable-link-local-address=yes forward=no max-neighbor-entries=8192 \ + multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main interface="ether1 - Unet" name=client1 \ + use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.4.4,8.8.8.8 +/ip dns adlist +add url=https://ros.vados.ru/dns/vados.ru.local +/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.81 comment=NS.vados.ru.local disabled=yes name=\ + ns.vados.ru.local type=A +add comment="DNS ns.vados.ru.local" disabled=yes match-subdomain=yes name=\ + vados.ru ns=ns.vados.ru.local type=NS +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" 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=amster 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=10.30.30.30 comment=miller disabled=yes list=NoWG +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp src-address=!10.30.30.0/24 +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp src-address=!10.30.30.0/24 +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +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="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=input dst-address=10.30.30.81 dst-port=53 \ + in-interface=Bridge-LAN protocol=tcp src-address=10.30.30.0/24 +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 in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + in-interface=Bridge-LAN protocol=tcp src-address=10.30.30.0/24 to-ports=\ + 53 +add action=redirect chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=udp src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps 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" disabled=yes \ + 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 disabled=yes 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" 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 comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=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 src-address-list=TRUSTED 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="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=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=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=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260608/20260608044001-Diff-Config.rsc b/MikroMaster/history/20260608/20260608044001-Diff-Config.rsc new file mode 100644 index 0000000..0742a37 --- /dev/null +++ b/MikroMaster/history/20260608/20260608044001-Diff-Config.rsc @@ -0,0 +1,33 @@ +58d57 +< add dns-servers=10.30.30.81 name=reg.vados.ru verify-doh-cert=no +2410a2410 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2412a2413 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2414a2416 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2416a2419 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2419a2423 +> # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2507c2511,2512 +< add url=https://ros.vados.ru/dns/vados.ru.local +--- +> add url=https://ros.vados.ru/fw-addr-lists.d/MikroMaster/Mikrotik +> add url=https://ros.vados.ru/fw-addr-lists.d/MikroMaster/FuckRKN +2512,2515d2516 +< add address=10.30.30.81 comment=NS.vados.ru.local disabled=yes name=\ +< ns.vados.ru.local type=A +< add comment="DNS ns.vados.ru.local" disabled=yes match-subdomain=yes name=\ +< vados.ru ns=ns.vados.ru.local type=NS +3174,3178c3175,3178 +< "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ +< in-interface=Bridge-LAN protocol=tcp src-address=10.30.30.0/24 to-ports=\ +< 53 +< add action=redirect chain=dstnat disabled=yes dst-port=53 in-interface=\ +< Bridge-LAN protocol=udp src-address=10.30.30.0/24 to-ports=53 +--- +> "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 in-interface=\ +> Bridge-LAN protocol=tcp src-address=10.30.30.0/24 to-ports=53 +> add action=redirect chain=dstnat dst-port=53 in-interface=Bridge-LAN \ +> protocol=udp src-address=10.30.30.0/24 to-ports=53 -- 2.52.0