From ee4503322d80c934129b8fe01ee3aedf6a45ebfb Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 27 May 2026 23:40:19 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 27 23:40:19. --- .../20260527/20260527234002-Binary.backup | Bin 0 -> 259483 bytes .../20260527/20260527234002-Config.rsc | 3462 +++++++++++++++++ .../20260527/20260527234002-Diff-Config.rsc | 4 + 3 files changed, 3466 insertions(+) create mode 100644 MikroMaster/20260527/20260527234002-Binary.backup create mode 100644 MikroMaster/20260527/20260527234002-Config.rsc create mode 100644 MikroMaster/history/20260527/20260527234002-Diff-Config.rsc diff --git a/MikroMaster/20260527/20260527234002-Binary.backup b/MikroMaster/20260527/20260527234002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..e604e84fb1fb8d4066a1f4030f0fc7711093bd08 GIT binary patch literal 259483 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 z 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/661/8d6d2114\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 25.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260527/20260527234002-Diff-Config.rsc b/MikroMaster/history/20260527/20260527234002-Diff-Config.rsc new file mode 100644 index 0000000..cdba2f7 --- /dev/null +++ b/MikroMaster/history/20260527/20260527234002-Diff-Config.rsc @@ -0,0 +1,4 @@ +35c35 +< add listen-port=13231 mtu=1420 name=WG +--- +> add listen-port=13231 mtu=1280 name=WG -- 2.52.0