From d6699c99b184b995b8511ec77f74c078b4754509 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 26 May 2026 17:40:53 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 26 17:40:53. --- .../20260526/20260526174002-Binary.backup | Bin 0 -> 258924 bytes .../20260526/20260526174002-Config.rsc | 3462 +++++++++++++++++ .../20260526/20260526174002-Diff-Config.rsc | 111 + 3 files changed, 3573 insertions(+) create mode 100644 MikroMaster/20260526/20260526174002-Binary.backup create mode 100644 MikroMaster/20260526/20260526174002-Config.rsc create mode 100644 MikroMaster/history/20260526/20260526174002-Diff-Config.rsc diff --git a/MikroMaster/20260526/20260526174002-Binary.backup b/MikroMaster/20260526/20260526174002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..d3e409ab467c00b85ea13faf07f4317e85b6a645 GIT binary patch literal 258924 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Ð5#$PmdF_FI5~Q+n!)sFSvSvLWTCO%NV*gj}2J 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

    KNx>Uuh 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 z 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260526/20260526174002-Config.rsc b/MikroMaster/20260526/20260526174002-Config.rsc new file mode 100644 index 0000000..8a55301 --- /dev/null +++ b/MikroMaster/20260526/20260526174002-Config.rsc @@ -0,0 +1,3462 @@ +# 2026-05-26 17:40:06 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: 2422/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: 5260/20-Ceee/ac/DP(18dBm), 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=1280 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/661/8d6d2114\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 25.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 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=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=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=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 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=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 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=64.233.164.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 disabled=yes routing-mark=To-VPN +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes 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 out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output 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-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!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 dst-address=\ + !10.30.30.0/24 dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +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 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp 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=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="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +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="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=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 +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add 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/20260526/20260526174002-Diff-Config.rsc b/MikroMaster/history/20260526/20260526174002-Diff-Config.rsc new file mode 100644 index 0000000..0d36f6f --- /dev/null +++ b/MikroMaster/history/20260526/20260526174002-Diff-Config.rsc @@ -0,0 +1,111 @@ +3084,3086d3083 +< add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +< add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +< add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +3092,3094c3089,3090 +< add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +< add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +< add address=172.67.182.196 comment=rutracker.org 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 +3095a3092 +> add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +3106,3107c3103,3104 +< add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +< add address=157.240.205.174 comment=instagram.com 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 +3109,3115c3106,3109 +< add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +< add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +< add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +< add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +< add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +< add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +< add address=64.233.162.105 comment=googleapis.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 +3116a3111 +> add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +3117a3113,3114 +> add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +> add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +3119,3128c3116,3125 +< add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +< add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +< add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +< add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +< add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +< add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +< add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +< add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +< add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +< add address=173.194.221.104 comment=googlevideo.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 +3131c3128 +< add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +--- +> add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +3132a3130,3132 +> add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +> add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +> add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +3155c3155 +< connection-state=established,related,new disabled=yes routing-mark=To-VPN +--- +> connection-state=established,related,new +3163,3164c3163,3164 +< dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ +< src-port=13231 +--- +> dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ +> protocol=udp +3207c3207 +< add action=mark-routing chain=prerouting comment=\ +--- +> add action=mark-connection chain=prerouting comment=\ +3209c3209 +< dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ +--- +> dst-address-list=VDSina new-connection-mark=VPN_No_FastTrack src-address=\ +3212c3212 +< "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ +--- +> "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ +3221,3223c3221,3223 +< add action=mark-routing chain=prerouting comment=FuckRKN dst-address=\ +< !10.30.30.0/24 dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN \ +< passthrough=no src-address=10.30.30.0/24 +--- +> add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ +> dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ +> 10.30.30.0/24 +3227,3229d3226 +< add action=mark-connection chain=prerouting comment=\ +< "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ +< VPN_No_FastTrack +3232a3230,3232 +> add action=mark-connection chain=prerouting comment=\ +> "Mark VPN connections to exclude from FastTrack" disabled=yes \ +> new-connection-mark=VPN_No_FastTrack +3245,3246d3244 +< add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ +< out-interface=WG src-address-list=!NoWG +3248a3247,3248 +> add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ +> out-interface=WG src-address-list=!NoWG -- 2.52.0