From ce2c325a18311d87f4f35c4f1c7c2f5bc08354b6 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 15 May 2026 16:00:33 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 15 16:00:33. --- .../20260515/20260515160002-Binary.backup | Bin 0 -> 242263 bytes .../20260515/20260515160002-Config.rsc | 3407 +++++++++++++++++ .../20260515/20260515160002-Diff-Config.rsc | 4 + 3 files changed, 3411 insertions(+) create mode 100644 MikroMaster/20260515/20260515160002-Binary.backup create mode 100644 MikroMaster/20260515/20260515160002-Config.rsc create mode 100644 MikroMaster/history/20260515/20260515160002-Diff-Config.rsc diff --git a/MikroMaster/20260515/20260515160002-Binary.backup b/MikroMaster/20260515/20260515160002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..8aa0ad529e873a7a12b08840ce1fedc9d7a2bf7a GIT binary patch literal 242263 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

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