From 118b54e3482fc7504ff23fda744cdceab05367b6 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 28 May 2026 09:40:41 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 28 09:40:41. --- .../20260528/20260528094001-Binary.backup | Bin 0 -> 259483 bytes .../20260528/20260528094001-Config.rsc | 3462 +++++++++++++++++ .../20260528/20260528094001-Diff-Config.rsc | 4 + 3 files changed, 3466 insertions(+) create mode 100644 MikroMaster/20260528/20260528094001-Binary.backup create mode 100644 MikroMaster/20260528/20260528094001-Config.rsc create mode 100644 MikroMaster/history/20260528/20260528094001-Diff-Config.rsc diff --git a/MikroMaster/20260528/20260528094001-Binary.backup b/MikroMaster/20260528/20260528094001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..93e2580c0eeb26410a347af5d4d98bf911fd1b3b GIT binary patch literal 259483 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 Izo4uMwoE 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
  • Ro!6|Ia#b_(0S90Xld%3n25N!qbhp!6t$IZ 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

    M8Vpq6bu`Vu_JOj@rOLXvvs9fq>r$ZF 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 z\"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/20260528/20260528094001-Diff-Config.rsc b/MikroMaster/history/20260528/20260528094001-Diff-Config.rsc new file mode 100644 index 0000000..e061098 --- /dev/null +++ b/MikroMaster/history/20260528/20260528094001-Diff-Config.rsc @@ -0,0 +1,4 @@ +27c27 +< # channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +--- +> # channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding -- 2.52.0