From 0aa40a3b865237684c59f6a43d82451b0d5909d2 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 17 Jun 2026 03:21:58 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 17 03:21:58. --- .../20260617/20260617032002-Binary.backup | Bin 0 -> 273800 bytes .../20260617/20260617032002-Config.rsc | 3668 +++++++++++++++++ .../20260617/20260617032002-Diff-Config.rsc | 8 + 3 files changed, 3676 insertions(+) create mode 100644 MikroMaster/20260617/20260617032002-Binary.backup create mode 100644 MikroMaster/20260617/20260617032002-Config.rsc create mode 100644 MikroMaster/history/20260617/20260617032002-Diff-Config.rsc diff --git a/MikroMaster/20260617/20260617032002-Binary.backup b/MikroMaster/20260617/20260617032002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..f7e1dbe5513b85a81579f7854702526eb2db34d3 GIT binary patch literal 273800 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 Gd*-`P?1wl2 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260617/20260617032002-Config.rsc b/MikroMaster/20260617/20260617032002-Config.rsc new file mode 100644 index 0000000..6ca65fb --- /dev/null +++ b/MikroMaster/20260617/20260617032002-Config.rsc @@ -0,0 +1,3668 @@ +# 2026-06-17 03:20:04 by RouterOS 7.23.1 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add admin-mac=48:8F:5A:8E:1A:BF auto-mac=no 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 +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1320 name=WG +/interface list +add include=static name=LAN +add name=Internet +add include=Internet name=WAN +/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 +add name=iVados options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-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/694/a1b071a6\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:04 15.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 +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 trusted=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 +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes forward=no \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=static internet-interface-list=WAN \ + lan-interface-list=LAN request-interval=1m wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 109.107.177.79 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=10s public-key=\ + "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + 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:2 dhcp-options=clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 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=iVados 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.4.4,1.0.0.1 verify-doh-cert=yes +/ip dns static +add address=109.107.177.79 name=vds.vados.ru type=A +add comment="Local DNS server for vados.ru" disabled=yes ns=10.30.30.81 \ + regexp=*.vados.ru type=NS +add comment="*.vados.ru Regexp" disabled=yes forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" disabled=yes 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 disabled=yes name=\ + ns.vados.ru.local type=A +add comment="DNS ns.vados.ru.local" disabled=yes 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" disabled=yes 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 disabled=yes 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=wg.vados.ru comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" disabled=yes 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 +add address=wg.vados.ru list=VPN-Server +/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=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=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=udp +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + 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" \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ + 10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" dst-address-list=\ + VPN-Server out-interface="ether1 - Unet" protocol=udp src-port=13231 +add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ + out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=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 src-address-list=VDSina +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related in-interface-list=\ + *2000014 +add action=drop chain=input in-interface=!Bridge-LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" 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" dst-address-list=VPN-Server \ + 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" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina 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 routing-mark=To-VPN +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 new-routing-mark=To-VPN 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=dst-nat chain=dstnat disabled=yes dst-port=44333 in-interface=\ + "ether1 - Unet" protocol=udp src-address=!10.30.30.0/24 to-addresses=\ + 10.30.30.33 to-ports=44333 +add action=masquerade chain=srcnat comment="Default NAT" dst-address=\ + !10.30.30.0/24 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=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG routing-mark=To-VPN src-address-list=!NoWG +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="(unknown)" 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=109.107.177.79 interface=WG type=external +add interface=lo type=internal +add interface=wlan2 type=internal +add interface=wlan1 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 firewall address-list +add address=::/128 comment="defconf: unspecified address" list=bad_ipv6 +add address=::1/128 comment="defconf: lo" list=bad_ipv6 +add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6 +add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6 +add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6 +add address=100::/64 comment="defconf: discard only " list=bad_ipv6 +add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6 +add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6 +add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6 +/ipv6 firewall filter +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=input comment="defconf: accept UDP traceroute" \ + dst-port=33434-33534 protocol=udp +add action=accept chain=input comment=\ + "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\ + udp src-address=fe80::/10 +add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \ + protocol=udp +add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=input comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=input comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +add action=accept chain=forward comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6 +add action=drop chain=forward comment=\ + "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6 +add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \ + hop-limit=equal:1 protocol=icmpv6 +add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=forward comment="defconf: accept HIP" protocol=139 +add action=accept chain=forward comment="defconf: accept IKE" dst-port=\ + 500,4500 protocol=udp +add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=forward comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=forward comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +/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 bfd configuration +add addresses=10.8.0.0/24 disabled=no forbid-bfd=yes interfaces=WG min-rx=\ + 200ms min-tx=200ms multiplier=5 vrf=main +/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="" +add check-certificate=yes comment=\ + "doh, doh-url=https://vds.vados.ru/vds-query, name=vds.vados.ru" \ + disabled=yes down-script="" host=109.107.177.79 http-codes="" name=\ + vds.vados.ru port=443 test-script="" type=https-get up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260617/20260617032002-Diff-Config.rsc b/MikroMaster/history/20260617/20260617032002-Diff-Config.rsc new file mode 100644 index 0000000..c17be4a --- /dev/null +++ b/MikroMaster/history/20260617/20260617032002-Diff-Config.rsc @@ -0,0 +1,8 @@ +361c361 +< \n:global CommitId \"main/694/a1b071a6\";\r\ +--- +> \n:global CommitId \"main/692/cf80d9c2\";\r\ +364c364 +< r: root, in 13:30:04 15.06.2026.\";\r\ +--- +> r: root, in 05:40:03 15.06.2026.\";\r\ -- 2.52.0