From 91445ec51e861bd37058194d06f2fc29d5886b00 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 8 Jun 2026 04:00:46 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 08 04:00:46. --- .../20260608/20260608040002-Binary.backup | Bin 0 -> 255991 bytes .../20260608/20260608040002-Config.rsc | 3400 +++++++++++++++++ .../20260608/20260608040002-Diff-Config.rsc | 31 + 3 files changed, 3431 insertions(+) create mode 100644 MikroMaster/20260608/20260608040002-Binary.backup create mode 100644 MikroMaster/20260608/20260608040002-Config.rsc create mode 100644 MikroMaster/history/20260608/20260608040002-Diff-Config.rsc diff --git a/MikroMaster/20260608/20260608040002-Binary.backup b/MikroMaster/20260608/20260608040002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..f4d0fec025f82e8e418166a4d076dad1e6aaff2a GIT binary patch literal 255991 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 QK00dx-dKLtx_=*~ni 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

P#$jh(;lcOP#QLDulZiM^Zjtx=q$m8P^=esY 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260608/20260608040002-Config.rsc b/MikroMaster/20260608/20260608040002-Config.rsc new file mode 100644 index 0000000..17b2d20 --- /dev/null +++ b/MikroMaster/20260608/20260608040002-Config.rsc @@ -0,0 +1,3400 @@ +# 2026-06-08 04:00:04 by RouterOS 7.23.1 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add name=Bridge-LAN port-cost-mode=short ra-guard=yes +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" loop-protect=off name=\ + "ether1 - Unet" rx-flow-control=auto tx-flow-control=auto +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface wireless +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add disabled=yes listen-port=55982 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys 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/672/7cf8bc7a\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:35:04 06.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set accept-router-advertisements-on=LAN allow-fast-path=no disable-ipv6=yes \ + disable-link-local-address=yes forward=no max-neighbor-entries=8192 \ + multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main interface="ether1 - Unet" name=client1 \ + use-peer-dns=no use-peer-ntp=no +/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 mdns-repeat-ifaces="ether1 - Unet" servers=\ + 8.8.4.4,8.8.8.8 +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +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 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.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" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one 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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +/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="ether1 - Unet" protocol=\ + udp src-address=!10.30.30.0/24 +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="ether1 - Unet" protocol=tcp src-address=!10.30.30.0/24 +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 \ + in-interface="ether1 - Unet" 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="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +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 WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +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=input dst-address=10.30.30.81 dst-port=53 \ + in-interface=Bridge-LAN protocol=tcp src-address=10.30.30.0/24 +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 in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +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=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 +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes 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 in-interface=\ + Bridge-LAN protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 in-interface=Bridge-LAN \ + protocol=udp src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=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=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=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN 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 forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set 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 package update +set check-certificate=yes-without-crl +/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 certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get 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="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260608/20260608040002-Diff-Config.rsc b/MikroMaster/history/20260608/20260608040002-Diff-Config.rsc new file mode 100644 index 0000000..cb92ead --- /dev/null +++ b/MikroMaster/history/20260608/20260608040002-Diff-Config.rsc @@ -0,0 +1,31 @@ +2410d2409 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2413d2411 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2416,2417c2414 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +< set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +--- +> set discover-interface-list=LAN +2419d2415 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2422,2425c2418,2419 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +< set accept-router-advertisements-on=LAN allow-fast-path=no disable-ipv6=yes \ +< disable-link-local-address=yes forward=no max-neighbor-entries=8192 \ +< multipath-hash-policy=l4 +--- +> set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ +> forward=no max-neighbor-entries=8192 multipath-hash-policy=l4 +3078a3073,3074 +> add action=accept chain=input dst-address=10.30.30.81 dst-port=53 \ +> in-interface=Bridge-LAN protocol=tcp src-address=10.30.30.0/24 +3115,3116d3110 +< add action=accept chain=input dst-address=10.30.30.81 dst-port=53 \ +< in-interface=Bridge-LAN protocol=tcp src-address=10.30.30.0/24 +3216,3217c3210,3211 +< add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ +< in-interface-list=WAN src-address-list=Trusted-DNS +--- +> add action=accept chain=prerouting comment="Trusted DNS" in-interface-list=\ +> WAN src-address-list=Trusted-DNS -- 2.52.0