From e37c01cae2df02d4378378d39fb715e6e83a9b47 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 25 May 2026 22:00:33 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 25 22:00:33. --- .../20260525/20260525220001-Binary.backup | Bin 0 -> 256114 bytes .../20260525/20260525220001-Config.rsc | 3453 +++++++++++++++++ .../20260525/20260525220001-Diff-Config.rsc | 8 + 3 files changed, 3461 insertions(+) create mode 100644 MikroMaster/20260525/20260525220001-Binary.backup create mode 100644 MikroMaster/20260525/20260525220001-Config.rsc create mode 100644 MikroMaster/history/20260525/20260525220001-Diff-Config.rsc diff --git a/MikroMaster/20260525/20260525220001-Binary.backup b/MikroMaster/20260525/20260525220001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..517c1015c9588d3e69fcc6d2ff5e79395355cacf GIT binary patch literal 256114 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
$@5JxPV(L7m`rh@CI>vB+iC7 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 z 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

1^;WP)ux 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

JjLNgrBuyq=$^jZ4@nt(0N<_^_TE+4+;nzG=JZL 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260525/20260525220001-Config.rsc b/MikroMaster/20260525/20260525220001-Config.rsc new file mode 100644 index 0000000..ca1a065 --- /dev/null +++ b/MikroMaster/20260525/20260525220001-Config.rsc @@ -0,0 +1,3453 @@ +# 2026-05-25 22:00:03 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1280 name=WG +/interface list +add name=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/661/8d6d2114\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 25.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 disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output 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=VPN_No_FastTrack src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" 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="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment=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=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/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/20260525/20260525220001-Diff-Config.rsc b/MikroMaster/history/20260525/20260525220001-Diff-Config.rsc new file mode 100644 index 0000000..1be7382 --- /dev/null +++ b/MikroMaster/history/20260525/20260525220001-Diff-Config.rsc @@ -0,0 +1,8 @@ +27c27 +< # channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +--- +> # channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +31c31 +< # channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +--- +> # channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding -- 2.52.0