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