From 55a0ef921becd0050b996c7f37976c0df48b5b5d Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 30 May 2026 17:40:39 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 30 17:40:39. --- .../20260530/20260530174002-Binary.backup | Bin 0 -> 259477 bytes .../20260530/20260530174002-Config.rsc | 3462 +++++++++++++++++ .../20260530/20260530174002-Diff-Config.rsc | 14 + 3 files changed, 3476 insertions(+) create mode 100644 MikroMaster/20260530/20260530174002-Binary.backup create mode 100644 MikroMaster/20260530/20260530174002-Config.rsc create mode 100644 MikroMaster/history/20260530/20260530174002-Diff-Config.rsc diff --git a/MikroMaster/20260530/20260530174002-Binary.backup b/MikroMaster/20260530/20260530174002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..7f2d7aa3860e7b18927f525ce1a6d892aec44ba4 GIT binary patch literal 259477 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

CgUf>`gs6QL-uIT*u< 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%0D^_O#N{bWACY27qcf1KLYS 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

O>qvv7-el$NM=U;vf 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260530/20260530174002-Config.rsc b/MikroMaster/20260530/20260530174002-Config.rsc new file mode 100644 index 0000000..051aa2e --- /dev/null +++ b/MikroMaster/20260530/20260530174002-Config.rsc @@ -0,0 +1,3462 @@ +# 2026-05-30 17:40:04 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1420 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/663/fee06fc8\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 02:10:03 30.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes dst-address=!10.30.30.0/24 new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260530/20260530174002-Diff-Config.rsc b/MikroMaster/history/20260530/20260530174002-Diff-Config.rsc new file mode 100644 index 0000000..8053afd --- /dev/null +++ b/MikroMaster/history/20260530/20260530174002-Diff-Config.rsc @@ -0,0 +1,14 @@ +2448,2450c2448,2450 +< add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ +< 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ +< persistent-keepalive=25s public-key=\ +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +> endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ +> MikroVados persistent-keepalive=25s public-key=\ +3228,3229c3228,3229 +< disabled=yes dst-address=!10.30.30.0/24 new-routing-mark=To-VPN \ +< src-address=10.30.30.0/24 src-address-list=!NoWG +--- +> dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ +> 10.30.30.0/24 src-address-list=!NoWG -- 2.52.0