From 3279c07d470d9f830855c0ec54751db28aaac35b Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 8 Jun 2026 04:20:39 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 08 04:20:39. --- .../20260608/20260608042001-Binary.backup | Bin 0 -> 256282 bytes .../20260608/20260608042001-Config.rsc | 3403 +++++++++++++++++ .../20260608/20260608042001-Diff-Config.rsc | 13 + 3 files changed, 3416 insertions(+) create mode 100644 MikroMaster/20260608/20260608042001-Binary.backup create mode 100644 MikroMaster/20260608/20260608042001-Config.rsc create mode 100644 MikroMaster/history/20260608/20260608042001-Diff-Config.rsc diff --git a/MikroMaster/20260608/20260608042001-Binary.backup b/MikroMaster/20260608/20260608042001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..1f51697fce8455fa681ad192883c1dc30c3f02e1 GIT binary patch literal 256282 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

J98 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

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