From 66749f7f9cbbb7f9f88bd461adf5e2473d03d40d Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 25 May 2026 01:20:40 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 25 01:20:40. --- .../20260525/20260525012002-Binary.backup | Bin 0 -> 256746 bytes .../20260525/20260525012002-Config.rsc | 3459 +++++++++++++++++ .../20260525/20260525012002-Diff-Config.rsc | 30 + 3 files changed, 3489 insertions(+) create mode 100644 MikroMaster/20260525/20260525012002-Binary.backup create mode 100644 MikroMaster/20260525/20260525012002-Config.rsc create mode 100644 MikroMaster/history/20260525/20260525012002-Diff-Config.rsc diff --git a/MikroMaster/20260525/20260525012002-Binary.backup b/MikroMaster/20260525/20260525012002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..42deb91afa584a4509f184d2b06ce4668b9ad175 GIT binary patch literal 256746 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 z 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≺ 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%0A<-E95f7bu_Lk^hRC4^fNS)=hN_IuXSrPA> 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

d7)evT^3b3M?ZpH%K& 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 DNz6K+ literal 0 HcmV?d00001 diff --git a/MikroMaster/20260525/20260525012002-Config.rsc b/MikroMaster/20260525/20260525012002-Config.rsc new file mode 100644 index 0000000..cde71ae --- /dev/null +++ b/MikroMaster/20260525/20260525012002-Config.rsc @@ -0,0 +1,3459 @@ +# 2026-05-25 01:20:03 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 disabled=yes listen-port=39736 mtu=1280 name=AWG +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,::/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=" +add allowed-address=0.0.0.0/0 client-allowed-address=10.9.0.2/24 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=51820 interface=AWG name=\ + Amnezia-wg persistent-keepalive=21s 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 +add address=10.9.0.2/24 disabled=yes interface=AWG network=10.9.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 disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output 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=VPN_No_FastTrack src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" 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="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment=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=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/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/20260525/20260525012002-Diff-Config.rsc b/MikroMaster/history/20260525/20260525012002-Diff-Config.rsc new file mode 100644 index 0000000..8494bee --- /dev/null +++ b/MikroMaster/history/20260525/20260525012002-Diff-Config.rsc @@ -0,0 +1,30 @@ +35c35 +< add disabled=yes listen-port=39736 mtu=1280 name=AWG +--- +> add listen-port=39736 mtu=1280 name=AWG +2453c2453 +< add allowed-address=0.0.0.0/0 client-allowed-address=10.9.0.2/24 disabled=yes \ +--- +> add allowed-address=0.0.0.0/0 client-allowed-address=10.9.0.2/24 \ +2466c2466 +< add address=10.9.0.2/24 disabled=yes interface=AWG network=10.9.0.0 +--- +> add address=10.9.0.2 interface=AWG network=10.9.0.0 +3228,3229c3228,3229 +< new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +< src-address-list=NoWG +--- +> disabled=yes new-routing-mark=main passthrough=no src-address=\ +> 10.30.30.0/24 src-address-list=NoWG +3231,3232c3231,3232 +< dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ +< 10.30.30.0/24 src-address-list=!NoWG +--- +> disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ +> src-address=10.30.30.0/24 src-address-list=!NoWG +3234,3235c3234,3235 +< "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ +< VPN_No_FastTrack +--- +> "Mark VPN connections to exclude from FastTrack" disabled=yes \ +> new-connection-mark=VPN_No_FastTrack -- 2.52.0