From bc27615fe1c5490c267c66f39cc88a6ebf178639 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 1 Jun 2026 14:20:39 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 01 14:20:39. --- .../20260601/20260601142002-Binary.backup | Bin 0 -> 259191 bytes .../20260601/20260601142002-Config.rsc | 3462 +++++++++++++++++ .../20260601/20260601142002-Diff-Config.rsc | 8 + 3 files changed, 3470 insertions(+) create mode 100644 MikroMaster/20260601/20260601142002-Binary.backup create mode 100644 MikroMaster/20260601/20260601142002-Config.rsc create mode 100644 MikroMaster/history/20260601/20260601142002-Diff-Config.rsc diff --git a/MikroMaster/20260601/20260601142002-Binary.backup b/MikroMaster/20260601/20260601142002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..569c860d9da54f2bcc9e53ce3ae71e8720b7ccad GIT binary patch literal 259191 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 z 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

OOZ6M*HiB_y4`lbb9t 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�>aP$>6H6~KtgHb6r*3(g#6Gq7IfHBK%k$}1~gP? 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 EsZ1z1LI3~& literal 0 HcmV?d00001 diff --git a/MikroMaster/20260601/20260601142002-Config.rsc b/MikroMaster/20260601/20260601142002-Config.rsc new file mode 100644 index 0000000..8031f64 --- /dev/null +++ b/MikroMaster/20260601/20260601142002-Config.rsc @@ -0,0 +1,3462 @@ +# 2026-06-01 14:20:03 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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes dst-address=!10.30.30.0/24 new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=yes 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/20260601/20260601142002-Diff-Config.rsc b/MikroMaster/history/20260601/20260601142002-Diff-Config.rsc new file mode 100644 index 0000000..4bb7a45 --- /dev/null +++ b/MikroMaster/history/20260601/20260601142002-Diff-Config.rsc @@ -0,0 +1,8 @@ +356c356 +< \n:global CommitId \"main/670/7de640a1\";\r\ +--- +> \n:global CommitId \"main/666/60128ee9\";\r\ +359c359 +< r: root, in 13:30:03 01.06.2026.\";\r\ +--- +> r: root, in 00:45:03 31.05.2026.\";\r\ -- 2.52.0