From 3041cc6757266eb4ab85cfcdf078de1839718e51 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sun, 31 May 2026 03:20:40 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 31 03:20:40. --- .../20260531/20260531032003-Binary.backup | Bin 0 -> 259191 bytes .../20260531/20260531032003-Config.rsc | 3462 +++++++++++++++++ .../20260531/20260531032003-Diff-Config.rsc | 4 + 3 files changed, 3466 insertions(+) create mode 100644 MikroMaster/20260531/20260531032003-Binary.backup create mode 100644 MikroMaster/20260531/20260531032003-Config.rsc create mode 100644 MikroMaster/history/20260531/20260531032003-Diff-Config.rsc diff --git a/MikroMaster/20260531/20260531032003-Binary.backup b/MikroMaster/20260531/20260531032003-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..ca7e492f9d9101c77b531c4c1b87f385dc697748 GIT binary patch literal 259191 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

kF>=5hQ7jKM&`9;WT%F4ZX4E$m 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

jzcL-dWHaDS1AB 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

1je$6Xbs>?52hf=b>&>ouLcl#XOC~IIK)# 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

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