From 00d2bef75032fe990d2d362de5a2517c0cffac4d Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 8 Jun 2026 08:00:22 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 08 08:00:22. --- .../20260608/20260608080001-Binary.backup | Bin 0 -> 258818 bytes .../20260608/20260608080001-Config.rsc | 3453 +++++++++++++++++ .../20260608/20260608080001-Diff-Config.rsc | 34 + 3 files changed, 3487 insertions(+) create mode 100644 MikroMaster/20260608/20260608080001-Binary.backup create mode 100644 MikroMaster/20260608/20260608080001-Config.rsc create mode 100644 MikroMaster/history/20260608/20260608080001-Diff-Config.rsc diff --git a/MikroMaster/20260608/20260608080001-Binary.backup b/MikroMaster/20260608/20260608080001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..35610a11572ff8a9c7eeb2cd555a0ab5c500268d GIT binary patch literal 258818 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 z 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%0DXj{xl~F*#TC(@H9#+bHCJeNN4gZNSa1mx@kUQHJ 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260608/20260608080001-Config.rsc b/MikroMaster/20260608/20260608080001-Config.rsc new file mode 100644 index 0000000..0baa2c1 --- /dev/null +++ b/MikroMaster/20260608/20260608080001-Config.rsc @@ -0,0 +1,3453 @@ +# 2026-06-08 08:00:02 by RouterOS 7.23.1 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add dhcpv6-agent-circuit-id="\$(INTERFACE):\$(VID)" dhcpv6-agent-remote-id=\ + "\$(BRIDGEMAC)" 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 +add dns-servers=10.30.30.81 name=reg.vados.ru 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 +/ipv6 dhcp-client option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=DUID value=0x00030001488f5a8e1abc +add code=61 name=clientid +/ipv6 dhcp-server option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=CLIENT_DUID +add code=61 name=CLIENT_MAC +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 pool +add name=pool10-pref prefix=fd10:30:30::/128 prefix-length=128 +add from-pool=pool10-pref name=pool10-addr prefix-length=128 +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/672/7cf8bc7a\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:35:04 06.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 trusted-dhcpv6=yes trusted-ra=yes +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 lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set accept-router-advertisements-on=LAN allow-fast-path=no disable-ipv6=yes \ + 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 check-gateway=arp default-route-tables=main dhcp-options=\ + hostname,clientid,clientid_duid interface="ether1 - Unet" name=client1 \ + use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4,10.30.30.81 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +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 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=accept chain=input comment="udp Accept input DNS queries" \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ + 10.30.30.0/24 +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + dst-port=53 in-interface=Bridge-LAN protocol=tcp src-address=\ + 10.30.30.0/24 +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp src-address=!10.30.30.0/24 src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface="ether1 - Unet" protocol=tcp src-address=!10.30.30.0/24 \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=22,8291 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" dst-port=\ + 53 protocol=udp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" dst-port=\ + 53 protocol=tcp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 address +# address pool error: bad preferred prefix length- requested 64, but pool has 128! (1) +add from-pool=pool10-net-local interface=Bridge-LAN +/ipv6 dhcp-client +add accept-prefix-without-address=no dhcp-options=DUID dhcp-options=DUID \ + interface=Bridge-LAN pool-name=pool10-net-local rapid-commit=no request=\ + info +/ipv6 dhcp-server +add address-pool=pool10-addr dhcp-option=CLIENT_DUID,CLIENT_MAC interface=\ + Bridge-LAN name=DHCP-v6 prefix-pool=pool10-pref use-reconfigure=yes +/ipv6 dhcp-server binding +# Not acquired from pool +add address=fd10:10:30:30:81::/128 duid=0x00030001488f5a8e1abc iaid=0 \ + prefix-pool=pool10-addr server=DHCP-v6 +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260608/20260608080001-Diff-Config.rsc b/MikroMaster/history/20260608/20260608080001-Diff-Config.rsc new file mode 100644 index 0000000..9fdfc31 --- /dev/null +++ b/MikroMaster/history/20260608/20260608080001-Diff-Config.rsc @@ -0,0 +1,34 @@ +8c8,9 +< "\$(BRIDGEMAC)" name=Bridge-LAN port-cost-mode=short ra-guard=yes +--- +> "\$(BRIDGEMAC)" dhcpv6-snooping=yes name=Bridge-LAN port-cost-mode=short \ +> ra-guard=yes +85,86c86 +< add name=pool10-pref prefix=fd10:30:30::/128 prefix-length=128 +< add from-pool=pool10-pref name=pool10-addr prefix-length=128 +--- +> add name=pool10-net-local prefix=fd10:30:30::/64 prefix-length=64 +3352d3351 +< # address pool error: bad preferred prefix length- requested 64, but pool has 128! (1) +3359,3364c3358,3359 +< add address-pool=pool10-addr dhcp-option=CLIENT_DUID,CLIENT_MAC interface=\ +< Bridge-LAN name=DHCP-v6 prefix-pool=pool10-pref use-reconfigure=yes +< /ipv6 dhcp-server binding +< # Not acquired from pool +< add address=fd10:10:30:30:81::/128 duid=0x00030001488f5a8e1abc iaid=0 \ +< prefix-pool=pool10-addr server=DHCP-v6 +--- +> add address-pool=pool10-net-local interface=Bridge-LAN name=DHCP-v6 \ +> use-reconfigure=yes +3366,3367c3361 +< set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ +< managed-address-configuration=yes other-configuration=yes pref64=::/64 +--- +> set [ find default=yes ] advertise-dns=yes interface=Bridge-LAN +3369c3363 +< add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +--- +> add dhcp6-pd-preferred=yes interface=Bridge-LAN prefix=none +3372,3373d3365 +< /ipv6 nd proxy +< add disabled=yes interface=lo -- 2.52.0