From 555d32977ae2157b6e695892ff7ac6e8c76da9ae Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 3 Jun 2026 01:00:27 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 03 01:00:27. --- .../20260603/20260603010001-Binary.backup | Bin 0 -> 255322 bytes .../20260603/20260603010001-Config.rsc | 3419 +++++++++++++++++ .../20260603/20260603010001-Diff-Config.rsc | 71 + 3 files changed, 3490 insertions(+) create mode 100644 MikroMaster/20260603/20260603010001-Binary.backup create mode 100644 MikroMaster/20260603/20260603010001-Config.rsc create mode 100644 MikroMaster/history/20260603/20260603010001-Diff-Config.rsc diff --git a/MikroMaster/20260603/20260603010001-Binary.backup b/MikroMaster/20260603/20260603010001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..e9976d38b73066248337cb44d285a870b7d0ad9b GIT binary patch literal 255322 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

BqTv{&m#Y-7i2ju4vVeL%sw( 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 z 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.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 +/ip smb +set enabled=no interfaces=lo +/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 +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 multipath-hash-policy=l4 +/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="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=clientid_duid,clientid interface=\ + "ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +/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=1.1.1.1 verify-doh-cert=yes +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +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 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.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" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one 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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=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=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +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 disabled=yes +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid disabled=yes +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new disabled=yes in-interface="ether1 - Unet" \ + src-address-list=!VDSina +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 +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes 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=\ + "Mark Routing main for VDSina" disabled=yes 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=\ + "!!!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" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes 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" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes 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" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + 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=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="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 check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN 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 forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set 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 package update +set check-certificate=yes-without-crl +/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=no down-script="" host=1.1.1.1 \ + http-codes="" test-script=wg.vados.ru 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=no 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 certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" name="Cuad9-DOH IPv4" 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="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260603/20260603010001-Diff-Config.rsc b/MikroMaster/history/20260603/20260603010001-Diff-Config.rsc new file mode 100644 index 0000000..d08b7ba --- /dev/null +++ b/MikroMaster/history/20260603/20260603010001-Diff-Config.rsc @@ -0,0 +1,71 @@ +7c7 +< add name=Bridge-LAN port-cost-mode=short ra-guard=yes +--- +> add mtu=1500 name=Bridge-LAN port-cost-mode=short +10c10 +< loop-protect=off name="ether1 - Unet" rx-flow-control=auto \ +--- +> loop-protect=on mtu=1420 name="ether1 - Unet" rx-flow-control=auto \ +25c25 +< add listen-port=55982 mtu=1420 name=WG +--- +> add listen-port=28844 mtu=1420 name=WG +2404,2405d2403 +< /ip smb +< set enabled=no interfaces=lo +2412a2411 +> add bridge=Bridge-LAN disabled=yes interface="ether1 - Unet" +2414d2412 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2417d2414 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2420d2416 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2423d2418 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2426,2427c2421,2422 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +< set max-neighbor-entries=8192 multipath-hash-policy=l4 +--- +> set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ +> max-neighbor-entries=8192 +2429,2430c2424,2425 +< set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ +< LAN wan-interface-list=WAN +--- +> set detect-interface-list=dynamic internet-interface-list=Internet \ +> lan-interface-list=LAN wan-interface-list=WAN +2451,2453c2446 +< add add-default-route=special-classless default-route-distance=2 \ +< default-route-tables=main dhcp-options=clientid_duid,clientid interface=\ +< "ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +--- +> add interface="ether1 - Unet" name=client1 +2511c2504,2505 +< doh-max-server-connections=20 servers=1.1.1.1 verify-doh-cert=yes +--- +> doh-max-server-connections=20 mdns-repeat-ifaces="ether1 - Unet" servers=\ +> 91.192.189.2 verify-doh-cert=yes +2530c2524 +< add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ +--- +> add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ +2532c2526 +< add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ +--- +> add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ +2538c2532,2533 +< add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +--- +> add address=195.133.25.16 comment="DNS Comss" disabled=yes name=dns.comss.one \ +> type=A +3395,3396c3390,3391 +< y, name=CloudFlare-doh IPv4 1" disabled=no down-script="" host=1.1.1.1 \ +< http-codes="" test-script=wg.vados.ru type=simple up-script="" +--- +> y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ +> http-codes="" test-script="" type=simple up-script="" +3399c3394 +< oudFlare-doh IPv4" disabled=no down-script="" host=1.0.0.1 http-codes="" \ +--- +> oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ -- 2.52.0