From 105f8d24627f099237cc93dfab21c697ba65cc9c Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 20 May 2026 20:41:01 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 20 20:41:01. --- .../20260520/20260520204002-Binary.backup | Bin 0 -> 251989 bytes .../20260520/20260520204002-Config.rsc | 3445 +++++++++++++++++ .../20260520/20260520204002-Diff-Config.rsc | 8 + 3 files changed, 3453 insertions(+) create mode 100644 MikroMaster/20260520/20260520204002-Binary.backup create mode 100644 MikroMaster/20260520/20260520204002-Config.rsc create mode 100644 MikroMaster/history/20260520/20260520204002-Diff-Config.rsc diff --git a/MikroMaster/20260520/20260520204002-Binary.backup b/MikroMaster/20260520/20260520204002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..3c06bf931b01edc750354974d98f1bc5e4970452 GIT binary patch literal 251989 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%0Db?I$qDz0r~&0kOT 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%0AJ?F*|>N%P*v%1q!m>c$1WlsWq6Fn-TK@7 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 eAiKAx=t$;jtQ8o?`*Rxz3=vW@>jBdc?\"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,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 disabled=yes 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" 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=yes 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/20260520/20260520204002-Diff-Config.rsc b/MikroMaster/history/20260520/20260520204002-Diff-Config.rsc new file mode 100644 index 0000000..42cf2f3 --- /dev/null +++ b/MikroMaster/history/20260520/20260520204002-Diff-Config.rsc @@ -0,0 +1,8 @@ +2460c2460 +< add address=10.8.0.2/24 disabled=yes interface=WG network=10.8.0.0 +--- +> add address=10.8.0.2/24 interface=WG network=10.8.0.0 +3344c3344 +< add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ +--- +> add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ -- 2.52.0