From dbbb9b34cbf550a1ba6e82711581681d75e253c3 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sun, 31 May 2026 03:00:45 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 31 03:00:45. --- .../20260531/20260531030002-Binary.backup | Bin 0 -> 259191 bytes .../20260531/20260531030002-Config.rsc | 3462 +++++++++++++++++ .../20260531/20260531030002-Diff-Config.rsc | 6 + 3 files changed, 3468 insertions(+) create mode 100644 MikroMaster/20260531/20260531030002-Binary.backup create mode 100644 MikroMaster/20260531/20260531030002-Config.rsc create mode 100644 MikroMaster/history/20260531/20260531030002-Diff-Config.rsc diff --git a/MikroMaster/20260531/20260531030002-Binary.backup b/MikroMaster/20260531/20260531030002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..41b1f472d3ff40e92dc5db4fdca72e48f4a68337 GIT binary patch literal 259191 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
6+tGX{S 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%0AZ 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 E9Zk4;^Z)<= literal 0 HcmV?d00001 diff --git a/MikroMaster/20260531/20260531030002-Config.rsc b/MikroMaster/20260531/20260531030002-Config.rsc new file mode 100644 index 0000000..4bfc499 --- /dev/null +++ b/MikroMaster/20260531/20260531030002-Config.rsc @@ -0,0 +1,3462 @@ +# 2026-05-31 03:00:06 by RouterOS 7.23beta5 +# 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 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 +/interface wireless +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5260/20-Ceee/ac/DP(18dBm), 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/663/fee06fc8\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 02:10:03 30.05.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 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" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes 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 +/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 interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/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 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/20260531/20260531030002-Diff-Config.rsc b/MikroMaster/history/20260531/20260531030002-Diff-Config.rsc new file mode 100644 index 0000000..690394c --- /dev/null +++ b/MikroMaster/history/20260531/20260531030002-Diff-Config.rsc @@ -0,0 +1,6 @@ +3225,3226c3225,3226 +< disabled=yes new-routing-mark=main passthrough=no src-address=\ +< 10.30.30.0/24 src-address-list=NoWG +--- +> new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +> src-address-list=NoWG -- 2.52.0