From 298abf03a438edc7d2c11ebc9a5413f26b346bfa Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 16 May 2026 02:20:41 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 16 02:20:41. --- .../20260516/20260516022001-Binary.backup | Bin 0 -> 245542 bytes .../20260516/20260516022001-Config.rsc | 3412 +++++++++++++++++ .../20260516/20260516022001-Diff-Config.rsc | 4 + 3 files changed, 3416 insertions(+) create mode 100644 MikroMaster/20260516/20260516022001-Binary.backup create mode 100644 MikroMaster/20260516/20260516022001-Config.rsc create mode 100644 MikroMaster/history/20260516/20260516022001-Diff-Config.rsc diff --git a/MikroMaster/20260516/20260516022001-Binary.backup b/MikroMaster/20260516/20260516022001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..3e06881c64c663bf10cf8b7cf6e3caaaa45c9520 GIT binary patch literal 245542 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 aHs@MQQ6x@hjQ~Hvz_u@WCwAp&k7=NU;@3d{ literal 0 HcmV?d00001 diff --git a/MikroMaster/20260516/20260516022001-Config.rsc b/MikroMaster/20260516/20260516022001-Config.rsc new file mode 100644 index 0000000..14f80dd --- /dev/null +++ b/MikroMaster/20260516/20260516022001-Config.rsc @@ -0,0 +1,3412 @@ +# 2026-05-16 02:20:03 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add name=Bridge-LAN +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether3 ] comment=LEN +set [ find default-name=ether4 ] comment=NUC +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1420 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/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/657/b0bd77b1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:15:02 15.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 +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 +/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 interface="ether1 - Unet" list=WAN +/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=10s 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 disabled=yes +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-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address-list=VDSina new-routing-mark=\ + main passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address-list=NoVdsina \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" in-interface=WG \ + new-connection-mark=VPN_No_FastTrack routing-mark=To-VPN +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 log-prefix=VPN-all new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 +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=WG dst-address-list=!NoVdsina \ + log-prefix=WG-nat out-interface=WG +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=masquerade chain=srcnat comment="masquerade Default" ipsec-policy=\ + out,none out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + 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=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment="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 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 +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com +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 +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 +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 +/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 +/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/20260516/20260516022001-Diff-Config.rsc b/MikroMaster/history/20260516/20260516022001-Diff-Config.rsc new file mode 100644 index 0000000..b0c398b --- /dev/null +++ b/MikroMaster/history/20260516/20260516022001-Diff-Config.rsc @@ -0,0 +1,4 @@ +26c26 +< # channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +--- +> # channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding -- 2.52.0