From ab4dc3a0733afa3c8faf0d38810ab91656f06fdb Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 8 Jun 2026 08:20:17 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 08 08:20:17. --- .../20260608/20260608082001-Binary.backup | Bin 0 -> 258733 bytes .../20260608/20260608082001-Config.rsc | 3452 +++++++++++++++++ .../20260608/20260608082001-Diff-Config.rsc | 25 + 3 files changed, 3477 insertions(+) create mode 100644 MikroMaster/20260608/20260608082001-Binary.backup create mode 100644 MikroMaster/20260608/20260608082001-Config.rsc create mode 100644 MikroMaster/history/20260608/20260608082001-Diff-Config.rsc diff --git a/MikroMaster/20260608/20260608082001-Binary.backup b/MikroMaster/20260608/20260608082001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..1e4cdb06490dd41df3770e172d8e38169ef4fd9d GIT binary patch literal 258733 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 z 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%0DAiM;j(M|uJE72H7hR+aunYWia<1BUQ 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

Xj>CElD*#?;}V3Dy3d}>K+a^|1#EkFi9D{o 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�OjzCmMjV0!QgECCaJLjHh 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 O8*u)kD5*EXA;?X2LU6wT literal 0 HcmV?d00001 diff --git a/MikroMaster/20260608/20260608082001-Config.rsc b/MikroMaster/20260608/20260608082001-Config.rsc new file mode 100644 index 0000000..150909d --- /dev/null +++ b/MikroMaster/20260608/20260608082001-Config.rsc @@ -0,0 +1,3452 @@ +# 2026-06-08 08:20: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=fddd-pref prefix=fddd:2c4:2c4:2c4::/128 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 +add address=fddd:2c4:2c4:2c4::81/128 advertise=no disabled=yes from-pool=\ + fddd-pref 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 dhcp-option=domain-search-list,HostName ignore-ia-na-bindings=yes \ + interface=Bridge-LAN name=DHCP-v6 prefix-pool=pool10-pref +/ipv6 dhcp-server binding +add address=fddd:2c4:2c4:2c4::1/128 allow-dual-stack-queue=yes duid=\ + 0x00030001488f5a8e1abc ia-type=na iaid=0 prefix-pool=fddd-pref \ + queue-type=default-small 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/20260608082001-Diff-Config.rsc b/MikroMaster/history/20260608/20260608082001-Diff-Config.rsc new file mode 100644 index 0000000..3ac7575 --- /dev/null +++ b/MikroMaster/history/20260608/20260608082001-Diff-Config.rsc @@ -0,0 +1,25 @@ +85c85,86 +< add name=fddd-pref prefix=fddd:2c4:2c4:2c4::/128 prefix-length=128 +--- +> add name=pool10-pref prefix=fd10:30:30::/128 prefix-length=128 +> add from-pool=pool10-pref name=pool10-addr prefix-length=128 +3351,3352c3352,3353 +< add address=fddd:2c4:2c4:2c4::81/128 advertise=no disabled=yes from-pool=\ +< fddd-pref interface=Bridge-LAN +--- +> # address pool error: bad preferred prefix length- requested 64, but pool has 128! (1) +> add from-pool=pool10-net-local interface=Bridge-LAN +3358,3359c3359,3360 +< add dhcp-option=domain-search-list,HostName ignore-ia-na-bindings=yes \ +< interface=Bridge-LAN name=DHCP-v6 prefix-pool=pool10-pref +--- +> add address-pool=pool10-addr dhcp-option=CLIENT_DUID,CLIENT_MAC interface=\ +> Bridge-LAN name=DHCP-v6 prefix-pool=pool10-pref use-reconfigure=yes +3361,3363c3362,3364 +< add address=fddd:2c4:2c4:2c4::1/128 allow-dual-stack-queue=yes duid=\ +< 0x00030001488f5a8e1abc ia-type=na iaid=0 prefix-pool=fddd-pref \ +< queue-type=default-small server=DHCP-v6 +--- +> # Not acquired from pool +> add address=fd10:10:30:30:81::/128 duid=0x00030001488f5a8e1abc iaid=0 \ +> prefix-pool=pool10-addr server=DHCP-v6 -- 2.52.0