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