From 3fc7d885638cb7191c611f8c6d2a26c80d5a5655 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 6 Jun 2026 15:40:31 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 06 15:40:31. --- .../20260606/20260606154002-Binary.backup | Bin 0 -> 253576 bytes .../20260606/20260606154002-Config.rsc | 3391 +++++++++++++++++ .../20260606/20260606154002-Diff-Config.rsc | 9 + 3 files changed, 3400 insertions(+) create mode 100644 MikroMaster/20260606/20260606154002-Binary.backup create mode 100644 MikroMaster/20260606/20260606154002-Config.rsc create mode 100644 MikroMaster/history/20260606/20260606154002-Diff-Config.rsc diff --git a/MikroMaster/20260606/20260606154002-Binary.backup b/MikroMaster/20260606/20260606154002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..e96e7c4a2707f0015b65ab4bd07dc95a8a6f7027 GIT binary patch literal 253576 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π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

!3P}aQKvFFeO9(TlN-;(^PYOE)64Fzz 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 =59f0HA*}kURSj5Ds7l64F2xh}+zd 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 F3>-iFx~c#G literal 0 HcmV?d00001 diff --git a/MikroMaster/20260606/20260606154002-Config.rsc b/MikroMaster/20260606/20260606154002-Config.rsc new file mode 100644 index 0000000..6519ca8 --- /dev/null +++ b/MikroMaster/20260606/20260606154002-Config.rsc @@ -0,0 +1,3391 @@ +# 2026-06-06 15:40:03 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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.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 +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main interface="ether1 - Unet" name=client1 \ + use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 mdns-repeat-ifaces="ether1 - Unet" servers=\ + 8.8.4.4,8.8.8.8 +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp +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 +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 +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=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=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" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 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" 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/20260606/20260606154002-Diff-Config.rsc b/MikroMaster/history/20260606/20260606154002-Diff-Config.rsc new file mode 100644 index 0000000..66d38d7 --- /dev/null +++ b/MikroMaster/history/20260606/20260606154002-Diff-Config.rsc @@ -0,0 +1,9 @@ +3163,3165c3163 +< "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ +< protocol=tcp src-address=10.30.30.0/24 to-ports=53 +< add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ +--- +> "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ +3166a3165,3166 +> add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ +> 10.30.30.0/24 to-ports=53 -- 2.52.0