From 467652f9ce456f7bc3dda32c23fc7128949eab7d Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 23 May 2026 04:40:42 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 23 04:40:42. --- .../20260523/20260523044002-Binary.backup | Bin 0 -> 254582 bytes .../20260523/20260523044002-Config.rsc | 3453 +++++++++++++++++ .../20260523/20260523044002-Diff-Config.rsc | 21 + 3 files changed, 3474 insertions(+) create mode 100644 MikroMaster/20260523/20260523044002-Binary.backup create mode 100644 MikroMaster/20260523/20260523044002-Config.rsc create mode 100644 MikroMaster/history/20260523/20260523044002-Diff-Config.rsc diff --git a/MikroMaster/20260523/20260523044002-Binary.backup b/MikroMaster/20260523/20260523044002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..329f1f9f40544cf2219069f3fc354c2dce87df36 GIT binary patch literal 254582 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 GQ#wc@UioG7_yHtpYyF~o~%2_U9 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

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