From 96625f78ba63c57229a6b0c0db6de733cb8fc1b4 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 1 Jun 2026 21:00:16 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 01 21:00:16. --- .../20260601/20260601210002-Binary.backup | Bin 0 -> 259323 bytes .../20260601/20260601210002-Config.rsc | 3461 +++++++++++++++++ .../20260601/20260601210002-Diff-Config.rsc | 28 + 3 files changed, 3489 insertions(+) create mode 100644 MikroMaster/20260601/20260601210002-Binary.backup create mode 100644 MikroMaster/20260601/20260601210002-Config.rsc create mode 100644 MikroMaster/history/20260601/20260601210002-Diff-Config.rsc diff --git a/MikroMaster/20260601/20260601210002-Binary.backup b/MikroMaster/20260601/20260601210002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..b4014fb44ea9e4ef571f599620cc5795ebedc081 GIT binary patch literal 259323 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

&9+xFA;}X+Pcp$thebYR64Rzw%;NDk9kevuD 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 ORR>L8~3lJZk}xKT=%PI&sP$E6>H4F%-_S~rqn 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 glotFEC)8rf=P^vcooO&k{N`4+i3IG5A literal 0 HcmV?d00001 diff --git a/MikroMaster/20260601/20260601210002-Config.rsc b/MikroMaster/20260601/20260601210002-Config.rsc new file mode 100644 index 0000000..098c43d --- /dev/null +++ b/MikroMaster/20260601/20260601210002-Config.rsc @@ -0,0 +1,3461 @@ +# 2026-06-01 21:00:03 by RouterOS 7.23 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface wireless +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1420 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] 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 +/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-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.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" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/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 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/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 verify-doh-cert=yes +/ip dns static +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 comment=AMSTER name=amster.vados.ru 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 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google 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" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=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=NUC 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=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/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-list=WAN 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-list=WAN 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,2222 in-interface-list=WAN 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-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +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 Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +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=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +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 +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=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +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 +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" 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=\ + "Mark Routing main for NoVdsina" 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=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 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" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 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=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN 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" 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 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" 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=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 to-addresses=10.30.30.33 to-ports=22 +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=masquerade chain=srcnat comment=WG 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=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=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=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 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 vrf-interface="ether1 - Unet" +/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 allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no 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 ip-version=ipv4 mode=http +/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 comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple 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="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260601/20260601210002-Diff-Config.rsc b/MikroMaster/history/20260601/20260601210002-Diff-Config.rsc new file mode 100644 index 0000000..511617b --- /dev/null +++ b/MikroMaster/history/20260601/20260601210002-Diff-Config.rsc @@ -0,0 +1,28 @@ +16a17,24 +> /interface l2tp-server +> add comment=Server disabled=yes name=l2tp-in1 user=vados +> /interface l2tp-client +> add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ +> user=vados +> add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ +> vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ +> user=vados +19c27 +< # channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +--- +> # channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +23c31 +< # channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +--- +> # channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +3357,3358c3365,3366 +< add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ +< To-VPN scope=30 target-scope=10 +--- +> add check-gateway="(unknown)" disabled=no distance=1 dst-address=0.0.0.0/0 \ +> gateway=WG routing-table=To-VPN scope=30 target-scope=10 vrf-interface=WG +3384d3391 +< add interface=lo type=internal +3413,3414d3419 +< /system package update +< set ip-version=ipv4 mode=http -- 2.52.0