From e5e9b48dc9c0a6c62ad0e538a70eab2e7eaa451b Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 18 May 2026 14:21:00 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 18 14:21:00. --- .../20260518/20260518142002-Binary.backup | Bin 0 -> 251985 bytes .../20260518/20260518142002-Config.rsc | 3445 +++++++++++++++++ .../20260518/20260518142002-Diff-Config.rsc | 8 + 3 files changed, 3453 insertions(+) create mode 100644 MikroMaster/20260518/20260518142002-Binary.backup create mode 100644 MikroMaster/20260518/20260518142002-Config.rsc create mode 100644 MikroMaster/history/20260518/20260518142002-Diff-Config.rsc diff --git a/MikroMaster/20260518/20260518142002-Binary.backup b/MikroMaster/20260518/20260518142002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..aa6d51c3807ad50c87fd5a3f66230ec7e7b8d571 GIT binary patch literal 251985 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 z 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 a5S!YqoS~|a+{UBz1Ya^3vFi!VM3Fy}hLxoN literal 0 HcmV?d00001 diff --git a/MikroMaster/20260518/20260518142002-Config.rsc b/MikroMaster/20260518/20260518142002-Config.rsc new file mode 100644 index 0000000..67ef68a --- /dev/null +++ b/MikroMaster/20260518/20260518142002-Config.rsc @@ -0,0 +1,3445 @@ +# 2026-05-18 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: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1420 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/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=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=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 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=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 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=142.251.1.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 +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + 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 dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +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-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark 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=\ + "!!!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-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +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" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "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="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp 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="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=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=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +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 +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260518/20260518142002-Diff-Config.rsc b/MikroMaster/history/20260518/20260518142002-Diff-Config.rsc new file mode 100644 index 0000000..5be2b41 --- /dev/null +++ b/MikroMaster/history/20260518/20260518142002-Diff-Config.rsc @@ -0,0 +1,8 @@ +356c356 +< \n:global CommitId \"main/659/af48ca83\";\r\ +--- +> \n:global CommitId \"main/657/b0bd77b1\";\r\ +359c359 +< r: root, in 13:30:03 18.05.2026.\";\r\ +--- +> r: root, in 14:15:02 15.05.2026.\";\r\ -- 2.52.0