From c695907fa1c3d174849a87fc0179e9d06d0d031a Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 21:40:14 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 21:40:14. --- .../20260602/20260602214001-Binary.backup | Bin 0 -> 259993 bytes .../20260602/20260602214001-Config.rsc | 3453 +++++++++++++++++ .../20260602/20260602214001-Diff-Config.rsc | 20 + 3 files changed, 3473 insertions(+) create mode 100644 MikroMaster/20260602/20260602214001-Binary.backup create mode 100644 MikroMaster/20260602/20260602214001-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602214001-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602214001-Binary.backup b/MikroMaster/20260602/20260602214001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..88889d6ba30a85fee880e34cb3f5329454247508 GIT binary patch literal 259993 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 |{0dcb|7BVps2mjN{PO=( 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

(E#L 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

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