From c1d231014a25a1595c6e30209adf46c5e6fa17cc Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 16 May 2026 18:00:43 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 16 18:00:43. --- .../20260516/20260516180002-Binary.backup | Bin 0 -> 247666 bytes .../20260516/20260516180002-Config.rsc | 3439 +++++++++++++++++ .../20260516/20260516180002-Diff-Config.rsc | 17 + 3 files changed, 3456 insertions(+) create mode 100644 MikroMaster/20260516/20260516180002-Binary.backup create mode 100644 MikroMaster/20260516/20260516180002-Config.rsc create mode 100644 MikroMaster/history/20260516/20260516180002-Diff-Config.rsc diff --git a/MikroMaster/20260516/20260516180002-Binary.backup b/MikroMaster/20260516/20260516180002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..20b8984b50754722e2f2b4414a307425e61bfcc5 GIT binary patch literal 247666 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

K@w$kBn@4AmEq$ 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

m50FwyV=^L&2mL!NBY^%?!{2-Kqr=yD-If!b1y7 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260516/20260516180002-Config.rsc b/MikroMaster/20260516/20260516180002-Config.rsc new file mode 100644 index 0000000..94f40e7 --- /dev/null +++ b/MikroMaster/20260516/20260516180002-Config.rsc @@ -0,0 +1,3439 @@ +# 2026-05-16 18:00:02 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: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=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 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/657/b0bd77b1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:15:02 15.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=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 list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output 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-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +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=WG dst-address-list=!NoVdsina \ + log-prefix=WG-nat out-interface=WG +add action=masquerade chain=srcnat comment="masquerade Default" ipsec-policy=\ + out,none out-interface="ether1 - Unet" +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=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=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 interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +# Not acquired from pool +add duid=0x000001000010000000 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/20260516/20260516180002-Diff-Config.rsc b/MikroMaster/history/20260516/20260516180002-Diff-Config.rsc new file mode 100644 index 0000000..2fefe33 --- /dev/null +++ b/MikroMaster/history/20260516/20260516180002-Diff-Config.rsc @@ -0,0 +1,17 @@ +78,80d77 +< /ipv6 dhcp-server +< add address-pool=vadosV6 interface=Bridge-LAN name=masterIPV6 prefix-pool=\ +< vados use-reconfigure=yes +3366,3373c3363,3365 +< add add-default-route=yes allow-reconfigure=yes custom-duid=\ +< 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ +< default-route-tables=main:1 interface=WG pool-name=vados \ +< pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ +< use-peer-dns=no +< /ipv6 dhcp-server binding +< # Not acquired from pool +< add duid=0x000001000010000000 iaid=1 prefix-pool=vados server=masterIPV6 +--- +> add add-default-route=yes custom-iana-id=0 custom-iapd-id=0 \ +> default-route-tables=main disabled=yes interface=WG pool-prefix-length=64 \ +> request=address use-interface-duid=yes -- 2.52.0

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