From d83cfce5abc7061a53ad76d7a6d1f7e841e7278e Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 15 Apr 2026 14:43:30 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Apr 15 14:43:30. --- .../20260415/20260415144323-Binary.backup | Bin 0 -> 312147 bytes .../20260415/20260415144323-Config.rsc | 4524 +++++++++++++++++ .../20260415/20260415144323-Diff-Config.rsc | 4 + 3 files changed, 4528 insertions(+) create mode 100644 MikroMaster/20260415/20260415144323-Binary.backup create mode 100644 MikroMaster/20260415/20260415144323-Config.rsc create mode 100644 MikroMaster/history/20260415/20260415144323-Diff-Config.rsc diff --git a/MikroMaster/20260415/20260415144323-Binary.backup b/MikroMaster/20260415/20260415144323-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..fce00496dc847c7f72c9278d08f85a968229708c GIT binary patch literal 312147 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

|E!~Ru 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

`! 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

m#OQ_?M++S(kTAJAWs0cU)tG6;j+i= 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∓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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=Update-Certificates owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_CloudFlare\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 ch\ + eck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".rs\ + c\") output=user as-value ]->\"data\");\r\ + \n#/usb1/mikro_bak_rsa.pub" +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/226/e1cd7257\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 09:45:02 01.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="[tmpfs]" +/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 +/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" \ + 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 +/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/20260415/20260415144323-Diff-Config.rsc b/MikroMaster/history/20260415/20260415144323-Diff-Config.rsc new file mode 100644 index 0000000..ae5a26a --- /dev/null +++ b/MikroMaster/history/20260415/20260415144323-Diff-Config.rsc @@ -0,0 +1,4 @@ +4083c4083 +< add address=10.30.30.33 comment=amster-nuc disabled=yes list=NoWG +--- +> add address=10.30.30.33 comment=amster-nuc list=NoWG -- 2.52.0