From 515b916083c19787161d8c7e0b0f97ee786445ae Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 26 May 2026 16:01:02 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 26 16:01:02. --- .../20260526/20260526160002-Binary.backup | Bin 0 -> 257766 bytes .../20260526/20260526160002-Config.rsc | 3461 +++++++++++++++++ .../20260526/20260526160002-Diff-Config.rsc | 10 + 3 files changed, 3471 insertions(+) create mode 100644 MikroMaster/20260526/20260526160002-Binary.backup create mode 100644 MikroMaster/20260526/20260526160002-Config.rsc create mode 100644 MikroMaster/history/20260526/20260526160002-Diff-Config.rsc diff --git a/MikroMaster/20260526/20260526160002-Binary.backup b/MikroMaster/20260526/20260526160002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..f869cee66b9b077b75e4584a54927856fb64093e GIT binary patch literal 257766 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
JuyeslcBO5XzZJ?aOOFO8YM}Md1bnC>1u*J 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/661/8d6d2114\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 25.05.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 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=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=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 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=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 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=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +/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 dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output 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-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=VPN_No_FastTrack 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-list=RKN-dnsLookup new-routing-mark=To-VPN 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-list=!Local-Net 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" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" 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" src-address=10.30.30.0/24 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes 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/20260526/20260526160002-Diff-Config.rsc b/MikroMaster/history/20260526/20260526160002-Diff-Config.rsc new file mode 100644 index 0000000..130d4d3 --- /dev/null +++ b/MikroMaster/history/20260526/20260526160002-Diff-Config.rsc @@ -0,0 +1,10 @@ +3130,3131d3129 +< add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +< add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +3337,3342d3334 +< 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 -- 2.52.0