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