From ffe82d71b8656d24cd6f3243151e1ddf18e0f92c Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 21 May 2026 02:40:35 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 21 02:40:35. --- .../20260521/20260521024002-Binary.backup | Bin 0 -> 251978 bytes .../20260521/20260521024002-Config.rsc | 3445 +++++++++++++++++ .../20260521/20260521024002-Diff-Config.rsc | 20 + 3 files changed, 3465 insertions(+) create mode 100644 MikroMaster/20260521/20260521024002-Binary.backup create mode 100644 MikroMaster/20260521/20260521024002-Config.rsc create mode 100644 MikroMaster/history/20260521/20260521024002-Diff-Config.rsc diff --git a/MikroMaster/20260521/20260521024002-Binary.backup b/MikroMaster/20260521/20260521024002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..1d59b15f946316ecb5e2117806fcea2f9b555d88 GIT binary patch literal 251978 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%0DmC7N$XR7*D@up{611iQ}9KXOLmU{S>ETl-opE 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�X=x0+Wo0*E6S(&gymTeIzS`$?ULb>z|f@i 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%0AG7`lklrph~plkKZVG=?0*w$*D=UY{% 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 T-8E)+^q9dC%^R7l3MI(3g4\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 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=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260521/20260521024002-Diff-Config.rsc b/MikroMaster/history/20260521/20260521024002-Diff-Config.rsc new file mode 100644 index 0000000..30e0e51 --- /dev/null +++ b/MikroMaster/history/20260521/20260521024002-Diff-Config.rsc @@ -0,0 +1,20 @@ +35c35 +< add listen-port=13231 mtu=1280 name=WG +--- +> add listen-port=13231 mtu=1420 name=WG +2451c2451 +< "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +--- +> "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +3225,3226c3225,3226 +< dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ +< 10.30.30.0/24 +--- +> disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ +> src-address=10.30.30.0/24 +3228,3229c3228,3229 +< "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ +< VPN_No_FastTrack +--- +> "Mark VPN connections to exclude from FastTrack" disabled=yes \ +> new-connection-mark=VPN_No_FastTrack -- 2.52.0