From 776f7b3543a94fa0909afda8a3979ded59594a65 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 02:00:14 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 02:00:14. --- .../20260602/20260602020002-Binary.backup | Bin 0 -> 259447 bytes .../20260602/20260602020002-Config.rsc | 3467 +++++++++++++++++ .../20260602/20260602020002-Diff-Config.rsc | 4 + 3 files changed, 3471 insertions(+) create mode 100644 MikroMaster/20260602/20260602020002-Binary.backup create mode 100644 MikroMaster/20260602/20260602020002-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602020002-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602020002-Binary.backup b/MikroMaster/20260602/20260602020002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..d86e6c26871b062404c995eed30a51660a4a129e GIT binary patch literal 259447 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

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