From 9a79f1fc4f3bbc052820363abeab21fe450b5aa6 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 12:00:32 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 12 12:00:32. --- .../20260612/20260612120002-Binary.backup | Bin 0 -> 271436 bytes .../20260612/20260612120002-Config.rsc | 3600 +++++++++++++++++ MikroMaster/20260612/wg-dashboard.ini | 62 + .../20260612/20260612120002-Diff-Config.rsc | 17 + 4 files changed, 3679 insertions(+) create mode 100644 MikroMaster/20260612/20260612120002-Binary.backup create mode 100644 MikroMaster/20260612/20260612120002-Config.rsc create mode 100644 MikroMaster/20260612/wg-dashboard.ini create mode 100644 MikroMaster/history/20260612/20260612120002-Diff-Config.rsc diff --git a/MikroMaster/20260612/20260612120002-Binary.backup b/MikroMaster/20260612/20260612120002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..9e8454a8ea3709688684f892b3f32db886e5641a GIT binary patch literal 271436 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Ôl1nOl{xnSy{ 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 z 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%0DGX>6 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 ii!athK>3_C5KMUR--+^1ZBKXr literal 0 HcmV?d00001 diff --git a/MikroMaster/20260612/20260612120002-Config.rsc b/MikroMaster/20260612/20260612120002-Config.rsc new file mode 100644 index 0000000..0fb464a --- /dev/null +++ b/MikroMaster/20260612/20260612120002-Config.rsc @@ -0,0 +1,3600 @@ +# 2026-06-12 12:00:03 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/680/f2c803f5\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 21:20:03 11.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 +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 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=0.0.0.0/0 client-address=10.8.0.1/24 \ + client-allowed-address=0.0.0.0/0 client-dns=8.8.8.8 client-endpoint=\ + 146.120.64.211 client-keepalive=10s endpoint-address=10.8.0.2 \ + endpoint-port=29185 interface=WG name=GitHub persistent-keepalive=10s \ + public-key="HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" +/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/24 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 add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=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 dst-port=29185 in-interface="ether1 - Unet" \ + protocol=tcp +add action=accept chain=input dst-port=29185 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/20260612/wg-dashboard.ini b/MikroMaster/20260612/wg-dashboard.ini new file mode 100644 index 0000000..c825435 --- /dev/null +++ b/MikroMaster/20260612/wg-dashboard.ini @@ -0,0 +1,62 @@ +[Account] +username = vados +password = $2b$12$Vzyn74A/IdajRLNhsYcS1uLF9j5sBkRQ3IAdFbsFqOLqqZ0GM5zBO +enable_totp = false +totp_verified = true +totp_key = GVYZE32T4H76Z5TXKZHECFIQI5N7LE2N + +[Server] +wg_conf_path = /etc/wireguard +awg_conf_path = /etc/amnezia/amneziawg +app_prefix = +app_ip = 127.0.0.1 +app_port = 10086 +auth_req = true +version = v4.3.3 +dashboard_refresh_interval = 60000 +dashboard_peer_list_display = grid +dashboard_sort = status +dashboard_theme = dark +dashboard_api_key = false +dashboard_language = en-US + +[Peers] +peer_global_dns = 1.1.1.1 +peer_endpoint_allowed_ip = 0.0.0.0/0 +peer_display_mode = grid +remote_endpoint = 10.30.30.33 +peer_mtu = 1420 +peer_keep_alive = 21 + +[Other] +welcome_session = false + +[Database] +type = sqlite +host = +port = +username = +password = + +[Email] +server = +port = +encryption = +username = +email_password = +authentication_required = true +send_from = +email_template = + +[OIDC] +admin_enable = false +client_enable = false + +[Clients] +enable = true +sign_up = true + +[WireGuardConfiguration] +autostart = GUESTS||LANP2P||MEMBERS||wg0 +peer_tracking = false + diff --git a/MikroMaster/history/20260612/20260612120002-Diff-Config.rsc b/MikroMaster/history/20260612/20260612120002-Diff-Config.rsc new file mode 100644 index 0000000..d671b57 --- /dev/null +++ b/MikroMaster/history/20260612/20260612120002-Diff-Config.rsc @@ -0,0 +1,17 @@ +2598,2600c2598,2600 +< 146.120.64.211 client-keepalive=10s endpoint-address=10.8.0.2 \ +< endpoint-port=29185 interface=WG name=GitHub persistent-keepalive=10s \ +< public-key="HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" +--- +> 146.120.64.211 client-keepalive=10s interface=WG name=GitHub \ +> persistent-keepalive=10s public-key=\ +> "HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" responder=yes +2611,2614c2611,2613 +< add add-default-route=special-classless default-route-distance=2 \ +< default-route-tables=main dhcp-options=clientid,clientid_duid interface=\ +< "ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=no \ +< use-peer-ntp=no +--- +> 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 -- 2.52.0