From 89c397ad332b53a3319dedb36d9fa5d21d6496e6 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 15 Jun 2026 19:40:37 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 15 19:40:37. --- .../20260615/20260615194001-Binary.backup | Bin 0 -> 269853 bytes .../20260615/20260615194001-Config.rsc | 3604 +++++++++++++++++ .../20260615/20260615194001-Diff-Config.rsc | 145 + 3 files changed, 3749 insertions(+) create mode 100644 MikroMaster/20260615/20260615194001-Binary.backup create mode 100644 MikroMaster/20260615/20260615194001-Config.rsc create mode 100644 MikroMaster/history/20260615/20260615194001-Diff-Config.rsc diff --git a/MikroMaster/20260615/20260615194001-Binary.backup b/MikroMaster/20260615/20260615194001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..11d8df3246f23a88faae13456c02431c9a366109 GIT binary patch literal 269853 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šn`-5bKn-q2R4My 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

G^a8=A1`X5Cav1J~W(tQ9u;Ppt!K%hzx{ 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

>axftnqV+955yESiB+ldF~S_2h(Ak-Yo=HL#mVZ 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�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ⅇ^| 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\"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/692/cf80d9c2\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 05:40:03 15.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" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \n}" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=all internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=Internet +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=WG list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 109.107.177.79 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=10s public-key=\ + "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + dhcp-options=clientid,clientid_duid interface="ether1 - Unet" name=\ + client1 use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 +/ip dns static +add comment="Local DNS server for vados.ru" disabled=yes ns=10.30.30.81 \ + regexp=*.vados.ru type=NS +add comment="*.vados.ru Regexp" disabled=yes forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" disabled=yes forward-to=\ + 10.30.30.81 regexp="\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=\ + FWD +add address=10.30.30.81 comment=NS.vados.ru.local disabled=yes name=\ + ns.vados.ru.local type=A +add comment="DNS ns.vados.ru.local" disabled=yes match-subdomain=yes name=\ + vados.ru ns=ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" 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 disabled=yes 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=wg.vados.ru comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" disabled=yes list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +add address=10.30.30.33 comment="Direct connet to DNS servers" list=\ + Direct-DNS +add address=wg.vados.ru list=VPN-Server +/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="ether1 - Unet" 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="ether1 - Unet" 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 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=udp +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + dst-port=53 in-interface=Bridge-LAN protocol=tcp src-address=\ + 10.30.30.0/24 +add action=accept chain=input comment="udp Accept input DNS queries" \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ + 10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" dst-address-list=\ + VPN-Server out-interface="ether1 - Unet" protocol=udp src-port=13231 +add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ + out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input disabled=yes protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input disabled=yes in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VPN-Server 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" \ + dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina new-routing-mark=\ + To-VPN routing-mark=!main src-address=10.30.30.0/24 src-address-list=\ + !NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack routing-mark=To-VPN +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=udp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=tcp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=dst-nat chain=dstnat disabled=yes dst-port=44333 in-interface=\ + "ether1 - Unet" protocol=udp src-address=!10.30.30.0/24 to-addresses=\ + 10.30.30.33 to-ports=44333 +add action=masquerade chain=srcnat comment="Default NAT" dst-address=\ + !10.30.30.0/24 out-interface="ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG routing-mark=To-VPN src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=none 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 dhcp-client +add add-default-route=yes disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260615/20260615194001-Diff-Config.rsc b/MikroMaster/history/20260615/20260615194001-Diff-Config.rsc new file mode 100644 index 0000000..5f6af4c --- /dev/null +++ b/MikroMaster/history/20260615/20260615194001-Diff-Config.rsc @@ -0,0 +1,145 @@ +20,21d19 +< # managed by CAPsMAN +< # channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +24,25d21 +< # managed by CAPsMAN +< # channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +62a59 +> add dns-servers=10.30.30.81 name=reg.vados.ru verify-doh-cert=no +2569c2566 +< add bridge=Bridge-LAN interface=ether5 +--- +> add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +2571c2568 +< add bridge=Bridge-LAN interface=ether4 +--- +> add bridge=Bridge-LAN interface=ether4 trusted-dhcpv6=yes trusted-ra=yes +2598c2595 +< persistent-keepalive=10s public-key=\ +--- +> persistent-keepalive=20s public-key=\ +2601d2597 +< # +2604,2605c2600 +< CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ +< wlan2,wlan1 lock-to-caps-man=yes +--- +> CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +2613,2614c2608,2610 +< dhcp-options=clientid,clientid_duid interface="ether1 - Unet" name=\ +< client1 use-peer-dns=no use-peer-ntp=no +--- +> default-route-tables=main dhcp-options=clientid,clientid_duid interface=\ +> "ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=no \ +> use-peer-ntp=no +2672a2669,2671 +> /ip dns adlist +> add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +> add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +2674,2676c2673,2675 +< add comment="Local DNS server for vados.ru" disabled=yes ns=10.30.30.81 \ +< regexp=*.vados.ru type=NS +< add comment="*.vados.ru Regexp" disabled=yes forward-to=10.30.30.81 regexp=\ +--- +> add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ +> type=NS +> add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ +2678,2684c2677,2682 +< add comment="*.30.30.10.in-addr.arpa Regexp" disabled=yes forward-to=\ +< 10.30.30.81 regexp="\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=\ +< FWD +< add address=10.30.30.81 comment=NS.vados.ru.local disabled=yes name=\ +< ns.vados.ru.local type=A +< add comment="DNS ns.vados.ru.local" disabled=yes match-subdomain=yes name=\ +< vados.ru ns=ns.vados.ru.local type=NS +--- +> add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ +> "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +> add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ +> type=A +> add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ +> ns.vados.ru.local type=NS +2710,2711c2708 +< add address=195.133.25.16 comment="DNS Comss" disabled=yes name=dns.comss.one \ +< type=A +--- +> add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +2718,2719c2715 +< add address=91.192.189.2 comment=Unet-DNS disabled=yes name=ns1.unet.ws type=\ +< A +--- +> add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +2812,2813c2808,2809 +< add address=wg.vados.ru comment=VDSIna list=TRUSTED +< add address=10.8.0.0/24 comment="WG VDSIna" disabled=yes list=TRUSTED +--- +> add address=89.110.101.17 comment=VDSIna list=TRUSTED +> add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +3279c3275 +< connection-state=established,related,new disabled=yes +--- +> connection-state=established,related,new +3285,3286c3281,3282 +< dst-port=53 in-interface=Bridge-LAN protocol=tcp src-address=\ +< 10.30.30.0/24 +--- +> disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=tcp \ +> src-address=10.30.30.0/24 +3288,3293c3284,3290 +< dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ +< 10.30.30.0/24 +< add action=accept chain=output comment="accept WireGuard" dst-address-list=\ +< VPN-Server out-interface="ether1 - Unet" protocol=udp src-port=13231 +< add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ +< out-interface="ether1 - Unet" protocol=udp +--- +> disabled=yes dst-port=53 in-interface=Bridge-LAN 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 +3320,3321c3317,3318 +< add action=accept chain=input connection-state=established +< add action=accept chain=input connection-state=related +--- +> add action=accept chain=input connection-state=established disabled=yes +> add action=accept chain=input connection-state=related disabled=yes +3330,3331c3327,3328 +< dst-address-list=VPN-Server new-routing-mark=main passthrough=no \ +< src-address=10.30.30.0/24 +--- +> dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ +> 10.30.30.0/24 +3342,3343c3339,3340 +< disabled=yes new-routing-mark=main passthrough=no src-address=\ +< 10.30.30.0/24 src-address-list=NoWG +--- +> new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +> src-address-list=NoWG +3345,3347c3342 +< dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina new-routing-mark=\ +< To-VPN routing-mark=!main src-address=10.30.30.0/24 src-address-list=\ +< !NoWG +--- +> new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +3350c3345 +< VPN_No_FastTrack routing-mark=To-VPN +--- +> VPN_No_FastTrack +3367,3368c3362,3365 +< add action=masquerade chain=srcnat comment="Default NAT" dst-address=\ +< !10.30.30.0/24 out-interface="ether1 - Unet" src-address=10.30.30.0/24 +--- +> 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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ +> out-interface=WG routing-mark=To-VPN src-address-list=!NoWG +3396,3397d3392 +< add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ +< out-interface=WG routing-mark=To-VPN src-address-list=!NoWG +3484c3479 +< add check-gateway=none disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ +--- +> add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ -- 2.52.0