From 00bcb2a28e7f87de8d447079c62116ccc3b05cd3 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 21:00:15 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 21:00:15. --- .../20260602/20260602210001-Binary.backup | Bin 0 -> 260418 bytes .../20260602/20260602210001-Config.rsc | 3457 +++++++++++++++++ .../20260602/20260602210001-Diff-Config.rsc | 35 + 3 files changed, 3492 insertions(+) create mode 100644 MikroMaster/20260602/20260602210001-Binary.backup create mode 100644 MikroMaster/20260602/20260602210001-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602210001-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602210001-Binary.backup b/MikroMaster/20260602/20260602210001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..27388d16c282d8bd71401d7ef7696eb7c9398f97 GIT binary patch literal 260418 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

1Bi^Z5?5P6wcTe7(a;^{ME23<%lZN`w#IVoO4 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

In{CJ(|AaroQCxb63xX#TZ7hiDO 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 g$!SjioTtFA>=z5*nQ2^~= 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%0A|^>p^XLm581Cf4n)L&*jJ~2zKwXC81C8j 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260602/20260602210001-Config.rsc b/MikroMaster/20260602/20260602210001-Config.rsc new file mode 100644 index 0000000..c60709e --- /dev/null +++ b/MikroMaster/20260602/20260602210001-Config.rsc @@ -0,0 +1,3457 @@ +# 2026-06-02 21:00:02 by RouterOS 7.23 +# 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 wireless +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add disabled=yes listen-port=13231 mtu=1280 name=WG +/interface list +add name=LAN +add name=Internet +add exclude=LAN name=WAN +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys 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=yes 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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.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=Internet internet-interface-list=Internet \ + 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 interface="ether1 - Unet" list=WAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN 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 disabled=yes interface=WG network=10.8.0.1 +/ip cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/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.4.4,8.8.8.8 verify-doh-cert=yes +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +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 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.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" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" disabled=yes name=dns.comss.one \ + 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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=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" disabled=yes dst-port=123 \ + protocol=udp src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +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 disabled=yes in-interface="ether1 - Unet" \ + src-address-list=!VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes 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=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + 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 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" disabled=yes 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" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ + src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + dst-port=443 fragment=no in-interface="ether1 - Unet" protocol=tcp \ + src-address=!10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes 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 +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN 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 forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/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 +/routing settings +set single-process=no +/system clock +set 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 package update +set ip-version=ipv4 mode=http +/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 certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" name="Cuad9-DOH IPv4" 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="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260602/20260602210001-Diff-Config.rsc b/MikroMaster/history/20260602/20260602210001-Diff-Config.rsc new file mode 100644 index 0000000..f49d44b --- /dev/null +++ b/MikroMaster/history/20260602/20260602210001-Diff-Config.rsc @@ -0,0 +1,35 @@ +18,21c18,21 +< set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ +< ssid=vados wireless-protocol=802.11 +< set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ +< ssid=vados5g wireless-protocol=802.11 +--- +> set [ find default-name=wlan1 ] country=belarus mode=ap-bridge ssid=vados \ +> wireless-protocol=802.11 +> set [ find default-name=wlan2 ] country=belarus mode=ap-bridge ssid=vados5g \ +> wireless-protocol=802.11 +29,30c29 +< set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ +< dynamic-keys supplicant-identity=MikroTik +--- +> set [ find default=yes ] supplicant-identity=MikroTik +76c75 +< add disabled=yes fib name=To-VPN +--- +> add disabled=no fib name=To-VPN +2430a2430,2435 +> 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 +2449c2454,2456 +< add interface="ether1 - Unet" name=client1 +--- +> add add-default-route=special-classless default-route-distance=2 \ +> default-route-tables=main dhcp-options=clientid,clientid_duid interface=\ +> "ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +3385,3386d3391 +< /routing settings +< set single-process=no -- 2.52.0