From 0c84fe9a6b46181af0c8c1ffc601ddccae1e86c3 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 18:00:18 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 18:00:18. --- .../20260602/20260602180002-Binary.backup | Bin 0 -> 259983 bytes .../20260602/20260602180002-Config.rsc | 3467 +++++++++++++++++ .../20260602/20260602180002-Diff-Config.rsc | 15 + 3 files changed, 3482 insertions(+) create mode 100644 MikroMaster/20260602/20260602180002-Binary.backup create mode 100644 MikroMaster/20260602/20260602180002-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602180002-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602180002-Binary.backup b/MikroMaster/20260602/20260602180002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..41f6b0f4a7a77d2ad26a03fcbd1e30c913fe3a26 GIT binary patch literal 259983 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⁡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 z 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 QdY1sq0k}R5a9%v!OMg>QN&o-= literal 0 HcmV?d00001 diff --git a/MikroMaster/20260602/20260602180002-Config.rsc b/MikroMaster/20260602/20260602180002-Config.rsc new file mode 100644 index 0000000..b9a0d9b --- /dev/null +++ b/MikroMaster/20260602/20260602180002-Config.rsc @@ -0,0 +1,3467 @@ +# 2026-06-02 18:00:03 by RouterOS 7.23 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface wireless +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1280 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.1 +/ip cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + dhcp-options=hostname interface="ether1 - Unet" name=client1 \ + use-broadcast=never use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,1.1.1.1 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS disabled=yes 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=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" disabled=yes dst-port=123 \ + protocol=udp src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ + src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set ip-version=ipv4 mode=http +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" name="Cuad9-DOH IPv4" test-script="" type=\ + simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260602/20260602180002-Diff-Config.rsc b/MikroMaster/history/20260602/20260602180002-Diff-Config.rsc new file mode 100644 index 0000000..7876a92 --- /dev/null +++ b/MikroMaster/history/20260602/20260602180002-Diff-Config.rsc @@ -0,0 +1,15 @@ +2459,2460c2459,2460 +< dhcp-options=hostname interface="ether1 - Unet" name=client1 \ +< use-broadcast=never use-peer-dns=no use-peer-ntp=no +--- +> default-route-tables=main:2 dhcp-options=clientid,clientid_duid \ +> interface="ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +2519a2520 +> add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +2551,2552d2551 +< add address=91.192.189.2 comment=Unet-DNS disabled=yes name=ns1.unet.ws type=\ +< A +3360c3359 +< add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ +--- +> add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ -- 2.52.0