From 789669d558394fb2b17c12b4d8106aa5d7584ed4 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 23 May 2026 03:00:43 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 23 03:00:43. --- .../20260523/20260523030002-Binary.backup | Bin 0 -> 253701 bytes .../20260523/20260523030002-Config.rsc | 3449 +++++++++++++++++ .../20260523/20260523030002-Diff-Config.rsc | 25 + 3 files changed, 3474 insertions(+) create mode 100644 MikroMaster/20260523/20260523030002-Binary.backup create mode 100644 MikroMaster/20260523/20260523030002-Config.rsc create mode 100644 MikroMaster/history/20260523/20260523030002-Diff-Config.rsc diff --git a/MikroMaster/20260523/20260523030002-Binary.backup b/MikroMaster/20260523/20260523030002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..9ea2ef8702e539af6f64d11f2875bc0824431d5b GIT binary patch literal 253701 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 =2x=DNXF5HLr*KXu<~x$y#*yxy`Y(W(xYeEdyA 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%0AAi0Ew~Fhu4A%rada+GVxMDPlLzVP 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

MbGJlE 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 azY)eUqsoreK@%MZ$9Jw5qac2Z*&%n?;^grF literal 0 HcmV?d00001 diff --git a/MikroMaster/20260523/20260523030002-Config.rsc b/MikroMaster/20260523/20260523030002-Config.rsc new file mode 100644 index 0000000..23270ee --- /dev/null +++ b/MikroMaster/20260523/20260523030002-Config.rsc @@ -0,0 +1,3449 @@ +# 2026-05-23 03:00:04 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 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=1280 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/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.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=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=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="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment="portainer agent" dst-port=9001 \ + protocol=tcp to-addresses=10.30.30.33 to-ports=9001 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +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 +add action=dst-nat chain=dstnat dst-port=22 in-interface="ether1 - Unet" \ + protocol=tcp to-addresses=10.30.30.33 to-ports=22 +/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 +/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/20260523/20260523030002-Diff-Config.rsc b/MikroMaster/history/20260523/20260523030002-Diff-Config.rsc new file mode 100644 index 0000000..04b2580 --- /dev/null +++ b/MikroMaster/history/20260523/20260523030002-Diff-Config.rsc @@ -0,0 +1,25 @@ +3225,3226c3225,3226 +< dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ +< 10.30.30.0/24 +--- +> disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ +> src-address=10.30.30.0/24 +3228,3232c3228,3232 +< "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 +--- +> "Mark VPN connections to exclude from FastTrack" disabled=yes \ +> new-connection-mark=VPN_No_FastTrack +> add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ +> 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ +> tcp-mss=1381-65535 +3259,3260d3258 +< add action=dst-nat chain=dstnat comment="portainer agent" dst-port=9001 \ +< protocol=tcp to-addresses=10.30.30.33 to-ports=9001 +3348c3346 +< 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