From 94b821c178b257bc8bc6b00fcfe42117e689cc36 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 23 May 2026 03:20:42 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 23 03:20:42. --- .../20260523/20260523032002-Binary.backup | Bin 0 -> 253701 bytes .../20260523/20260523032002-Config.rsc | 3449 +++++++++++++++++ .../20260523/20260523032002-Diff-Config.rsc | 6 + 3 files changed, 3455 insertions(+) create mode 100644 MikroMaster/20260523/20260523032002-Binary.backup create mode 100644 MikroMaster/20260523/20260523032002-Config.rsc create mode 100644 MikroMaster/history/20260523/20260523032002-Diff-Config.rsc diff --git a/MikroMaster/20260523/20260523032002-Binary.backup b/MikroMaster/20260523/20260523032002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..26f68a41c2de5103c24784262fea6adbcb4c1ca2 GIT binary patch literal 253701 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%0AH{R$uPs(_-sb; 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

x!n}2xx^k@*t6lM}Zb#+2zS(z` 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

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