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