From 552b9495db879085b011f66c9b9ce1b87e47f2e6 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sun, 31 May 2026 19:40:37 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 31 19:40:37. --- .../20260531/20260531194001-Binary.backup | Bin 0 -> 259191 bytes .../20260531/20260531194001-Config.rsc | 3462 +++++++++++++++++ .../20260531/20260531194001-Diff-Config.rsc | 16 + 3 files changed, 3478 insertions(+) create mode 100644 MikroMaster/20260531/20260531194001-Binary.backup create mode 100644 MikroMaster/20260531/20260531194001-Config.rsc create mode 100644 MikroMaster/history/20260531/20260531194001-Diff-Config.rsc diff --git a/MikroMaster/20260531/20260531194001-Binary.backup b/MikroMaster/20260531/20260531194001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..7db8ac9f2df0d50de1a7aea61d9e5ede5c918e6b GIT binary patch literal 259191 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 z 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 SHgcr^Q6A;)M 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 &P_O%7o1-rE4v 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260531/20260531194001-Config.rsc b/MikroMaster/20260531/20260531194001-Config.rsc new file mode 100644 index 0000000..9e5984b --- /dev/null +++ b/MikroMaster/20260531/20260531194001-Config.rsc @@ -0,0 +1,3462 @@ +# 2026-05-31 19:40:03 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: 5260/20-Ceee/ac/DP(18dBm), 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/666/60128ee9\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 00:45:03 31.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 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC 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=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=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" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" 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="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add 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/20260531/20260531194001-Diff-Config.rsc b/MikroMaster/history/20260531/20260531194001-Diff-Config.rsc new file mode 100644 index 0000000..e62d3e8 --- /dev/null +++ b/MikroMaster/history/20260531/20260531194001-Diff-Config.rsc @@ -0,0 +1,16 @@ +3225,3226c3225,3226 +< 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 +3228,3229c3228,3229 +< dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ +< 10.30.30.0/24 src-address-list=!NoWG +--- +> disabled=yes dst-address=!10.30.30.0/24 new-routing-mark=To-VPN \ +> src-address=10.30.30.0/24 src-address-list=!NoWG +3361c3361 +< add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ +--- +> add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ -- 2.52.0