From 7a57c8812836dc5ef16a20547c3c1d8bd38b2575 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 1 Jun 2026 20:40:45 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 01 20:40:45. --- .../20260601/20260601204001-Binary.backup | Bin 0 -> 259375 bytes .../20260601/20260601204001-Config.rsc | 3466 +++++++++++++++++ .../20260601/20260601204001-Diff-Config.rsc | 21 + 3 files changed, 3487 insertions(+) create mode 100644 MikroMaster/20260601/20260601204001-Binary.backup create mode 100644 MikroMaster/20260601/20260601204001-Config.rsc create mode 100644 MikroMaster/history/20260601/20260601204001-Diff-Config.rsc diff --git a/MikroMaster/20260601/20260601204001-Binary.backup b/MikroMaster/20260601/20260601204001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..bab567475521a6014c6abeb3fcd8149090ea691c GIT binary patch literal 259375 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 z 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

X;!{A?(V0gX(iXAyg}&Z=7>@CI%O&&j>cDsXncC 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

@-V&Xs1Xs1B&=q!0A??w@xtJ~i)M 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 ge\"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=WAN 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 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept 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="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 VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 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" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=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 check-gateway="(unknown)" disabled=no distance=1 dst-address=0.0.0.0/0 \ + gateway=WG routing-table=To-VPN scope=30 target-scope=10 vrf-interface=WG +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 vrf-interface="ether1 - Unet" +/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 +/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 scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260601/20260601204001-Diff-Config.rsc b/MikroMaster/history/20260601/20260601204001-Diff-Config.rsc new file mode 100644 index 0000000..3a23786 --- /dev/null +++ b/MikroMaster/history/20260601/20260601204001-Diff-Config.rsc @@ -0,0 +1,21 @@ +2461,2464d2460 +< /ip cloud +< set ddns-enabled=yes +< /ip cloud advanced +< set use-local-address=yes +3365,3366c3361,3362 +< add check-gateway="(unknown)" disabled=no distance=1 dst-address=0.0.0.0/0 \ +< gateway=WG routing-table=To-VPN scope=30 target-scope=10 vrf-interface=WG +--- +> add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ +> To-VPN scope=30 target-scope=10 +3368c3364 +< routing-table=main scope=30 target-scope=10 vrf-interface="ether1 - Unet" +--- +> routing-table=main scope=30 target-scope=10 +3390,3391c3386,3387 +< 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="ether1 - Unet" type=external +> add disabled=yes forced-ip=89.110.101.17 interface=WG type=external -- 2.52.0