From 2a40b0f8d72f302b4fbc216877f9434784af8af5 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 15 May 2026 12:20:21 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 15 12:20:21. --- .../20260515/20260515122002-Binary.backup | Bin 0 -> 241609 bytes .../20260515/20260515122002-Config.rsc | 3405 +++++++++++++++++ .../20260515/20260515122002-Diff-Config.rsc | 61 + 3 files changed, 3466 insertions(+) create mode 100644 MikroMaster/20260515/20260515122002-Binary.backup create mode 100644 MikroMaster/20260515/20260515122002-Config.rsc create mode 100644 MikroMaster/history/20260515/20260515122002-Diff-Config.rsc diff --git a/MikroMaster/20260515/20260515122002-Binary.backup b/MikroMaster/20260515/20260515122002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..be3ec7f69f193e0540d66af193b7bbaa4b41e14c GIT binary patch literal 241609 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

v4nW9|Q#v%oa}f6-v- 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260515/20260515122002-Config.rsc b/MikroMaster/20260515/20260515122002-Config.rsc new file mode 100644 index 0000000..94b3c80 --- /dev/null +++ b/MikroMaster/20260515/20260515122002-Config.rsc @@ -0,0 +1,3405 @@ +# 2026-05-15 12:20:02 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add name=Bridge-LAN +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether3 ] comment=LEN +set [ find default-name=ether4 ] comment=NUC +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1280 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/648/4ed2b672\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 12:05:02 15.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"kasparov.ru\"\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 \"telegram.me\"\r\ + \n \"fbcd.net\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"twimg.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"ytimg.com\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\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=\$n\ + ewAddress comment=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list: \$ListRKN add\ + ress: \$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 :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 /ip firewall address-list add list=\$ListRKN address\ + =[/ip dns cache all get \$aRecord data] comment=\$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:\$ListRKN \ + address: \$newAddress domain: \$aItem record: \$aRecord\";\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:20: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" +/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 +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 +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add interface="ether1 - Unet" list=WAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=10.30.30.100-255 list=KIDS +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 +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 +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=iCloud-Mail +add address=smtp.mail.me.com.akadns.net comment=smtp.mail.me.com.akadns.net \ + list=iCloud-Mail +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=Trusted-VPN +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!!!" disabled=yes 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=Trusted-VPN +add address=vdsina.ru comment=VDSina-vpn list=Trusted-VPN +add address=ns.vados.ru comment=VDSina-vpn list=Trusted-VPN +add address=vdsina.com comment=VDSina-vpn list=Trusted-VPN +add address=cp.vdsina.ru comment=VDSina-vpn list=Trusted-VPN +add address=ns1.vdsina.ru comment=VDSina-vpn list=Trusted-VPN +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=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=8.47.69.10 comment=dou.ua list=RKN-dnsLookup +add address=8.6.112.10 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=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=172.66.0.227 comment=x.com list=RKN-dnsLookup +add address=162.159.140.229 comment=twitter.com list=RKN-dnsLookup +add address=64.233.164.91 comment=youtube.com list=RKN-dnsLookup +add address=64.233.164.93 comment=youtube.com list=RKN-dnsLookup +add address=64.233.164.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.164.190 comment=youtube.com list=RKN-dnsLookup +add address=142.250.150.105 comment=googleapis.com list=RKN-dnsLookup +add address=142.250.150.104 comment=googleapis.com list=RKN-dnsLookup +add address=142.250.150.103 comment=googleapis.com list=RKN-dnsLookup +add address=142.250.150.106 comment=googleapis.com list=RKN-dnsLookup +add address=142.250.150.147 comment=googleapis.com list=RKN-dnsLookup +add address=142.250.150.99 comment=googleapis.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtu.be list=RKN-dnsLookup +add address=209.85.233.190 comment=youtu.be list=RKN-dnsLookup +add address=209.85.233.136 comment=youtu.be list=RKN-dnsLookup +add address=209.85.233.93 comment=youtu.be list=RKN-dnsLookup +add address=64.233.164.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.103 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.106 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.105 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.73.120 comment=gstatic.com list=RKN-dnsLookup +add address=173.194.73.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.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=!10.30.30.0/24 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=!10.30.30.0/24 \ + 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=!10.30.30.0/24 src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + 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 \ + in-interface-list=LAN protocol=udp src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" in-interface=WG \ + new-connection-mark=VPN_No_FastTrack +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address-list=NoVdsina \ + new-routing-mark=main src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Test sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=YouTube dst-address-list=\ + YouTube new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 dst-address-list=!Trusted-VPN log-prefix=\ + VPN-all new-routing-mark=To-VPN src-address=10.30.30.0/24 +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" 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="masquerade Default" ipsec-policy=\ + out,none out-interface="ether1 - Unet" routing-mark=!To-VPN +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + log-prefix=WG-nat out-interface=WG +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + in-interface="ether1 - Unet" log-prefix=2Amster protocol=tcp \ + routing-mark=!To-VPN to-addresses=10.30.30.33 to-ports=443 +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="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp routing-mark=\ + !To-VPN to-addresses=10.30.30.33 to-ports=80 +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=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="vk.com raw" \ + content=vk.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="ok.ru raw" \ + content=ok.ru +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "comp-lenta.ru raw" content=comp-lenta.ru +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 +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="gov.ru raw" \ + content=gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "r78.fssp.gov.ru raw" content=r78.fssp.gov.ru +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 +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set graphs-plain=no rest-plain=no webfig-plain=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" interval=20m name=AM-RKN-dnsLookup \ + on-event="/system/script { run AM-RKN-dnsLookup; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260515/20260515122002-Diff-Config.rsc b/MikroMaster/history/20260515/20260515122002-Diff-Config.rsc new file mode 100644 index 0000000..95e572e --- /dev/null +++ b/MikroMaster/history/20260515/20260515122002-Diff-Config.rsc @@ -0,0 +1,61 @@ +348c348 +< \n:global CommitId \"main/648/4ed2b672\";\r\ +--- +> \n:global CommitId \"main/646/5f377362\";\r\ +351c351 +< r: root, in 12:05:02 15.05.2026.\";\r\ +--- +> r: root, in 11:50:03 15.05.2026.\";\r\ +2326,2331c2326,2330 +< \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 :do {\r\ +> \n :resolve \$aItem;\r\ +> \n } on-error={\r\ +> \n :log error \"dns resolve failure [ ip - resolve ip ]\";\r\ +> \n }\r\ +2384c2383 +< \ndelay 2s; \r\ +--- +> \ndelay 5s; \r\ +3061d3059 +< add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +3062a3061 +> add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +3065d3063 +< add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +3066a3065 +> add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +3068,3069c3067,3068 +< add address=8.47.69.10 comment=dou.ua list=RKN-dnsLookup +< add address=8.6.112.10 comment=dou.ua list=RKN-dnsLookup +--- +> add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +> add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +3073d3071 +< add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +3074a3073 +> add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +3085,3090c3084,3089 +< add address=142.250.150.105 comment=googleapis.com list=RKN-dnsLookup +< add address=142.250.150.104 comment=googleapis.com list=RKN-dnsLookup +< add address=142.250.150.103 comment=googleapis.com list=RKN-dnsLookup +< add address=142.250.150.106 comment=googleapis.com list=RKN-dnsLookup +< add address=142.250.150.147 comment=googleapis.com list=RKN-dnsLookup +< add address=142.250.150.99 comment=googleapis.com list=RKN-dnsLookup +--- +> add address=209.85.233.99 comment=googleapis.com list=RKN-dnsLookup +> add address=209.85.233.103 comment=googleapis.com list=RKN-dnsLookup +> add address=209.85.233.104 comment=googleapis.com list=RKN-dnsLookup +> add address=209.85.233.106 comment=googleapis.com list=RKN-dnsLookup +> add address=209.85.233.105 comment=googleapis.com list=RKN-dnsLookup +> add address=209.85.233.147 comment=googleapis.com list=RKN-dnsLookup +3103c3102 +< add address=64.233.161.132 comment=googleusercontent.com list=RKN-dnsLookup +--- +> add address=74.125.131.132 comment=googleusercontent.com list=RKN-dnsLookup -- 2.52.0