From 8645b96269369afd07398333221d1963b58c3c7e Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 21 Apr 2026 19:00:08 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Apr 21 19:00:08. --- .../20260421/20260421190002-Binary.backup | Bin 0 -> 315902 bytes .../20260421/20260421190002-Config.rsc | 4536 +++++++++++++++++ .../20260421/20260421190002-Diff-Config.rsc | 7 + 3 files changed, 4543 insertions(+) create mode 100644 MikroMaster/20260421/20260421190002-Binary.backup create mode 100644 MikroMaster/20260421/20260421190002-Config.rsc create mode 100644 MikroMaster/history/20260421/20260421190002-Diff-Config.rsc diff --git a/MikroMaster/20260421/20260421190002-Binary.backup b/MikroMaster/20260421/20260421190002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..46e6faa27eb3caef28430f250311070765ea29f0 GIT binary patch literal 315902 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%0DiEzcuPse6PqjKJn*l7OLpwpQz3AL=s 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≠kTteXHlCekcTIZ+WgALQ{9 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 50) do={\r\ + \n # after 50 * 0.1s delays, it's been 5 seconds, which should \ + be long enough\r\ + \n :set errorMsg \"New folder could not be created at \$newFold\ + er\";\r\ + \n :log error \"mkdir: \$errorMsg\"\r\ + \n :error \$errorMsg\r\ + \n }\r\ + \n :delay 0.1s;\r\ + \n :set count (\$count + 1);\r\ + \n }\r\ + \n\r\ + \n :return \$newFolder;\r\ + \n}\r\ + \n\r\ + \n:log info \"Created function \\\$mkdir\"\r\ + \n" +add comment="Certificates CloudFlare, Quad9 " dont-require-permissions=no \ + name=CustomUpdate-Certificates owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_CloudFlare\r\ + \n/tool/fetch mode=https url=https://developers.cloudflare.com/ssl/static/\ + origin_ca_ecc_root.pem;\r\ + \n/tool/fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalRo\ + otCA.crt.pem;\r\ + \n/certificate/import file-name=DigiCertGlobalRootCA.crt.pem passphrase=\"\ + \";\r\ + \n/tool/ fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalG\ + 2TLSRSASHA2562020CA1-1.crt.pem;\r\ + \n/certificate/import file-name=DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt.\ + pem passphrase=\"\";\r\ + \n# Quad9\r\ + \n/tool/fetch mode=https url=\"https://cacerts.digicert.com/DigiCertGlobal\ + G3TLSECCSHA3842020CA1-1.crt.pem\"\r\ + \n/certificate/import file-name=DigiCertGlobalG3TLSECCSHA3842020CA1-1.crt.\ + pem passphrase=\"\";\r\ + \n\r\ + \n#:global AmScriptsUrl;\r\ + \n#google\r\ + \n#:local CertName \"GTS-Root-R1.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"GTS-Root-R4.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"GTS-Root-RX.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#internet\r\ + \n#:set CertName \"ISRG-Root-X1.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"ISRG-Root-X2.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"Starfield-Root-Certificate-Authority-G2.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n\r\ + \n#/ip/dns/set allow-remote-requests=yes doh-max-concurrent-queries=100 do\ + h-max-server-connections=20 use-doh-server=https://security.cloudflare-dns\ + .com/dns-query verify-doh-cert=yes;\r\ + \n#/ip/dns/static remove [find where address=1.1.1.1];\r\ + \n#/ip/dns/static add address=1.1.1.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 1\";\r\ + \n#/ip/dns/static remove [find where address=1.0.0.1];\r\ + \n#/ip/dns/static add address=1.0.0.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 2\"\r\ + \n#/ip dns static add address=2606:4700:4700::1111 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip dns static add address=2606:4700:4700::1001 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip/dns set servers=\"1.0.0.1, 8.8.4.4\";\r\ + \n#/ip/dns set servers=\"\";" +add dont-require-permissions=no name=script1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + tool/netwatch/add comment=\"doh-fallback, doh-url=https://security.cloudfl\ + are-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Clou\ + dFlare-doh IPv4 1\" host=1.1.1.1;\r\ + \n/tool/netwatch/add comment=\"doh, doh-url=https://security.cloudflare-dn\ + s.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=CloudFlare\ + -doh IPv4 2\" host=1.0.0.1;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.google/dns-query, doh-cert=DigiCert Global Root G2, notify, name=Goog\ + le-doh IPv4 1\" host=8.8.8.8;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.google/dns-query, doh-cert=DigiCert Global Root G2, notify, name=Goog\ + le-doh IPv4 2\" host=8.8.4.4;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.quad9.net/dns-query, doh-cert=DigiCert Global Root G3, notify, name=C\ + uad9-doh IPv4 1\" host=9.9.9.9;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.quad9.net/dns-query, doh-cert=DigiCert Global Root G3, notify, name=C\ + uad9-doh IPv4 2\" host=149.112.112.112;\r\ + \n\r\ + \n/tool/netwatch/add comment=\"dns, notify, name=ns1.unet.ws\" host=91.192\ + .189.2;" +add dont-require-permissions=no name=script2 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n\r\ + \n:global InspectVar;\r\ + \n#:global RouterBoard;\r\ + \n#:do {:set RouterBoard [[ :parse \"/system/routerboard/get\" ]]} on-erro\ + r={}\r\ + \n#:global Resources;\r\ + \n#:do {:set Resources [[ :parse \"/system/resource/get\" ]]} on-error={}\ + \r\ + \n\r\ + \n#:global Updates;\r\ + \n#:do {:set Updates [[ :parse \"/system/package/update/get\" ]]} on-error\ + ={}\r\ + \n\r\ + \n#:global PkgUpdStatus \"undefined\";\r\ + \n#:local Update [/system/package/update/get];\r\ + \n#:retry command={:set PkgUpdStatus (\$Update->\"status\")} delay=200ms m\ + ax=5 on-error={};\r\ + \n\r\ + \n#:log warning [\$InspectVar \$RouterBoard];\r\ + \n#:put [\$InspectVar \$RouterBoard];\r\ + \n\r\ + \n#:retry command={/system/package/update check-for-updates without-paging\ + \_as-value} delay=300ms max=5 on-error={};\r\ + \n\r\ + \n#:global arrDeviceInfo ({});\r\ + \n#:local arrDeviceInfo ({\"section\":{\"key\":\"\"; \"value\":\"\";};});\ + \r\ + \n#:set (\$arrDeviceInfo->\"RouterBoard\") [[ :parse \"/system/routerboard\ + /get\" ]];\r\ + \n#:retry command={:set (\$arrDeviceInfo->\"Updates\") [[ :parse \"/system\ + /package/update/get\" ]]} delay=500ms max=5 on-error={:log error (\"Error\ + \")};\r\ + \n# [:toarray {\"section\"={\"key\"=\"\"; \"value\"=\"\";} }];\r\ + \n# [:toarray \"\"];\r\ + \n:local arrDeviceInfo ({});\r\ + \n\r\ + \n:set (\$arrDeviceInfo->\"devUpdates\") {\"channel\"; \"stable\";};\r\ + \n#:do {:set (arrDeviceInfo->\"Updates\") [[ :parse \"/system/package/upda\ + te/get\" ]]} on-error={:log error (\$error)}\r\ + \n\$InspectVar \$arrDeviceInfo;\r\ + \n" +add dont-require-permissions=no name=AM-setup owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_RouterOS Setup Script: AM-setup\r\ + \n# \r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n\r\ + \n## Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:if ([ :len [ /system/script/find where name=\$ScriptName ]] = 0 ) do={\ + \r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# :global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n# /system/script/add name=\$ScriptName owner=\$ScriptName source=([ /too\ + l/fetch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptNa\ + me . \".rsc\") output=user as-value ]->\"data\");\r\ + \n#}\r\ + \n# For run from terminal:\r\ + \n# /system/script/add name=AM-setup owner=AM-Setup source=([ /tool/fetch \ + check-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" ou\ + tput=user as-value ]->\"data\");\r\ + \n#\r\ + \n# /system/script/set source=[ :tocrlf [ get \$ScriptName source ] ] \$Sc\ + riptName;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local RemoveThisScript false;\r\ + \n\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n{\r\ + \n :local ScriptName;\r\ + \n :local RemoveThisScript;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local AllDone;\r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$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=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n:log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :put \"Add Schedulers...\";\r\ + \n :delay 1;\r\ + \n :put \"Add Global scheduler...\";\r\ + \n :local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFu\ + nc; }\";\r\ + \n :local Comment \"Setup Global Environment for scripts\";\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] \ + ] = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-\ + event=\$OnEvent start-time=startup;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Commen\ + t) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEve\ + nt) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Add 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-ScriptInstallUpda\ + te\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Commen\ + t start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n }\r\ + \n\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n /system/script { run AM-GlobalConfig; run AM-GlobalFunc; };\r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :set AllDone true;\r\ + \n } on-error={\r\ + \n :set AllDone false;\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$ScriptName . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n\r\ + \n :delay 5s;\r\ + \n :if (\$AllDone = true && \$RemoveThisScript = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :set OnEvent \":delay 30s; /system/script/remove [ find where name=\$S\ + criptName ]; :delay5s; /system/scheduler/remove [ find where name=\\\"_Rem\ + oveSetup\\\" ];\";\r\ + \n :set Comment \"_RemoveSetup tmp scheduler for remove setup script.\";\ + \r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-ti\ + me=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$ScriptName . \"\\nI've done everything, and now I'm ti\ + red... I'm leaving. ))\\nThere will be an error below, this is normal.\");\ + \r\ + \n }\r\ + \n};\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n#:local Script AM-GlobalConfig;\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#/usb1/mikro_bak_rsa.pub\r\ + \n:local FetchFile AM-DOHCert.rsc\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \"[usb1]/scripts/\" . \$FetchFile);\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/247/016960a4\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 03:45:02 16.04.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\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 GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\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 ExitError;\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 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 WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\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 FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\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 LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n \$LogPrint debug \$0 (\"\\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if (\$CurrentChannel != \$updateChannel) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel (\$Update->\"channel\");\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$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 \$LogPrint debug \$0 (\"\\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([:len \$arrDeviceInfo] = 0) do={\r\ + \n :global arrDeviceInfo ({});\r\ + \n :local arrDeviceInfo ({\"section\":{\"key\":\"\"; \"value\":\"\";};}\ + );\r\ + \n }\r\ + \n # else={:local arrDeviceInfo ({})}\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [[ :parse \"/\ + system/package/update/get\" ]]} delay=500ms max=5 on-error={:log error (\"\ + Error\")};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentChannel\"; \$Cu\ + rrentChannel;};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentVersion\"; (\$U\ + pdate->\"installed-version\");};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devCurrentChannelVersion\ + \"; [/system/resource/get version];};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devUpdateChannel\"; [\$up\ + dateChannel];};\r\ + \n #:set (\$arrDeviceInfo->\"devUpdates\") {\"devUpdateVersion\"; (\$Up\ + date->\"latest-version\");};\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\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\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n\r\ + \n :global arrDeviceInfo [:toarray {\"section\"={\"key\"=\"\"; \"value\"\ + =\"\";} }];\r\ + \n #:do {:set (\$arrDeviceInfo->\"Updates\") [[ :parse \"/system/package\ + /update/get\" ]]} on-error={}\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devRbCurrentFw;\r\ + \n :global devRbUpgradeFw;\r\ + \n\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global ROsVerCurrent;\r\ + \n :global ROsChannelCurrent;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :global ParseCustom;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global devBuildTime;\r\ + \n :global GetPubIp;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Resource [/system/resource/get];\r\ + \n :set devBuildTime (\$Resource->\"build-time\");\r\ + \n :set runningChannelVersion (\$Resource->\"version\");\r\ + \n :set runningChannel [\$ParseCustom \$runningChannelVersion \"(\" \")\ + \" 1];\r\ + \n :set runningVersion [\$ParseCustom \$runningChannelVersion \" \"];\r\ + \n\r\ + \n :do {\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :local RouterBoard;\r\ + \n :do {:set RouterBoard [[ :parse \"/system/routerboard/get\" ]]} on\ + -error={}\r\ + \n :set devModel (\$RouterBoard->\"model\");\r\ + \n :set devRbRevision (\$RouterBoard->\"revision\");\r\ + \n :set devRbSerialNumber (\$RouterBoard->\"serial-number\");\r\ + \n #:set devRbCurrentFw (\$RouterBoard->\"current-firmware\");\r\ + \n #:set devRbUpgradeFw (\$RouterBoard->\"upgrade-firmware\");\r\ + \n :if (\$devCurArch = \"mipsbe\" || \$devCurArch = \"arm\") do={\r\ + \n :global devRunning [ /system/device-mode/get mode ];\r\ + \n } else={\r\ + \n :global devRunning [/system/device-mode/get running];}\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n\r\ + \n :set devRbRevision false;\r\ + \n :set devRbSerialNumber false;\r\ + \n# :set devRbCurrentFw false;\r\ + \n# :set devRbUpgradeFw false;\r\ + \n #:set devCurrentFw \$runningVersion;#:set devUpgradeFw \$ROsVerAvail\ + ;\r\ + \n :set devRunning [/system/device-mode/get running];\r\ + \n }\r\ + \n } on-error={\r\ + \n \$LogPrint error \$0 (\"Error in Function getDevice!\");\r\ + \n :return false;\r\ + \n }\r\ + \n:return true;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global WaitArrDeviceInfo;\r\ + \n # \$WaitDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devCurArch;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global PiblicIpAddress;\r\ + \n\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :local Return;\r\ + \n :local License [/system/license/get];\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n\r\ + \n :set Return ([ \$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:\" . \$devBoardName ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Arch:\" . \$devCurArch ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Model:\" \$devModel ] . \\\r\ + \n [ \$IfThenElse ([ :len \$devRbRevision ] > 0) \\\r\ + \n (\" \" . \$devRbRevision) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len \$devRbSerialNumber ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial:\" . \$devRbSerialNumber ] . \"\\n\"\ + ) ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License:\" (\"level \" . (\$License->\"nleve\ + l\")) ] . \"\\n\") ] . \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License:\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \"Running Channel\" \$runningChannel ] . \"\\n\" . \\\ + \r\ + \n [ \$FormatLine \" Installed:\" (\$Update->\"installed-version\") \ + ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :typeof (\$Update->\"latest-version\") ] != \"noth\ + ing\" && \\\r\ + \n \$Update->\"installed-version\" != \$Update->\"latest-version\")\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Update->\"latest-version\") ]\ + \_. \"\\n\") ] . \\\r\ + \n [ \$IfThenElse (\$RouterBoard->\"routerboard\" = true && \\\r\ + \n \$RouterBoard->\"current-firmware\" != \$RouterBoard->\"upgrade-\ + firmware\") \\\r\ + \n ([ \$FormatLine \" Firmware\" (\$RouterBoard->\"current-firmwar\ + e\") ] . \"\\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: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: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# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n :global LogPrint;\r\ + \n \r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n\r\ + \n# :retry command={abc} delay=1 max=2 on-error={:put \"got error\"} \r\ + \n :do {\r\ + \n \$LogPrint debug \$0 (\"Trying to detect public IP using default s\ + ervice: \" . \$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={\$LogPrint error [ :jobname ] (\"Fail\ + ed to detect public IP using default service: \" . \$Url . \".\")}\r\ + \n #:error \"Failed to detect public IP using default service: \$Url\ + .\"};\r\ + \n } on-error={\r\ + \n \$LogPrint error \$0 (\"Failed to detect public IP using default s\ + ervice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n \$LogPrint debug \$0 (\"Trying to detect public IP using fallback \ + service: \" . \$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={\$LogPrint error [ :jobname ] (\"Fai\ + led to detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :if (\$PubIpAddr = false) do={\r\ + \n :set PubIpAddr \"not-detected\";\r\ + \n } else={\r\ + \n :set PubIpAddr [ :pick \$PubIpAddr 0 15];\r\ + \n }\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 :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\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 \$LogPrint 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 \$LogPrint 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 \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint 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 \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\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 GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$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 \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' 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 :global LogPrint;\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 \$LogPrint 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 FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\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 (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\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 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 GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \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: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 :global LogPrint;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n \$LogPrint 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 MiniDateTimeStamp do={\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 :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\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={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {: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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\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 :global LogPrint;\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 \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint 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 \$LogPrint 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 \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint 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 \$LogPrint 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 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 [ :len\ + \_\$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 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 LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint 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 \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 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: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: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 LogPrint;\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 \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\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 \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', 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: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: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:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\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 \$LogPrint 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: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: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: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:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\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: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# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\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 #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\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 :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\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 \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\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 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={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\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 \"Setup Global Environment for scripts\";\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#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\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# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\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} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add comment="Import ssh keys for public key authentication" \ + dont-require-permissions=no name=AM-SshKeysImport owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-SshKeysImport\r\ + \n# Script comment: Import ssh keys for public key authentication\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n#\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global configs or functions not ready.\"); }; } del\ + ay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global SSHKeysImport;\r\ + \n:global SSHKeysImportFile;\r\ + \n\r\ + \n# import single key passed as string\r\ + \n:set SSHKeysImport do={ :onerror Err {\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local User [ :tostr \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n :if ([ :len \$Key ] = 0 || [ :len \$User ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Missing argument(s), please pass key and u\ + ser!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ :len [ /user/find where name=\$User ] ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"User '\" . \$User . \"' does not exist.\")\ + ;\r\ + \n :return false;\r\ + \n }\r\ + \n :local KeyVal ([ :deserialize \$Key delimiter=\" \" from=dsv options=d\ + sv.plain ]->0);\r\ + \n :if (!(\$KeyVal->0 = \"ssh-ed25519\" || \$KeyVal->0 = \"ssh-rsa\")) do\ + ={\r\ + \n \$LogPrint warning \$0 (\"SSH key of type '\" . \$KeyVal->0 . \"' is\ + \_not supported.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FingerPrintMD5 [ :convert from=base64 transform=md5 to=hex (\$K\ + eyVal->1) ];\r\ + \n :local RegEx (\"\\\\bmd5=\" . \$FingerPrintMD5 . \"\\\\b\");\r\ + \n :if ([ :len [ /user/ssh-keys/find where user=\$User \\\r\ + \n (key-owner~\$RegEx or info~\$RegEx) ] ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The ssh public key (MD5:\" . \$FingerPrint\ + MD5 . \\\r\ + \n \") is already available for user '\" . \$User . \"'.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$MkDir \"tmpfs/ssh-keys-import\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Creating directory 'tmpfs/ssh-keys-import'\ + \_failed!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileName (\"tmpfs/ssh-keys-import/key-\" . [ \$GetRandom20CharA\ + lNum 6 ] . \".pub\");\r\ + \n /file/add name=\$FileName contents=(\$Key . \", md5=\" . \$FingerPrint\ + MD5);\r\ + \n \$WaitForFile \$FileName;\r\ + \n :onerror Err {\r\ + \n /user/ssh-keys/import public-key-file=\$FileName user=\$User;\r\ + \n \$LogPrint info \$0 (\"Imported ssh public key (\" . \$KeyVal->2 . \ + \", \" . \$KeyVal->0 . \", \" . \\\r\ + \n \"MD5:\" . \$FingerPrintMD5 . \") for user '\" . \$User . \"'.\");\ + \r\ + \n \$RmDir \"tmpfs/ssh-keys-import\";\r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed importing key: \" . \$Err);\r\ + \n \$RmDir \"tmpfs/ssh-keys-import\";\r\ + \n :return false;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# import keys from a file\r\ + \n:set SSHKeysImportFile do={ :onerror Err {\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local User [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global FileExists;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global SSHKeysImport;\r\ + \n :if ([ :len \$FileName ] = 0 || [ :len \$User ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Missing argument(s), please pass file name\ + \_and user!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$FileExists \$FileName ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"File '\" . \$FileName . \"' does not exist\ + .\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Keys [ :tolf [ /file/get \$FileName contents ] ];\r\ + \n :foreach KeyVal in=[ :deserialize \$Keys delimiter=\" \" from=dsv opti\ + ons=dsv.plain ] do={\r\ + \n :local Continue false;\r\ + \n :if (\$KeyVal->0 = \"ssh-ed25519\" || \$KeyVal->0 = \"ssh-rsa\") do=\ + {\r\ + \n :if ([ \$SSHKeysImport (\$KeyVal->0 . \" \" . \$KeyVal->1 . \" \" \ + . \$KeyVal->2) \$User ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Failed importing key for user '\" . \$\ + User . \"'.\");\r\ + \n }\r\ + \n :set Continue true;\r\ + \n }\r\ + \n :if (\$Continue = false && \$KeyVal->0 = \"#\") do={\r\ + \n :set User [ \$EitherOr ([ \$ParseKeyValueStore (\$KeyVal->1) ]->\"\ + user\") \$User ];\r\ + \n :set Continue true;\r\ + \n }\r\ + \n :if (\$Continue = false && [ :len (\$KeyVal->0) ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"SSH key of type '\" . \$KeyVal->0 . \"' \ + is not supported.\");\r\ + \n }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Check for certificates validity" dont-require-permissions=no \ + name=AM-CheckCerts owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-CheckCerts\r\ + \n# Script comment: Check for certificates validity\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global CertRenewTime;\r\ + \n :global CertRenewUrl;\r\ + \n :global CertWarnTime;\r\ + \n :global Identity;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EscapeForRegEx;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global ScriptLock;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global UrlEncode;\r\ + \n# :global WaitFullyConnected;\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"System Scheduler for script: \" . \$ScriptName . \" is N\ + OT SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Renew Certificates\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n\r\ + \n :local CheckCertificatesDownloadImport do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local CertName [ :tostr \$2 ];\r\ + \n :local FetchName [ :tostr \$3 ];\r\ + \n\r\ + \n :global CertRenewUrl;\r\ + \n :global CertRenewPass;\r\ + \n\r\ + \n :global CertificateNameByCN;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global UrlEncode;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :foreach Type in={ \"p12\"; \"pem\" } do={\r\ + \n :local CertFileName ([ \$UrlEncode \$FetchName ] . \".\" . \$Type)\ + ;\r\ + \n \$LogPrint debug \$ScriptName (\"Trying type '\" . \$Type . \"' fo\ + r '\" . \$CertName . \\\r\ + \n \"' (file '\" . \$CertFileName . \"')...\");\r\ + \n\r\ + \n :do {\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] \ + }) \\\r\ + \n (\$CertRenewUrl . \$CertFileName) dst-path=\$CertFileName \ + as-value;\r\ + \n } do={\r\ + \n :if (!(\$Err ~ \"[Ss]tatus 404\")) do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching certificate: \" . \ + \$Err);\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n \$WaitForFile \$CertFileName; \r\ + \n\r\ + \n :local DecryptionFailed true;\r\ + \n :foreach I,PassPhrase in=\$CertRenewPass do={\r\ + \n :do {\r\ + \n \$LogPrint debug \$ScriptName (\"Trying \" . \$I . \". passp\ + hrase... \");\r\ + \n :local Result [ /certificate/import file-name=\$CertFileName\ + \_passphrase=\$PassPhrase as-value ];\r\ + \n :if (\$Result->\"decryption-failures\" = 0) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Success!\");\r\ + \n :set DecryptionFailed false;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n \$RmFile \$CertFileName;\r\ + \n\r\ + \n :if (\$DecryptionFailed = true) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Decryption failed for certi\ + ficate file '\" . \$CertFileName . \"'.\");\r\ + \n }\r\ + \n\r\ + \n :foreach CertInChain in=[ /certificate/find where common-name!=\ + \$CertName !private-key \\\r\ + \n name~(\"^\" . [ \$EscapeForRegEx \$CertFileName ] . \"_[0-9]\ + +\\\$\") \\\r\ + \n !(subject-alt-name~(\"(^|\\\\W)(DNS|IP):\" . [ \$EscapeForRe\ + gEx \$CertName ] . \"(\\\\W|\\\$)\")) \\\r\ + \n !(common-name=[]) ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$CertInChain common-\ + name ];\r\ + \n }\r\ + \n\r\ + \n :return true;\r\ + \n } on-error={\r\ + \n \$LogPrint debug \$ScriptName (\"Could not download certificate \ + file '\" . \$CertFileName . \"'.\");\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FormatInfo do={\r\ + \n :local Cert \$1;\r\ + \n\r\ + \n :global FormatLine;\r\ + \n :global FormatMultiLines;\r\ + \n :global IfThenElse;\r\ + \n\r\ + \n :local FormatExpire do={\r\ + \n :global CharacterReplace;\r\ + \n :return [ \$CharacterReplace [ \$CharacterReplace [ :tostr \$1 ] \ + \"w\" \"w \" ] \"d\" \"d \" ];\r\ + \n }\r\ + \n\r\ + \n :local FormatCertChain do={\r\ + \n :local Cert \$1;\r\ + \n\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n\r\ + \n :if ([ :typeof (\$CertVal->\"issuer\") ] = \"nothing\") do={\r\ + \n :return \"self-signed\";\r\ + \n }\r\ + \n\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=5 do={\r\ + \n :set Return (\$Return . [ \$ParseKeyValueStore (\$CertVal->\"iss\ + uer\") ]->\"CN\");\r\ + \n :if ([ :len [ /certificate/builtin/find where skid=(\$CertVal->\ + \"akid\") ] ] > 0) do={\r\ + \n :return \$Return;\r\ + \n }\r\ + \n :do {\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\ + \"akid\") ] ];\r\ + \n } on-error={\r\ + \n :return (\$Return . \" (possibly incomplete!)\");\r\ + \n }\r\ + \n :if ((\$CertVal->\"akid\") = \"\" || (\$CertVal->\"akid\") = (\$\ + CertVal->\"skid\")) do={\r\ + \n :return \$Return;\r\ + \n }\r\ + \n :set Return (\$Return . \" -> \");\r\ + \n }\r\ + \n :return (\$Return . \"...\");\r\ + \n }\r\ + \n\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Name\" (\$CertVal->\"name\") ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$CertVal->\"common-name\") ] > 0) ([ \$Fo\ + rmatLine \"CommonName\" (\$CertVal->\"common-name\") ] . \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$CertVal->\"subject-alt-name\") ] > 0) ([\ + \_\$FormatMultiLines \"SubjectAltNames\" (\$CertVal->\"subject-alt-name\")\ + \_] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \"Private key\" [ \$IfThenElse ((\$CertVal->\"priva\ + te-key\") = true) \"available\" \"missing\" ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \"Fingerprint\" (\$CertVal->\"fingerprint\") ] . \"\ + \\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$CertVal->\"ca\") ] > 0) [ \$FormatLine \ + \"Issuer\" (\$CertVal->\"ca\") ] [ \$FormatLine \"Issuer chain\" [ \$Forma\ + tCertChain \$Cert ] ] ] . \"\\n\" . \\\r\ + \n \"Validity:\\n\" . \\\r\ + \n [ \$FormatLine \" days\" (\$CertVal->\"days-valid\") ] . \"\\n\ + \" . \\\r\ + \n [ \$FormatLine \" from\" (\$CertVal->\"invalid-before\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" to\" (\$CertVal->\"invalid-after\") ] . \"\\n\ + \" . \\\r\ + \n [ \$FormatLine \" time left\" [ \$IfThenElse ((\$CertVal->\"exp\ + ired\") = true) \"expired\" [ \$FormatExpire (\$CertVal->\"expires-after\"\ + ) ] ] ]);\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n# \$WaitFullyConnected;\r\ + \n\r\ + \n :foreach Cert in=[ /certificate/find where !revoked !ca !scep-url expi\ + res-after<\$CertRenewTime ] do={\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n :local LastName;\r\ + \n :local FetchName;\r\ + \n\r\ + \n :do {\r\ + \n :if ([ :len \$CertRenewUrl ] = 0) do={\r\ + \n \$LogPrint info \$ScriptName (\"No CertRenewUrl given.\");\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Attempting to renew certificate '\ + \" . (\$CertVal->\"name\") . \"'.\");\r\ + \n\r\ + \n :local ImportSuccess false;\r\ + \n :if ([ :len (\$CertVal->\"common-name\") ] > 0) do={\r\ + \n :set LastName (\$CertVal->\"common-name\");\r\ + \n :set FetchName \$LastName;\r\ + \n :set ImportSuccess [ \$CheckCertificatesDownloadImport \$ScriptN\ + ame \$LastName \$FetchName ];\r\ + \n }\r\ + \n :foreach SAN in=(\$CertVal->\"subject-alt-name\") do={\r\ + \n :if (\$ImportSuccess = false) do={\r\ + \n :set LastName [ :pick \$SAN ([ :find \$SAN \":\" ] + 1) [ :len\ + \_\$SAN ] ];\r\ + \n :set FetchName \$LastName;\r\ + \n :set ImportSuccess [ \$CheckCertificatesDownloadImport \$Scrip\ + tName \$LastName \$FetchName ];\r\ + \n :if (\$ImportSuccess = false && [ :pick \$LastName 0 2 ] = \"*\ + .\") do={\r\ + \n :set FetchName (\"star.\" . [ :pick \$LastName 2 [ :len \$La\ + stName ] ]);\r\ + \n :set ImportSuccess [ \$CheckCertificatesDownloadImport \$Scr\ + iptName \$LastName \$FetchName ];\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$ImportSuccess = false) do={ :error false; }\r\ + \n\r\ + \n :if ([ :len (\$CertVal->\"fingerprint\") ] > 0 && \$CertVal->\"fin\ + gerprint\" != [ /certificate/get \$Cert fingerprint ]) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Certificate '\" . \$CertVal->\"\ + name\" . \"' was updated in place.\");\r\ + \n :set CertVal [ /certificate/get \$Cert ];\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Certificate '\" . \$CertVal->\"\ + name\" . \"' was not updated, but replaced.\");\r\ + \n\r\ + \n :local CertNew [ /certificate/find where name~(\"^\" . [ \$Escap\ + eForRegEx [ \$UrlEncode \$FetchName ] ] . \"\\\\.(p12|pem)_[0-9]+\\\$\") \ + \\\r\ + \n (common-name=(\$CertVal->\"common-name\") or subject-alt-name~\ + (\"(^|\\\\W)(DNS|IP):\" . [ \$EscapeForRegEx \$LastName ] . \"(\\\\W|\\\$)\ + \")) \\\r\ + \n fingerprint!=[ :tostr (\$CertVal->\"fingerprint\") ] ];\r\ + \n :local CertNewVal [ /certificate/get \$CertNew ];\r\ + \n\r\ + \n :if ((\$CertVal->\"expires-after\") > (\$CertNewVal->\"expires-a\ + fter\")) do={\r\ + \n /certificate/remove \$CertNew;\r\ + \n \$LogPrint warning \$ScriptName (\"Old certificate is newer th\ + an the new one. Aborting renew.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ((\$CertVal->\"private-key\") = true && (\$CertVal->\"privat\ + e-key\") != (\$CertNewVal->\"private-key\")) do={\r\ + \n /certificate/remove \$CertNew;\r\ + \n \$LogPrint warning \$ScriptName (\"Old certificate '\" . (\$Ce\ + rtVal->\"name\") . \"' has a private key, new certificate does not. Aborti\ + ng renew.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable ([ \$ParseKeyValueStore (\$CertNew\ + Val->\"issuer\") ]->\"CN\") \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"The certificate chain is no\ + t available!\");\r\ + \n }\r\ + \n\r\ + \n /ip/service/set certificate=(\$CertNewVal->\"name\") [ find wher\ + e certificate=(\$CertVal->\"name\") ];\r\ + \n\r\ + \n /ip/ipsec/identity/set certificate=(\$CertNewVal->\"name\") [ fi\ + nd where certificate=(\$CertVal->\"name\") ];\r\ + \n /ip/ipsec/identity/set remote-certificate=(\$CertNewVal->\"name\ + \") [ find where remote-certificate=(\$CertVal->\"name\") ];\r\ + \n\r\ + \n /ip/hotspot/profile/set ssl-certificate=(\$CertNewVal->\"name\")\ + \_[ find where ssl-certificate=(\$CertVal->\"name\") ];\r\ + \n\r\ + \n /certificate/remove \$Cert;\r\ + \n /certificate/set \$CertNew name=(\$CertVal->\"name\");\r\ + \n :set Cert \$CertNew;\r\ + \n :set CertVal [ /certificate/get \$CertNew ];\r\ + \n }\r\ + \n\r\ + \n \$SendNotification2 ({ origin=\$ScriptName; silent=true; \\\r\ + \n subject=([ \$SymbolForNotification \"lock-with-ink-pen\" ] . \"C\ + ertificate renewed: \" . (\$CertVal->\"name\")); \\\r\ + \n message=(\"A certificate on \" . \$Identity . \" has been renewe\ + d.\\n\\n\" . [ \$FormatInfo \$Cert ]) });\r\ + \n \$LogPrint info \$ScriptName (\"The certificate '\" . (\$CertVal->\ + \"name\") . \"' has been renewed.\");\r\ + \n } on-error={\r\ + \n \$LogPrint debug \$ScriptName (\"Could not renew certificate '\" .\ + \_(\$CertVal->\"name\") . \"'.\");\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach Cert in=[ /certificate/find where !revoked !scep-url !(expire\ + s-after=[]) \\\r\ + \n expires-after<\$CertWarnTime !(fingerprint=[]) ] do\ + ={\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n\r\ + \n :if ([ :len [ /certificate/scep-server/find where ca-cert=(\$CertVal\ + ->\"ca\") ] ] > 0) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Certificate '\" . (\$CertVal->\"n\ + ame\") . \"' is handled by SCEP, skipping.\");\r\ + \n } else={\r\ + \n :local State [ \$IfThenElse ((\$CertVal->\"expired\") = true) \"ex\ + pired\" \"is about to expire\" ];\r\ + \n\r\ + \n \$SendNotification2 ({ origin=\$ScriptName; \\\r\ + \n subject=([ \$SymbolForNotification \"lock-with-ink-pen,warning-s\ + ign\" ] . \"Certificate warning: \" . (\$CertVal->\"name\")); \\\r\ + \n message=(\"A certificate on \" . \$Identity . \" \" . \$State . \ + \".\\n\\n\" . [ \$FormatInfo \$Cert ]) });\r\ + \n \$LogPrint info \$ScriptName (\"The certificate '\" . (\$CertVal->\ + \"name\") . \"' \" . \$State . \\\r\ + \n \", it is invalid after \" . (\$CertVal->\"invalid-after\") . \ + \".\");\r\ + \n }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\ + \n# RouterOS script: AM-GlobalConfig\ + \n# Script comment: Global Config Script\ + \n# Copyright (c) 2007-2026 Vados \ + \n#\ + \n#\ + \n# Warning: Dont touch this line!\ + \n:global GlobalConfReady false;\ + \n#\ + \n#\ + \n# Global Url For Amster scripts to fetch\ + \n# most be defined in AM-Init-Script or AM-setup scripts\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\ + \n:global ScriptsUrlSuffix \"\";\ + \n:global CheckSumsVerify true;\ + \n\ + \n:global ScriptUpdatesCRLF true;\ + \n:global CommentsInScripts true;\ + \n\ + \n# Debug output:\ + \n:global PrintDebug true; #false;\ + \n\ + \n# Debug output for specific script:\ + \n:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\ + \n\ + \n# Debug logs\ + \n# Other actions (disk, email, remote or support) can be used as well.\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\ + \n#/system/logging/add topics=script,debug action=memory;\ + \n\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\ + \n:global Domain \"WORKGROUP\";\ + \n\ + \n:global EmailGeneralTo \"vados@vados.ru\";\ + \n#:global EmailGeneralCc \"\";\ + \n\ + \n# \$ScriptInstallUpdate mod/notification-telegram\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\ + \n# Use this to send notifications to a specific topic in group.\ + \n#:global TelegramThreadId \"30\";\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\ + \n# or user names. Groups allow to chat with devices simultaneously.\ + \n:global TelegramChatIdsTrusted {\ + \n \"454403445\"\ + \n \"-1003631309063\"\ + \n \"-5124482807\"\ + \n \"1087968824\";\ + \n};\ + \n# \"-5294757340\";\ + \n\ + \n:global TelegramChatGroups \"(all)\";\ + \n#:global TelegramChatGroups \"(all|home|office)\";\ + \n\ + \n:global NotificationFunctions {\ + \n \"email\"\ + \n \"telegram\";\ + \n};\ + \n# Toggle this to disable symbols in notifications.\ + \n:global NotificationsWithSymbols true;\ + \n:global TerminalColorOutput true;\ + \n\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\ + \n\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\ + \n:global updateChannel \"stable\";\ + \n\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\");\ + \n:global CertRenewTime 2w;\ + \n:global CertRenewPass {\ + \n \"\";\ + \n# \"v3ry-s3cr3t\";\ + \n# \"4n0th3r-s3cr3t\";\ + \n};\ + \n:global CertWarnTime 1w;\ + \n:global CertIssuedExportPass {\ + \n \"\";\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\ + \n};\ + \n\ + \n# Script BackupAndUpdate mode, possible values: backup,\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\ + \n# osnotify - Set `forceBackup` to always create backups on every run\ + \n:global DevInfoIncludeIP true;\ + \n:global BackupAndUpdateMode \"osnotify\"\ + \n\ + \n:global forceBackup true;\ + \n:global BackupPassword \"Peskar55\";\ + \n\ + \n# SFTP Backup Variables\ + \n:global BackupRandomDelay 0;\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\ + \n:global BackupUploadUser \$Identity;\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\ + \n\ + \n:global BackupSendBinary true;\ + \n:global BackupSendExport true;\ + \n:global BackupSendGlobalConfig true;\ + \n:global BackupSendScripts true;\ + \n\ + \n# Remove local file after uploading if no errors\ + \n:global BackupRmLocal true;\ + \n\ + \n# Local Backups Root Directory \ + \n:global BackupLocalRoot \"tmpfs\";\ + \n\ + \n# Encrypt Backup\ + \n:global BackupEncrypt true;\ + \n\ + \n# Sensitive information in Backups\ + \n:global BackupSens true;\ + \n\ + \n# User Export\ + \n:global BackupUser true;\ + \n\ + \n# License Export (not for CHR, will silently skip)\ + \n:global BackupLicense false;\ + \n\ + \n# SSH Keys\ + \n:global BackupSshKeys true;\ + \n\ + \n# Certificate Export\ + \n:global BackupCerts true;\ + \n\ + \n# Certificate Password\ + \n:global BackupCertsPasswd \"\";\ + \n\ + \n# User-Manager Export\ + \n:global BackupUserMan false;\ + \n\ + \n# The Dude Export\ + \n:global BackupDude false;\ + \n\ + \n# User Files to export, comma-separated string or array of strings\ + \n# User Files are not removed on backup\ + \n# Any directory paths will be removed (/ -> _) on remote file\ + \n# Nonpresent files are silently skipped\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\ + \n\ + \n# load functions and any custom scripts\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\ + \n#\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \n# :onerror Err {\ + \n# /system/script/run \$Script;\ + \n# } do={\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\ + \n# }\ + \n#}\ + \n#:log info \"\\ndevMode = \$devMode\";\ + \n#:log info \"\\ndevRunning = \$devRunning\";\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\ + \n :onerror Err {\ + \n /system/script/run \$Script;\ + \n } do={\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\ + \n }\ + \n}\ + \n\ + \n# signal we are ready\ + \n:set GlobalConfReady true;\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\ + \n" +add comment="Renew locally issued certificates" dont-require-permissions=no \ + name=AM-CertsRenew owner=AM-CertsRenew policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-CertsRenew\r\ + \n# Script comment: Renew locally issued certificates\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n#\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global CertIssuedExportPass;\r\ + \n\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global ScriptLock;\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"System Scheduler for script: \" . \$ScriptName . \" is N\ + OT SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Update Local Issued Certificates.\"\ + ;\r\ + \n#/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=st\ + artup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :foreach Cert in=[ /certificate/find where issued expires-after<3w ] d\ + o={\r\ + \n :local CertVal [ /certificate/get \$Cert ];\r\ + \n /certificate/issued-revoke \$Cert;\r\ + \n /certificate/set name=(\$CertVal->\"name\" . \"-revoked-\" . [ /syst\ + em/clock/get date ]) \$Cert;\r\ + \n /certificate/add name=(\$CertVal->\"name\") common-name=(\$CertVal->\ + \"common-name\") \\\r\ + \n key-usage=(\$CertVal->\"key-usage\") subject-alt-name=(\$CertVal\ + ->\"subject-alt-name\");\r\ + \n /certificate/sign (\$CertVal->\"name\") ca=(\$CertVal->\"ca\");\r\ + \n :if ([ :typeof (\$CertIssuedExportPass->(\$CertVal->\"common-name\")\ + ) ] = \"str\") do={\r\ + \n :if ([ \$MkDir \"cert-issued\" ] = true) do={\r\ + \n /certificate/export-certificate (\$CertVal->\"name\") type=pkcs1\ + 2 \\\r\ + \n file-name=(\"cert-issued/\" . \$CertVal->\"common-name\") \\\ + \r\ + \n export-passphrase=(\$CertIssuedExportPass->(\$CertVal->\"com\ + mon-name\"));\r\ + \n \$LogPrint info \$ScriptName (\"Issued a new certificate for '\"\ + \_. \$CertVal->\"common-name\" . \\\r\ + \n \"', exported to 'cert-issued/\" . \$CertVal->\"common-name\" \ + . \".p12'.\");\r\ + \n } else={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed creating directory, no\ + t exporting certificate.\");\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"Issued a new certificate for '\" .\ + \_\$CertVal->\"common-name\" . \"'.\");\r\ + \n }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \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" +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=gn master-configuration=\ + cfg-2ghz name-format=prefix-identity name-prefix=2ghz +add action=create-dynamic-enabled hw-supported-modes=ac master-configuration=\ + cfg-5ghz-ac name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled hw-supported-modes=an master-configuration=\ + cfg-5ghz-an name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch +/disk settings +set auto-media-interface=lo default-mount-point-template=usb1 +/ip smb +set comment=MikroVados domain=WORKGROUP enabled=yes interfaces=Bridge-LAN +/interface bridge port +add bridge=Bridge-LAN ingress-filtering=no interface=ether2 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN comment=LEN ingress-filtering=no interface=ether3 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN comment=NUC ingress-filtering=no interface=ether4 \ + internal-path-cost=10 path-cost=10 +add bridge=Bridge-LAN ingress-filtering=no interface=ether5 \ + internal-path-cost=10 path-cost=10 +/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 disable-ipv6=yes 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 comment=WAN interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface ovpn-server server +add auth=sha1,md5 mac-address=FE:82:A5:78:8E:84 name=ovpn-server1 +/interface wifi cap +set caps-man-addresses=10.30.30.10 certificate=request discovery-interfaces=\ + wlan1,wlan2 lock-to-caps-man=no slaves-static=no +/interface wifi capsman +set package-path="" require-peer-certificate=no upgrade-policy=none +/interface wifi provisioning +add action=create-dynamic-enabled disabled=no master-configuration=2G-N \ + name-format=2G-%I slave-configurations=2G-G supported-bands=\ + 2ghz-n,2ghz-g,2ghz-g +add action=create-dynamic-enabled disabled=no master-configuration=5G-AC \ + name-format=5G-%I supported-bands=5ghz-ac,5ghz-ac +/interface wireguard peers +add allowed-address=10.8.0.2/32,0.0.0.0/0 client-allowed-address=0.0.0.0/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=10s 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-18FD746E5814 discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/interface wireless sniffer +set file-name=24g +/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 add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main interface="ether1 - Unet" name="ether1 - Unet" \ + use-peer-dns=no +/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.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.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=1:20:72:a9:d3:34:36 dhcp-option=HostName \ + dhcp-option-set=MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP \ + use-src-mac=yes +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 +add address=10.30.30.86 dhcp-option=HostName dhcp-option-set=MikroYellow \ + mac-address=48:8F:5A:8E:1A:C2 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=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=git.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=ros.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.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=91.192.189.2 comment=Unet-DNS disabled=yes 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 +add address=2606:4700:4700::1111 disabled=yes name=\ + security.cloudflare-dns.com type=AAAA +add address=2606:4700:4700::1001 disabled=yes name=\ + security.cloudflare-dns.com type=AAAA +/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=10.30.30.100-255 list=KIDS +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 +add address=157.240.247.174 list=Instagram +add address=46.53.178.107 list=Instagram +add address=179.60.195.174 list=Instagram +add address=157.240.205.174 list=Instagram +add address=31.13.24.0/21 list=Instagram +add address=31.13.64.0/18 list=Instagram +add address=45.64.40.0/22 list=Instagram +add address=66.220.144.0/20 list=Instagram +add address=69.63.176.0/20 list=Instagram +add address=69.171.224.0/19 list=Instagram +add address=74.119.76.0/22 list=Instagram +add address=103.4.96.0/22 list=Instagram +add address=129.134.0.0/16 list=Instagram +add address=157.240.0.0/16 list=Instagram +add address=173.252.64.0/18 list=Instagram +add address=179.60.192.0/22 list=Instagram +add address=185.60.216.0/22 list=Instagram +add address=204.15.20.0/22 list=Instagram +add address=157.240.200.63 list=Instagram +add address=185.60.219.63 list=Instagram +add address=129.134.31.12 list=Instagram +add address=66.81.203.132 list=Instagram +add address=185.89.218.12 list=Instagram +add address=31.13.66.63 list=Instagram +add address=84.15.65.162 list=Instagram +add address=68.66.224.28 list=Instagram +add address=157.240.253.63 list=Instagram +add address=83.174.11.224 list=Instagram +add address=157.240.9.52 list=Instagram +add address=157.240.252.174 list=Instagram +add address=157.240.195.63 list=Instagram +add address=31.13.71.52 list=Instagram +add address=57.144.110.192 list=Instagram +add address=157.240.252.17 list=Instagram +add address=84.15.66.97 list=Instagram +add address=217.168.6.33 list=Instagram +add address=31.13.83.52 list=Instagram +add address=157.240.241.63 list=Instagram +add address=129.134.30.12 list=Instagram +add address=185.89.219.12 list=Instagram +add address=157.240.252.10 list=Instagram +add address=157.240.201.63 list=Instagram +add address=66.81.203.197 list=Instagram +add address=179.60.195.52 list=Instagram +add address=66.81.203.7 list=Instagram +add address=216.40.34.41 list=Instagram +add address=157.240.202.63 list=Instagram +add address=157.240.229.63 list=Instagram +add address=157.240.252.63 list=Instagram +add address=31.13.72.53 list=Instagram +add address=124.108.16.224 list=Instagram +add address=157.240.205.63 list=Instagram +add address=92.46.37.96 list=Instagram +add address=157.240.247.63 list=Instagram +add address=157.240.234.63 list=Instagram +add address=157.240.235.63 list=Instagram +add address=87.245.208.97 list=Instagram +add address=216.58.192.0/19 list=Instagram +add address=209.85.128.0/17 list=Instagram +add address=198.105.240.0/20 list=Instagram +add address=173.194.0.0/16 list=Instagram +add address=172.217.0.0/16 list=Instagram +add address=142.250.0.0/15 list=Instagram +add address=108.177.0.0/17 list=Instagram +add address=87.245.197.140 list=Instagram +add address=74.125.0.0/16 list=Instagram +add address=64.233.160.0/19 list=Instagram +add address=157.240.0.1 list=Instagram +add address=157.240.238.63 list=Instagram +add address=157.240.238.174 list=Instagram +add address=157.240.0.63 list=Instagram +add address=157.240.224.63 list=Instagram +add address=157.240.224.174 list=Instagram +add address=157.240.251.36 list=Instagram +add address=157.240.253.12 list=Instagram +add address=157.240.253.35 list=Instagram +add address=157.240.238.13 list=Instagram +add address=157.240.238.56 list=Instagram +add address=157.240.238.175 list=Instagram +add address=57.144.112.141 list=Instagram +add address=157.240.251.60 list=Instagram +add address=157.240.251.128 list=Instagram +add address=157.240.238.5 list=Instagram +add address=157.240.253.13 list=Instagram +add address=157.240.253.5 list=Instagram +add address=157.240.238.2 list=Instagram +add address=157.240.238.37 list=Instagram +add address=157.240.251.5 list=Instagram +add address=157.240.251.34 list=Instagram +add address=57.144.112.1 list=Instagram +add address=157.240.238.54 list=Instagram +add address=129.134.26.123 list=Instagram +add address=157.240.252.3 list=Instagram +add address=31.13.84.4 list=Instagram +add address=157.240.224.12 list=Instagram +add address=157.240.238.4 list=Instagram +add address=157.240.0.13 list=Instagram +add address=3.33.139.32 list=Instagram +add address=157.240.0.35 list=Instagram +add address=157.240.238.14 list=Instagram +add address=157.240.238.60 list=Instagram +add address=57.144.112.145 list=Instagram +add address=157.240.251.35 list=Instagram +add address=151.101.84.159 list=Twitter +add address=pbs.twimg.com list=Twitter +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 +add address=geoip.co list=NoVdsina +add address=x.com list=Twitter +add address=facebook.com list=facebook +add address=fbcd.net list=facebook +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=82.202.162.184 comment=comp-lenta.ru list=NoWG +add address=smtp.mail.me.com.akadns.net. comment=smtp.mail.me.com list=NoWG +add address=17.57.155.37 comment=smtp.mail.me.com.akadns.net list=NoWG +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=amster-nuc disabled=yes list=NoWG +add address=10.30.30.11 comment=MikroNUC list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! list=NoWG +add address=89.110.101.17 list=VPN-Server +add address=80.85.244.9 list=TRUSTED +add address=8.8.8.8 list=TRUSTED +add address=8.8.4.4 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=10.30.30.95 comment=NUC list=NoWG +add address=glb.tas02.cws-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.cws.update.microsoft.com list=windowsupdateslist +add address=glb.cwsapp.prod.dcat.dsp.trafficmanager.net. comment=\ + glb.tas01.cwsapp-prod.dcat.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas01.cwsapp-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas01.cwsapp.update.microsoft.com list=windowsupdateslist +add address=disc601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +/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="ether1 - Unet" protocol=\ + udp +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="ether1 - Unet" protocol=tcp +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="ether1 - Unet" 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="ether1 - Unet" protocol=\ + udp +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="ether1 - Unet" protocol=\ + udp src-address=!10.30.30.0/24 +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 in-interface=\ + Bridge-LAN in-interface-list=LAN protocol=udp +add action=accept chain=input comment="accept WireGuard" dst-port=13231 \ + in-interface="ether1 - Unet" protocol=udp src-address-list=VPN-Server +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=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +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 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" \ + ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + 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 disabled=yes +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" +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 +add action=fasttrack-connection chain=forward comment=\ + "FastTrack main traffic" connection-state=established,related disabled=\ + yes +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" in-interface=WG \ + log-prefix=Mark-VPN-FT new-connection-mark=VPN_No_FastTrack +add action=mark-routing chain=prerouting comment="Test sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=Instagram dst-address=\ + !10.30.30.0/24 dst-address-list=Instagram new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=Twitter dst-address=\ + !10.30.30.0/24 dst-address-list=Twitter new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=YouTube dst-address=\ + !10.30.30.0/24 dst-address-list=YouTube new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=facebook dst-address=\ + !10.30.30.0/24 dst-address-list=facebook new-routing-mark=To-VPN \ + 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 dst-address-list=!NoVdsina \ + log-prefix=VPN-all new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp tcp-flags=syn tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 dst-address-list=!NoVdsina log=yes log-prefix=VPN-Net \ + new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" ipsec-policy=\ + out,none out-interface="ether1 - Unet" routing-mark=!To-VPN +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + in-interface=Bridge-LAN log-prefix=WG-nat out-interface=WG routing-mark=\ + To-VPN +add action=dst-nat chain=dstnat comment=npm disabled=yes dst-port=81 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + dst-port=443 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat disabled=yes dst-port=80 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="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 +add action=dst-nat chain=dstnat dst-address=146.120.64.211 dst-port=32000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.95 \ + to-ports=32000 +add action=dst-nat chain=dstnat dst-address=146.120.64.211 dst-port=32000 \ + in-interface="ether1 - Unet" protocol=udp to-addresses=10.30.30.95 \ + to-ports=32000 +add action=dst-nat chain=dstnat dst-port=32000 protocol=tcp routing-mark=\ + To-VPN to-addresses=10.30.30.95 to-ports=32000 +add action=dst-nat chain=dstnat dst-port=32000 protocol=udp routing-mark=\ + To-VPN to-addresses=10.30.30.95 to-ports=32000 +/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=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=vk.com \ + content=vk.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=ok.ru content=\ + ok.ru +add action=add-dst-to-address-list address-list=Instagram \ + address-list-timeout=none-dynamic chain=prerouting comment=Instagram \ + content=instagram.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting comment=Twitter content=twimg.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting content=x.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting content=twitter.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting comment=YouTube content=youtube.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googleapis.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=ggpht.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=youtu.be +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=ytimg.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googlevideo.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=gstatic.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googleusercontent.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=me.com \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=icloud.com \ + content=icloud.com +add action=add-dst-to-address-list address-list=facebook \ + address-list-timeout=none-dynamic chain=prerouting comment=facebook \ + content=fbcd.net +add action=add-dst-to-address-list address-list=facebook \ + address-list-timeout=none-dynamic chain=prerouting content=facebook.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=comp-lenta.ru \ + content=comp-lenta.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + smtp.mail.me.com content=smtp.mail.me.com log=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gov.ru \ + content=gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + r78.fssp.gov.ru content=r78.fssp.gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=api.db-ip.com \ + content=api.db-ip.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + api.telegram.org content=api.telegram.org +/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 hotspot walled-garden +add server=*1 +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=yes 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 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 +set www-ssl 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 +/ipv6 firewall address-list +add address=::/128 comment="defconf: unspecified address" list=bad_ipv6 +add address=::1/128 comment="defconf: lo" list=bad_ipv6 +add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6 +add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6 +add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6 +add address=100::/64 comment="defconf: discard only " list=bad_ipv6 +add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6 +add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6 +add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6 +/ipv6 firewall filter +add action=add-src-to-address-list address-list=bad_ipv6 \ + address-list-timeout=none-dynamic chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked in-interface=WG in-interface-list=WAN \ + src-address-list="" +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=input comment="defconf: accept UDP traceroute" \ + dst-port=33434-33534 protocol=udp +add action=accept chain=input comment=\ + "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\ + udp src-address=fe80::/10 +add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \ + protocol=udp +add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=input comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=input comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +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 packets with bad src ipv6" src-address-list=bad_ipv6 +add action=drop chain=forward comment=\ + "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6 +add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \ + hop-limit=equal:1 protocol=icmpv6 +add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=forward comment="defconf: accept HIP" protocol=139 +add action=accept chain=forward comment="defconf: accept IKE" dst-port=\ + 500,4500 protocol=udp +add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=forward comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=forward comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +/ipv6 nd +set [ find default=yes ] advertise-dns=yes +/ppp secret +add local-address=192.168.60.1 name=vados remote-address=192.168.60.2 \ + service=l2tp +/routing bfd configuration +add disabled=no +/snmp +set contact=@AmsterNL enabled=yes engine-id-suffix=MikroMaster location=NL \ + src-address=10.30.30.81 trap-interfaces=Bridge-LAN,WG trap-target=\ + 10.30.30.10 +/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="Windows Update script" interval=2d5m name=WU-script-run-schedule \ + on-event=WU-add-to-list policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2014-02-11 start-time=00:00:00 +add comment="Backup Every Week" disabled=yes interval=1w name=BackupEveryWeek \ + on-event=BackupAndUpdate policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2025-07-07 start-time=03:41:27 +add comment="DoH Cache Flush" interval=1d name="DNS Cache Flush" on-event=\ + DNS_Flush_Cache policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2019-12-06 start-time=05:30:00 +add comment="Create mkdir function on startup" name=\ + create_mkdir_function_on_startup on-event=\ + "/system script run create_mkdir_function;" policy=read,write,policy,test \ + start-time=startup +add comment="Scheduler for Update Certificates CloudFlare Quad9" interval=1w \ + name="Update Certificates CloudFlare Quad9" on-event=\ + "/system/script { run Update-Certificates; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2025-11-28 start-time=05:45:40 +add comment="Scheduler for Amster-Backup-UpdateEmail" disabled=yes interval=\ + 1w name=Amster-Backup-UpdateEmail on-event=\ + "/system/script { run Amster-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-02-13 start-time=03:41:27 +add comment="Setup Global Environment for scripts" 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="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Renew Certificates" interval=1d name=\ + AM-CheckCerts on-event="/system/script/run AM-CheckCerts;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Auto-update Cloudflare Root CA for DoH" interval=2w name=\ + AM-DOHCert on-event="/import AM-DOHCert.rsc" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-04-15 start-time=03:00:00 +/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="" +/tool sniffer +set filter-interface=Bridge-LAN filter-src-ip-address=10.30.30.50/32 +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260421/20260421190002-Diff-Config.rsc b/MikroMaster/history/20260421/20260421190002-Diff-Config.rsc new file mode 100644 index 0000000..4d934d7 --- /dev/null +++ b/MikroMaster/history/20260421/20260421190002-Diff-Config.rsc @@ -0,0 +1,7 @@ +4195,4197c4195,4196 +< disabled=yes dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina \ +< log-prefix=VPN-all new-routing-mark=To-VPN src-address=10.30.30.0/24 \ +< src-address-list=!NoWG +--- +> dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina log-prefix=VPN-all \ +> new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG -- 2.52.0