From 36dd9fd30594d7b903e5ac05f1e6c8778fdb67e9 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 30 May 2026 18:40:39 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 30 18:40:39. --- .../20260530/20260530184002-Binary.backup | Bin 0 -> 259477 bytes .../20260530/20260530184002-Config.rsc | 3462 +++++++++++++++++ .../20260530/20260530184002-Diff-Config.rsc | 6 + 3 files changed, 3468 insertions(+) create mode 100644 MikroMaster/20260530/20260530184002-Binary.backup create mode 100644 MikroMaster/20260530/20260530184002-Config.rsc create mode 100644 MikroMaster/history/20260530/20260530184002-Diff-Config.rsc diff --git a/MikroMaster/20260530/20260530184002-Binary.backup b/MikroMaster/20260530/20260530184002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..7ac17c13e25a035c2524a21e86d245e4aee3cda7 GIT binary patch literal 259477 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

&I61S+aPz7zz+1TXx#k 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

+nFf!dkC(z?tXmhqSESoh)4N0J#}tl1BH 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260530/20260530184002-Config.rsc b/MikroMaster/20260530/20260530184002-Config.rsc new file mode 100644 index 0000000..c1aa585 --- /dev/null +++ b/MikroMaster/20260530/20260530184002-Config.rsc @@ -0,0 +1,3462 @@ +# 2026-05-30 18:40:04 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" \ + 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/20260530/20260530184002-Diff-Config.rsc b/MikroMaster/history/20260530/20260530184002-Diff-Config.rsc new file mode 100644 index 0000000..675b07a --- /dev/null +++ b/MikroMaster/history/20260530/20260530184002-Diff-Config.rsc @@ -0,0 +1,6 @@ +3228,3229c3228,3229 +< 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 +--- +> dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ +> 10.30.30.0/24 src-address-list=!NoWG -- 2.52.0