From 4a54580023dfcdef6933172ba66916f019160229 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 06:21:34 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 12 06:21:34. --- .../20260612/20260612062002-Binary.backup | Bin 0 -> 269507 bytes .../20260612/20260612062002-Config.rsc | 3600 +++++++++++++++++ .../20260612/20260612062002-Diff-Config.rsc | 21 + 3 files changed, 3621 insertions(+) create mode 100644 MikroMaster/20260612/20260612062002-Binary.backup create mode 100644 MikroMaster/20260612/20260612062002-Config.rsc create mode 100644 MikroMaster/history/20260612/20260612062002-Diff-Config.rsc diff --git a/MikroMaster/20260612/20260612062002-Binary.backup b/MikroMaster/20260612/20260612062002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..656e0941e66f6963175a672a49848ccbdf225848 GIT binary patch literal 269507 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

EI^Ih?OW;k0#`h4b!J-cD6#OiPPLc@-i!*JP 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�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

H{WTZ>3{FLO4 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

Zs_+Ho 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260612/20260612062002-Config.rsc b/MikroMaster/20260612/20260612062002-Config.rsc new file mode 100644 index 0000000..cc5e22b --- /dev/null +++ b/MikroMaster/20260612/20260612062002-Config.rsc @@ -0,0 +1,3600 @@ +# 2026-06-12 06:20:05 by RouterOS 7.23.1 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add dhcpv6-agent-circuit-id="\$(INTERFACE):\$(VID)" dhcpv6-agent-remote-id=\ + "\$(BRIDGEMAC)" name=Bridge-LAN port-cost-mode=short +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" loop-protect=off name=\ + "ether1 - Unet" rx-flow-control=auto tx-flow-control=auto +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 wireless +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=29185 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys 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 +add dns-servers=10.30.30.81 name=reg.vados.ru 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-client option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=DUID value=0x00030001488f5a8e1abc +add code=61 name=clientid +/ipv6 dhcp-server option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=CLIENT_DUID +add code=61 name=CLIENT_MAC +/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/679/bd93dce4\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 08.06.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" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \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" +/ip smb +set enabled=no interfaces=lo +/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 trusted-dhcpv6=yes trusted-ra=yes +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=0.0.0.0/0 disabled=yes \ + interface=WG name=MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +add allowed-address=10.8.0.1/32 client-address=10.8.0.2/32 \ + client-allowed-address=10.8.0.1/24 client-dns=8.8.8.8 client-endpoint=\ + 146.120.64.211 client-keepalive=10s endpoint-address=146.120.64.211 \ + endpoint-port=29185 interface=WG name=GitHub persistent-keepalive=10s \ + public-key="HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" responder=yes +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ + no use-peer-ntp=no +/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 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +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 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 match-subdomain=yes name=mikrots.vados.ru 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" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one 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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +add address=10.30.30.33 comment="Direct connet to DNS servers" list=\ + Direct-DNS +/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="ether1 - Unet" 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="ether1 - Unet" 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 \ + in-interface="ether1 - Unet" 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="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=tcp \ + src-address=10.30.30.0/24 +add action=accept chain=input comment="udp Accept input DNS queries" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=udp \ + src-address=10.30.30.0/24 +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 WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +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 in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +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=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 +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes 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=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes 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" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes 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="udp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=udp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=tcp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + 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 disabled=yes 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" 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 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=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 src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + 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=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN 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 forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set 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 package update +set check-certificate=yes-without-crl +/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 certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get 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="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260612/20260612062002-Diff-Config.rsc b/MikroMaster/history/20260612/20260612062002-Diff-Config.rsc new file mode 100644 index 0000000..cee32e9 --- /dev/null +++ b/MikroMaster/history/20260612/20260612062002-Diff-Config.rsc @@ -0,0 +1,21 @@ +25c25 +< add listen-port=29185 mtu=1420 name=WG +--- +> add disabled=yes listen-port=29185 mtu=1420 name=WG +2599,2601c2599,2602 +< interface=WG name=MikroVados persistent-keepalive=10s public-key=\ +< "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +< add allowed-address=10.8.0.1/32 client-address=10.8.0.2/32 \ +--- +> endpoint-address=172.172.87.67 endpoint-port=29185 interface=WG name=\ +> MikroVados persistent-keepalive=10s public-key=\ +> "F0P1v/1/dwGJlDVD1tVlyIAUUd9c5sHokhv/kl5tm1U=" +> add allowed-address=0.0.0.0/0 client-address=10.8.0.2/32 \ +2603,2605c2604,2606 +< 146.120.64.211 client-keepalive=10s endpoint-address=146.120.64.211 \ +< endpoint-port=29185 interface=WG name=GitHub persistent-keepalive=10s \ +< public-key="HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" responder=yes +--- +> 146.120.64.211 client-keepalive=10s interface=WG name=GitHub \ +> persistent-keepalive=10s public-key=\ +> "HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" -- 2.52.0

p84!dRh#QW}st8$)J8vi?#lfj~LQHeAj; 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ëO6mB-S{)LK4L5i8h2~3Or9XM0fXBR>81DqsVrFap}(aZ?Qv{?yZ z3nM8VWTHiXB_9SwBBGUp|Ai5^(;VQPU|0irgdqY>bU;o)rr`t0*uc-4%ryeLImvV% zn$XARue&s12ugX2vUUa!er4nG`q_y8R#hP5x17((UhhTd56z-#xIsJ)6R%S{SIS~& z-MTzk%YBwC1b(Ar3FCOlevxV>um|4ZP?*`eqR@U5lDmN2cG|ao*~WV416;}+UUg=s zRF^JJ-(ukf4j&qt`J4Gy3Dk`8qVO0MN3OAHt|6!CU2fnT;(OlI701}r4=D{iR%;wy zSRt5J;qW#a)6S%QxdpCS>(yVm_t+buvqDAa$&2~XfiaZC$ikO|RNpLf#Qx^zjU|Ew zhALHjZFjm+i>G(dDCq>eP(E+SH%d*)g;4eVZjmBv}2XWd?;SFr73AZFGRG9=>%vC3;IE?L=0?@ z#YyHD+M`HkU+;uJ;YZi<%vAhTt{V=JJo=0$UmtOo86%zt=fG8%m90U(pi zih4T_^^QqOCG-H**e_{!LMy(>Xk$Df+b^@W%CgNqI&-J`p*TxpLB3iI&D~N@{B*8V zg43Q4(e@A$!kL?($zt#W7++otmo<)%%AER8|7@_v!nPH8_-A>;h_)vVufOV;)r4cm zZ!N9p6s>wijQatygW5ITo<@C*8oW6Mz*r#iJ3KiYk)KOA)zsX`=JI8~iZ-0;e~Iq} z7`w|eMdTy~S&J>0@q1RL9I}r>?>21HK%tbMfVqj==l1coht3RPye-cB@-t_`k#4^P zSS45LMdfKUl2Ey%I>88LU#>c9)uW)K77&p;ZaUDpI_F8_#+V?<02txJf$>TR1voKn zIjo-?ACx`f>gDlI88YKa)n;W-uMV-?S<12-@`WVYg@mi*+-@i+zK4?@T5aM0r{^a8 z(FXgqri-3Zsh#tn*K1=)XWO7{PT`w@5e+St%tN*TDgggK0KkT$;O4{;l!hTz+W3|_ z4sj6io@2wqav|@`V+c(vg4fp@FI z=*MQ-Bi^uDv{|kX0;I>8gtzeoYDcE|4NC*SvIcVVPm8>rH|FZR*GTGBLx9oDyk#H> zROzsh(ot33sBK~W))@w2CMfgM#4gr_y4zqj!i(Nm&WpKm##PJ1V4hIb?jlWE^-tD< zp*d_ER@h6<-lVuBvL5_LQnb@GfK6LeFCk~{=yD|h`o62!j#=Qi=in6OvBP9JkDcPn z?Xm^bby?WPKjHuP?HGVl-U}8Oe-N08?o9jpF|*^3y$mt)T~v z$ht9@y|}j1oRgf_U1_*C4wEFWA%pD^i0nGk+cyXjWLgP-mr;AC6m8A&AqxaD5 z0C84@?!w9+f%YR6p(6uNB0`pwdJI2%yw0>)&LcJwIIT*Ar}t*{zDH%587_JUD8$&` z);jMCVoF~-Ri*X9SWlOaoHaxMUOZ-NJ0v;x0wdb&K&Q^|TXdbm|)Q*pJ^dJwUnB2KGi1 zV7mPw_BW15h9VxbUSVKT9Tzy=u9kG+UevzJ3& zG@`r7=$0K+QdeusekOAoc5O8e#WSBvXdE`HdQSG8Kfs}FG0h}>=Cja%Qy6>QbMq;Z zNKe!!b}+u+Kn8e1i2A_!2CaXtfVBu~TV{|^&a8Cft*}_ds7K=tkz5ahKYuh`S+eq# zX|ZDs=p4iH1D5s%=g%eH1US&)dZ4?-@84)y&S*OkUDA3+JazXkwP5p3EP+;4 ziB1C?;(L);5~ z;PK?a$2lP?=2(CwHBG|n-`1A8CAntLW(ZLm9Is+x)wL+a>lxZ+)atcn-wo;Hb89Ad zaoPHI^5v{spLqp`HRJWr3~(Cwc;lj1OFS$+AhYcf6fZ-wa`%a3L#E+#5LrQlVvY{1 zJ0Xu_<1Xy6)d3YO*IL!XvNhAmQyB{rpEqYfFJjd01CpmR-$?)!rPa#X5Al7hSs+Yj z69A3bKH8F7L6g-I)!jfpjzTE)OFXJ%gujrj(}25kptc}>sYvORsj!?y2A`2eK|vvV zIKc6&iu0Pft{Qblf{L$BaV-!S&UmtELQ&B${^RA~;xj;=^IRH|0Jiw<*ujOy>Rh|I zI}(N-=;V{!ODJrRo&k+PyS)lSO!EHgPu1Dq@~R#B)^64Tk#xI9ioO?&#Gvd~F~FRl zqP%pVu-lMpgHkg_`OEY5uAz`LQV24FaF*9CCkJH3uR+QfDBJqwi=drvUy6z8iY(uu zBwAlL-PX7AJ0XRm^QlvE!_?meCuuDKVIA93b97Ua=Fik?i$d$(!{u=pCK`R~#?gKx zepz`n?>e6DZdp2gTY*$fXUAQdoc@0JK=>EUo+U6m)tJ2v54K>8#Y^h`2YySrA5ZFV ze`l5=n2qzJQL5ixRwCWG)V`pjL>+G{g@XKX#;)GpPG&;|J2g=#%Vck(O0H{yg^BmN z*m04Q24|T5M_u%p2Gp@@af4;B;Tbyyxj38i+o%C%sYA)!0ek|J?Oa4@ci`O|JBLLH zt+gVgZApbL@GWW_debGCBqoD*i-t5fwU%QR#gMm z*X5P)qs%*0D+I=vH16WNj{!}d`86Tc{@`9CEV#-e5NPO!5jbfW>Yk1i3OEN!rIsk8 z{EU}aw_%(Y*7U$+hBF38mj|ut7lR7JR%PppMh7zORpALS-ciB0%4F?eTFMZo${4ks zo4KZ7;OptQv549e{y*5Mn@kBupeqK)JE;@8VGT>l9l6{(qw*dClB6FJQ=55QEz@CU zk*@ta79^V^jqxQ7vivx;K&)NWTzq*FU#m3pU zYM2q#Sq>rRa@{)Swb*x)ClhETik)C`$&JCoq7Z5<1<)B2GbE0&`s&`&cwiRkaC~W$$c!rBohf#|7J7O z_s;IrJ*j8)b(qCngtbGl6md z$Hy<>Pna|3W?OTxslQkMm5~FtqK-eBbNskzxJv@UHE(Dr;8p3idegV_HDrTVWAC%V zLG0PtN$*gtnjr#@5ip1~dFbpJAx@Liqpi{Q6;ww0N>5k;0ey z*5K5^TL8&TE#Pdx+L_=tob6R!bijzyr0Tp;=L0TPLo&YAD?v@bO7Bl$64rp4rx-O{ zINq3_x}@FWL5i;(6*+>`ZecdN%Rh2L3P+avLxOq4<}5exO6JUHCAqsa>{FO0YH8}Y z6#FFpWWkmW03Q<&&iRHS46$*Gj4zstTddq02wvgqhgryK@*9e~E3}sPj<5LS?{mM^ z8(xG!UKR@|c_ZPAXpdM|-_^K@&B{c1z5!x@xRk)Z%iRAyaV}*CBab*|$@o!P8*7o# z{M9fV1u{mbUe&QYq}y8QjcaH)T$?5vJ-U~My3(E5nBj)u!V^+{9}|?c{)cSB2dq}S zN~ISa4BC6G>6OGegn?H?uiVK1s|t^NI4}Z2x89|rSFlntUR_w9S}$8+QmZnVbkMng zxvO< zPkWST)?(-Dwr1%uBwJ_iV{fj-coX_0vQ8Jqe-}J!^nLonCOq`Dw0Bv#=d@pKNqG4p zvtEovcaHcEv;lx7P~ij7y~~>Z`DS)|noDE048u^8(S3#`%-E8xg&Ul~hFTGn>tK*a zcodFqgBMR&+TwH!0UA6uY>H0DiDU?tpIJ<-cO&ma)h)*r0$Gxq^_Hp*uo(gkLGRwD zxTyDmQoJqiX7^gbCrAy)P~GNszXaq+O272rcs9OV^mpayMDfJ?>4?!7yiPnvi}A6~ zo>|7lqR7JhPOml$38x>vQ0gm^AxjEJ)9~10kBz)%W?zC-{X({+rRiy2U^z*`)qT*CN{j!=DI0W?yqa!d(W(j1 zAZDp2c`%p+>SiT`K@>QKHpzH9WZRey{~(_(SBsTu`$9tq?yGCQ1M?L1htw~ly~k7b zl5w+drC;k^Swjs(voLk;9=7J2w>hzeTL*Gh_ zuhJ=412!V@{S%yewl7uhrrpHj`6kx$(-U*8TLBHfH~}iZyI-#kU5&+BBlWTEmpy>a z?fYG66469LHg+FKJfKl$UpX4Cg7|bb@-Na>lqmgm#fx?sWyJ#CIbEMLqsZ7e7|NZ&$wTzrQjk!O6U{FVb_TpNwo%&1f=+e)7-{0A2h+wBJHk!D}26($wNfn>i8B-qfIe7 zf|*B%V?4fW(P;V%8qmXP7}lpmZ-ig|Bb@~zVL6CRaBLT|b+IFzZ1D6kGESu{|3t6g zL%_`ep~2vvm1@|5_k8FvOKLlzZavd3*{Bnuhz``f9W~@pY2fUR0@km;fVHsgQ=VM3L}=E zipyMq4T-Rg#LsS4{7k^MZ9@}t@>#Qg0~0+_$00(5E6X7N_9BNJ zuv1Kopj({3CD_OxzxiyQ|GA=sz>YWYrg{DUoiHV@Px&+0kW^2SD03>Osz`dK5uT|{ zjfolHEHbb*)=VbxK^(B*1w^#;ns)fyvIocAsy)?oG%W8+{AK84@ITWqXp+Ux8K%&R zZbn}ZyiH&Q4S}L&$cm_(<5-!hdx>p7g%zdhZ=cL{u(Vles7PFczA-$9CWV~#H?{zX zbc5H%zFVQLhROA-+9G8NeKf$V$C#tQJHQXL*Tl;zlC4Bo@>xxi+m#2WXO(h{8H8Er zi%GtWp@lxxhUw^5U%B z)p&3MrTH^TzkU6O4a0`d)@~`GK}njQ%kB)17R=eF0qn|y(6~A(M-tKpX=_&%$4Zp@ zg(Og2gHgzPtWswz5<55#Ht@@!(ktO9xWpUI0G67_gb|Gi6#4Y}^7$3V#9Uu$LPrDQ z5+2-4wau-@4*Q_R%y;akfM$cIWxqghw}@E;oKM7u8yxLiDBW3w{3Vos;6QLMFwXLJ z-P%sD49|irL~p&9WrE(M0~fYE0bhR~6|{?KS?bop1lxQ3-1V9mAW2dPL_e|nX=8O` zWxUS~SgT8M>jkb2zCRkGt^~>&Bya6Jo`5-#_TcNr(s`(0PHno1Kwd2eD7xzgBH``@%9EA7Ek9gM)9`o6bm{R1-!PN|SCn+vVgMzTQ#K?& zQB1Zfq7(d9!K1HRug*K!(-Jn6j}r^p-pX9pGv!|mg&NOC&uM*T9!9Z| z-8L=?9^t;!h6fRKbWXe~yNzgGF_D*r2&gn*v*Ms2D$E%(dL1iXJ+WtHIup6acv&J$ z)mO!|aeeSESA?BwX;~Fc;MTXO;hSJx8Gup=6hVzj@|y}^uVt5)63B#p9s5S#kI_J` zk5Q8s4Ne)Mf& z3nzYAcG<`fY}tg01kSifk}Y_Bh8;VTRNsKl`wK@I%oHbLOF#tTyL&=B?Hao*_qbdC zy@j_A+5#BWuDx`2nVEA!LKJgE-!OK6!|2qxt4+Y#o^@xj!dQiO!<3lITJhyNkI5>6&|U-lt{(=XoKG7R zGRiVbm;kS;q#W*?FI}`Sm$Lo5h}MdGdO0ACPbkf(XCN+08O0+!`UMp*-#$g{4epKB za>gLr3~)ZV?uqm$%{AG_{k{>V=9XB5_T#Wr0nA5_g6&8eteLc_Q5@SGunQlE^^E0y zWS&$K5xA)Dqi+=u;~-ote(p$w#CS1%aiE%~LXAV|vcC46A1}-VcSf)*&JcXZ_F8hl zZGuj2s_8p)XsWq4@aIEU!~`dOEeuz9linJx&cVZbjgt>KE1O1?EG&xRJIXSFQ?YDA zCR4y$D)6ef8ns>>b0j-NH{IzptN^+9*_l$^aHIBLF=p}Q{Z>cjOKK?+>T3z#$3YgH%2S9;u$)|G)im7#T4e z3g;*FMFf#qyM&tnq)!G%f-8W%;rsA2{egCJv-T~re_^j}mjcBviZd3rRaDIzk#hMIJ&j1G<{l(kCZp7ShrD62pcv_9z~0QX^*#Ax2qFF9xm68bE?@eULm&J zjRo@V8zlACaYiXLrL&@j*bSTT{SHBQV>|h%wDo*9?5MC`xa$hfpor1qDNOkvcs{tf zn#Qqv#XNu&8u*@S=_{f@fKn+$?^{$W)jy!EY|2(X5Z&gR;on;m1}MU&DyFzng{uYi zA4i^Xuj|fr?;(u=ZGN}NDh!j*aE-amgAVi!NZlhpw%{f8vvl2&K?gl8z|!mxlqNGV z6qQGzSU}&yNX;AYLnq+AGZ#QtkGS>gc7pC7rrL0<+9ANp$}#B#Y)2#0pIoW21l=G< zlHi<2hEMvs2Isx=nCcT~^`$5jp@zo1EkK8I!93ip$Q3^1JpckCc8kDIHn=vk z1hqp2fMK1elluP{q}HkaU@{x=F;hm6xL~^70)=IhE<2;@Z@oY3g{Dj(ACBLgDC^R! zm$LScoxC%ZJRDvaA1523S1fX$#zeSZo^0q9V#PT?U=l zqVhq^;Jsp<;hwf%x7zMAN>s2s5hDsgnDP?pdZej!LhY2eG#3=LkEd_n@K;FDZ0vJH^BNCw*tJ?0Xret zbe1mR(4<2Uclp97u|S8hls�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