From 81e6df31c69efee021e75c6affdcb60541683a17 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 17:40:18 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 17:40:18. --- .../20260602/20260602174002-Binary.backup | Bin 0 -> 260007 bytes .../20260602/20260602174002-Config.rsc | 3466 +++++++++++++++++ .../20260602/20260602174002-Diff-Config.rsc | 17 + 3 files changed, 3483 insertions(+) create mode 100644 MikroMaster/20260602/20260602174002-Binary.backup create mode 100644 MikroMaster/20260602/20260602174002-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602174002-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602174002-Binary.backup b/MikroMaster/20260602/20260602174002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..c4434878cde2d2655310542e746484c62c8123cb GIT binary patch literal 260007 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

wU`|HjwVaV+Kk4t{Q86niz4 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


cG(;B`fDN8tX~Ri}jFM>Cvm^pI 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

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