From c11a87e6df23e6b9b7307cb6a7289abb3975e985 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 25 May 2026 00:40:38 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 25 00:40:38. --- .../20260525/20260525004001-Binary.backup | Bin 0 -> 256627 bytes .../20260525/20260525004001-Config.rsc | 3458 +++++++++++++++++ .../20260525/20260525004001-Diff-Config.rsc | 7 + 3 files changed, 3465 insertions(+) create mode 100644 MikroMaster/20260525/20260525004001-Binary.backup create mode 100644 MikroMaster/20260525/20260525004001-Config.rsc create mode 100644 MikroMaster/history/20260525/20260525004001-Diff-Config.rsc diff --git a/MikroMaster/20260525/20260525004001-Binary.backup b/MikroMaster/20260525/20260525004001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..81333b1765cd7ed3094623cdb5453f5ab26c7668 GIT binary patch literal 256627 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260525/20260525004001-Config.rsc b/MikroMaster/20260525/20260525004001-Config.rsc new file mode 100644 index 0000000..6af713f --- /dev/null +++ b/MikroMaster/20260525/20260525004001-Config.rsc @@ -0,0 +1,3458 @@ +# 2026-05-25 00:40:03 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=39736 mtu=1280 name=AWG +add listen-port=13231 mtu=1280 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/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=" +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=51820 interface=AWG name=Amnezia-wg \ + persistent-keepalive=21s public-key=\ + "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +/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/20260525004001-Diff-Config.rsc b/MikroMaster/history/20260525/20260525004001-Diff-Config.rsc new file mode 100644 index 0000000..c1908a0 --- /dev/null +++ b/MikroMaster/history/20260525/20260525004001-Diff-Config.rsc @@ -0,0 +1,7 @@ +35d34 +< add listen-port=39736 mtu=1280 name=AWG +2453,2456d2451 +< add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ +< 89.110.101.17 endpoint-port=51820 interface=AWG name=Amnezia-wg \ +< persistent-keepalive=21s public-key=\ +< "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" -- 2.52.0