From 42862117056c51af0369cb8aa82c08932440a8e1 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 3 Jun 2026 01:20:38 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 03 01:20:38. --- .../20260603/20260603012002-Binary.backup | Bin 0 -> 255433 bytes .../20260603/20260603012002-Config.rsc | 3423 +++++++++++++++++ .../20260603/20260603012002-Diff-Config.rsc | 34 + 3 files changed, 3457 insertions(+) create mode 100644 MikroMaster/20260603/20260603012002-Binary.backup create mode 100644 MikroMaster/20260603/20260603012002-Config.rsc create mode 100644 MikroMaster/history/20260603/20260603012002-Diff-Config.rsc diff --git a/MikroMaster/20260603/20260603012002-Binary.backup b/MikroMaster/20260603/20260603012002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..23812a9d5be20d9d8c3bca516f4b67a5cd000c9a GIT binary patch literal 255433 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

?xHJJ2^T|rMatJFH=@0h=e62V#D=yzI;bx*V{ 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260603/20260603012002-Config.rsc b/MikroMaster/20260603/20260603012002-Config.rsc new file mode 100644 index 0000000..2df1e29 --- /dev/null +++ b/MikroMaster/20260603/20260603012002-Config.rsc @@ -0,0 +1,3423 @@ +# 2026-06-03 01:20:03 by RouterOS 7.23 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add name=Bridge-LAN port-cost-mode=short ra-guard=yes +/interface ethernet +set [ find default-name=ether1 ] arp=proxy-arp comment="WAN - Unet" \ + loop-protect=off name="ether1 - Unet" rx-flow-control=auto \ + tx-flow-control=auto +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 +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=55982 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys 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 +/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 +/ip smb +set enabled=no interfaces=lo +/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 +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 multipath-hash-policy=l4 +/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="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=clientid_duid,clientid 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 mdns-repeat-ifaces=Bridge-LAN \ + use-doh-server=https://security.cloudflare-dns.com/dns-query \ + verify-doh-cert=yes +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru 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 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.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" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=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=output disabled=yes protocol=tcp src-port=443 +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 disabled=yes +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid disabled=yes +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new disabled=yes in-interface="ether1 - Unet" \ + src-address-list=!VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/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" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes 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" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" 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" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + 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" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="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 check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN 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 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set 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 check-certificate=yes-without-crl +/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=no down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add certificate=DigiCert-Global-Root-CA check-certificate=yes comment="doh-fal\ + lback, doh-url=https://security.cloudflare-dns.com/dns-query, doh-cert=Dig\ + iCert Global Root CA, notify, name=CloudFlare-doh IPv4" disabled=no \ + down-script="" host=1.0.0.1 http-codes="" interval=10s name=\ + "CloudFlare-doh IPv4" port=443 src-address=146.120.64.211 test-script="" \ + type=https-get up-script="" +add comment="dns, 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-fallback, notify, name=Cuad9-DOH IPv4" disabled=no \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns 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/20260603/20260603012002-Diff-Config.rsc b/MikroMaster/history/20260603/20260603012002-Diff-Config.rsc new file mode 100644 index 0000000..516c1ee --- /dev/null +++ b/MikroMaster/history/20260603/20260603012002-Diff-Config.rsc @@ -0,0 +1,34 @@ +2511,2513c2511 +< doh-max-server-connections=20 mdns-repeat-ifaces=Bridge-LAN \ +< use-doh-server=https://security.cloudflare-dns.com/dns-query \ +< verify-doh-cert=yes +--- +> doh-max-server-connections=20 servers=1.1.1.1 verify-doh-cert=yes +3398,3406c3396,3403 +< http-codes="" test-script="" type=simple up-script="" +< add certificate=DigiCert-Global-Root-CA check-certificate=yes comment="doh-fal\ +< lback, doh-url=https://security.cloudflare-dns.com/dns-query, doh-cert=Dig\ +< iCert Global Root CA, notify, name=CloudFlare-doh IPv4" disabled=no \ +< down-script="" host=1.0.0.1 http-codes="" interval=10s name=\ +< "CloudFlare-doh IPv4" port=443 src-address=146.120.64.211 test-script="" \ +< type=https-get up-script="" +< add comment="dns, notify, name=Google-DNS IPv4" disabled=yes down-script="" \ +< host=8.8.8.8 http-codes="" test-script="" type=simple up-script="" +--- +> http-codes="" test-script=wg.vados.ru 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=no 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="" +3412,3415c3409,3411 +< add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=no \ +< dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ +< interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ +< test-script="" timeout=800ms 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="" -- 2.52.0