From 2db8c92ba13aa0cdde63992d4a0c6959440405ae Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 25 May 2026 01:00:41 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 25 01:00:41. --- .../20260525/20260525010002-Binary.backup | Bin 0 -> 256743 bytes .../20260525/20260525010002-Config.rsc | 3459 +++++++++++++++++ .../20260525/20260525010002-Diff-Config.rsc | 30 + 3 files changed, 3489 insertions(+) create mode 100644 MikroMaster/20260525/20260525010002-Binary.backup create mode 100644 MikroMaster/20260525/20260525010002-Config.rsc create mode 100644 MikroMaster/history/20260525/20260525010002-Diff-Config.rsc diff --git a/MikroMaster/20260525/20260525010002-Binary.backup b/MikroMaster/20260525/20260525010002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..521078632457b82ba214f07d8d43a601ecdc39a1 GIT binary patch literal 256743 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

gQq5@!GuU*ekl&(s5^ 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 AC;$Ke literal 0 HcmV?d00001 diff --git a/MikroMaster/20260525/20260525010002-Config.rsc b/MikroMaster/20260525/20260525010002-Config.rsc new file mode 100644 index 0000000..ce59fc0 --- /dev/null +++ b/MikroMaster/20260525/20260525010002-Config.rsc @@ -0,0 +1,3459 @@ +# 2026-05-25 01:00:03 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 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=10.9.0.2/24 \ + endpoint-address=89.110.101.17 endpoint-port=51820 interface=AWG name=\ + Amnezia-wg persistent-keepalive=21s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +add address=10.9.0.2 interface=AWG network=10.9.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" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes 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" disabled=yes \ + 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/20260525010002-Diff-Config.rsc b/MikroMaster/history/20260525/20260525010002-Diff-Config.rsc new file mode 100644 index 0000000..3358e09 --- /dev/null +++ b/MikroMaster/history/20260525/20260525010002-Diff-Config.rsc @@ -0,0 +1,30 @@ +2453,2456c2453,2456 +< add allowed-address=0.0.0.0/0 client-allowed-address=10.9.0.2/24 \ +< endpoint-address=89.110.101.17 endpoint-port=51820 interface=AWG name=\ +< Amnezia-wg persistent-keepalive=21s 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=" +2466d2465 +< add address=10.9.0.2 interface=AWG network=10.9.0.0 +3228,3229c3227,3228 +< disabled=yes new-routing-mark=main passthrough=no src-address=\ +< 10.30.30.0/24 src-address-list=NoWG +--- +> new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +> src-address-list=NoWG +3231,3232c3230,3231 +< disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ +< src-address=10.30.30.0/24 src-address-list=!NoWG +--- +> dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ +> 10.30.30.0/24 src-address-list=!NoWG +3234,3235c3233,3234 +< "Mark VPN connections to exclude from FastTrack" disabled=yes \ +< new-connection-mark=VPN_No_FastTrack +--- +> "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ +> VPN_No_FastTrack -- 2.52.0