From 21f80ff2f0e6afb5925440f35d06e3ea70d37902 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sun, 17 May 2026 04:21:32 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 17 04:21:32. --- .../20260517/20260517042002-Binary.backup | Bin 0 -> 248499 bytes .../20260517/20260517042002-Config.rsc | 3439 +++++++++++++++++ .../20260517/20260517042002-Diff-Config.rsc | 6 + 3 files changed, 3445 insertions(+) create mode 100644 MikroMaster/20260517/20260517042002-Binary.backup create mode 100644 MikroMaster/20260517/20260517042002-Config.rsc create mode 100644 MikroMaster/history/20260517/20260517042002-Diff-Config.rsc diff --git a/MikroMaster/20260517/20260517042002-Binary.backup b/MikroMaster/20260517/20260517042002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..a5b19719e58665f556373d8a44f0e6bb2b07726c GIT binary patch literal 248499 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%0DV^VCyRmW2o(il9zASFLor%ZDFC~? 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

4-Z4*70+a0RS3d?1z> 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

0*k2| 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⪻m1T;UP7n!zL>Gn!o7Z|G! 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 Y2Q|#8zFd}~L}2h-pIH2|{>r{M1yveyPXGV_ literal 0 HcmV?d00001 diff --git a/MikroMaster/20260517/20260517042002-Config.rsc b/MikroMaster/20260517/20260517042002-Config.rsc new file mode 100644 index 0000000..ab59cc0 --- /dev/null +++ b/MikroMaster/20260517/20260517042002-Config.rsc @@ -0,0 +1,3439 @@ +# 2026-05-17 04:20:04 by RouterOS 7.23beta5 +# 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 l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2442/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=1420 name=WG +/interface list +add name=WAN +add name=LAN +/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/657/b0bd77b1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:15:02 15.05.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 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-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/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/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,8.8.4.4 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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/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=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=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 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=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 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=142.251.1.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=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + 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" 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 dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +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="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-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark 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=\ + "!!!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-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" 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" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 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="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=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=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=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +add action=masquerade chain=srcnat comment="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +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 +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com +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 +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 +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 +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/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 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 comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260517/20260517042002-Diff-Config.rsc b/MikroMaster/history/20260517/20260517042002-Diff-Config.rsc new file mode 100644 index 0000000..80b8adc --- /dev/null +++ b/MikroMaster/history/20260517/20260517042002-Diff-Config.rsc @@ -0,0 +1,6 @@ +3213,3214c3213,3214 +< new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +< src-address-list=NoWG +--- +> disabled=yes new-routing-mark=main passthrough=no src-address=\ +> 10.30.30.0/24 src-address-list=NoWG -- 2.52.0