From aa1f9de2c75b00701d755fa229040831999d4f5a Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 15 May 2026 16:20:26 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 15 16:20:26. --- .../20260515/20260515162001-Binary.backup | Bin 0 -> 242255 bytes .../20260515/20260515162001-Config.rsc | 3407 +++++++++++++++++ .../20260515/20260515162001-Diff-Config.rsc | 14 + 3 files changed, 3421 insertions(+) create mode 100644 MikroMaster/20260515/20260515162001-Binary.backup create mode 100644 MikroMaster/20260515/20260515162001-Config.rsc create mode 100644 MikroMaster/history/20260515/20260515162001-Diff-Config.rsc diff --git a/MikroMaster/20260515/20260515162001-Binary.backup b/MikroMaster/20260515/20260515162001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..2399a43aeba1b209b75bd2389024d18b280bf1e4 GIT binary patch literal 242255 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/657/b0bd77b1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:15:02 15.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 +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 +/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 interface="ether1 - Unet" list=WAN +/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=10s 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.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=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=172.66.0.227 comment=x.com list=RKN-dnsLookup +add address=162.159.140.229 comment=twitter.com list=RKN-dnsLookup +add address=64.233.164.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.164.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.164.91 comment=youtube.com list=RKN-dnsLookup +add address=64.233.164.93 comment=youtube.com list=RKN-dnsLookup +add address=108.177.14.105 comment=googleapis.com list=RKN-dnsLookup +add address=108.177.14.103 comment=googleapis.com list=RKN-dnsLookup +add address=108.177.14.99 comment=googleapis.com list=RKN-dnsLookup +add address=108.177.14.104 comment=googleapis.com list=RKN-dnsLookup +add address=108.177.14.147 comment=googleapis.com list=RKN-dnsLookup +add address=108.177.14.106 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=64.233.164.105 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.106 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.147 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.103 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.162.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.162.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + 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-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address-list=VDSina new-routing-mark=\ + main passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address-list=NoVdsina \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" in-interface=WG \ + new-connection-mark=VPN_No_FastTrack routing-mark=To-VPN +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" \ + dst-address-list=!Local-Net log-prefix=VPN-all new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 +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=WG dst-address-list=!NoVdsina \ + log-prefix=WG-nat out-interface=WG +add action=masquerade chain=srcnat comment="masquerade Default" ipsec-policy=\ + out,none out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + in-interface="ether1 - Unet" log-prefix=2Amster protocol=tcp \ + routing-mark=!To-VPN to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=81 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp routing-mark=\ + !To-VPN to-addresses=10.30.30.33 to-ports=80 +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 +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com +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 +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 +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 +/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 +/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" 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/20260515/20260515162001-Diff-Config.rsc b/MikroMaster/history/20260515/20260515162001-Diff-Config.rsc new file mode 100644 index 0000000..0df215b --- /dev/null +++ b/MikroMaster/history/20260515/20260515162001-Diff-Config.rsc @@ -0,0 +1,14 @@ +30c30 +< add listen-port=13231 mtu=1420 name=WG +--- +> add listen-port=13231 mtu=1280 name=WG +3069d3068 +< add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +3070a3070 +> add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +3177,3178c3177,3178 +< connection-state=new in-interface="ether1 - Unet" src-address-list=\ +< !VDSina +--- +> connection-state=new in-interface="ether1 - Unet" log=yes log-prefix=\ +> Filter23 src-address-list=!VDSina -- 2.52.0