From 4b5a6b59396bb080f17717812dff141dbc4ae7af Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 30 May 2026 19:00:36 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 30 19:00:36. --- .../20260530/20260530190002-Binary.backup | Bin 0 -> 259477 bytes .../20260530/20260530190002-Config.rsc | 3462 +++++++++++++++++ .../20260530/20260530190002-Diff-Config.rsc | 6 + 3 files changed, 3468 insertions(+) create mode 100644 MikroMaster/20260530/20260530190002-Binary.backup create mode 100644 MikroMaster/20260530/20260530190002-Config.rsc create mode 100644 MikroMaster/history/20260530/20260530190002-Diff-Config.rsc diff --git a/MikroMaster/20260530/20260530190002-Binary.backup b/MikroMaster/20260530/20260530190002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..9e5280e6f2abb02e239af92a5c01b29d33f7bceb GIT binary patch literal 259477 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 z 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

jN< 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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/663/fee06fc8\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 02:10:03 30.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=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add 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/20260530/20260530190002-Diff-Config.rsc b/MikroMaster/history/20260530/20260530190002-Diff-Config.rsc new file mode 100644 index 0000000..212fcf4 --- /dev/null +++ b/MikroMaster/history/20260530/20260530190002-Diff-Config.rsc @@ -0,0 +1,6 @@ +3228,3229c3228,3229 +< dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ +< 10.30.30.0/24 src-address-list=!NoWG +--- +> disabled=yes dst-address=!10.30.30.0/24 new-routing-mark=To-VPN \ +> src-address=10.30.30.0/24 src-address-list=!NoWG -- 2.52.0