From 8107474518dc4792755a5863093b001d74109b1a Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 20 May 2026 19:20:49 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 20 19:20:49. --- .../20260520/20260520192002-Binary.backup | Bin 0 -> 251985 bytes .../20260520/20260520192002-Config.rsc | 3445 +++++++++++++++++ .../20260520/20260520192002-Diff-Config.rsc | 6 + 3 files changed, 3451 insertions(+) create mode 100644 MikroMaster/20260520/20260520192002-Binary.backup create mode 100644 MikroMaster/20260520/20260520192002-Config.rsc create mode 100644 MikroMaster/history/20260520/20260520192002-Diff-Config.rsc diff --git a/MikroMaster/20260520/20260520192002-Binary.backup b/MikroMaster/20260520/20260520192002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..864a79d3c30220edfeedcfc181b95750d8faa675 GIT binary patch literal 251985 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

6TZdp;OLmij&Ih_ctrK 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 J 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 ay3T`mS6\"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/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.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,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/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 +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output 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-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=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=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +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 +/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/20260520/20260520192002-Diff-Config.rsc b/MikroMaster/history/20260520/20260520192002-Diff-Config.rsc new file mode 100644 index 0000000..315a320 --- /dev/null +++ b/MikroMaster/history/20260520/20260520192002-Diff-Config.rsc @@ -0,0 +1,6 @@ +3225,3226c3225,3226 +< disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ +< src-address=10.30.30.0/24 +--- +> dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ +> 10.30.30.0/24 -- 2.52.0