From 573daa6a75a5c91dd121c17d4e28007d2d2c052f Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 15 May 2026 11:00:17 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 15 11:00:17. --- .../20260515/20260515110002-Binary.backup | Bin 0 -> 257724 bytes .../20260515/20260515110002-Config.rsc | 3684 +++++++++++++++++ .../20260515/20260515110002-Diff-Config.rsc | 91 + 3 files changed, 3775 insertions(+) create mode 100644 MikroMaster/20260515/20260515110002-Binary.backup create mode 100644 MikroMaster/20260515/20260515110002-Config.rsc create mode 100644 MikroMaster/history/20260515/20260515110002-Diff-Config.rsc diff --git a/MikroMaster/20260515/20260515110002-Binary.backup b/MikroMaster/20260515/20260515110002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..5ee317797ef7bff446af25d181ec6b878b162825 GIT binary patch literal 257724 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 z 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260515/20260515110002-Config.rsc b/MikroMaster/20260515/20260515110002-Config.rsc new file mode 100644 index 0000000..faa4fbf --- /dev/null +++ b/MikroMaster/20260515/20260515110002-Config.rsc @@ -0,0 +1,3684 @@ +# 2026-05-15 11:00:03 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add name=Bridge-LAN +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether3 ] comment=LEN +set [ find default-name=ether4 ] comment=NUC +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1280 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/639/8da4c517\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 10:55:02 15.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\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="Download custom Certificates By Routers Identity " \ + dont-require-permissions=no name=mod/AM-Certs-By-Ident owner=\ + mod/AM-Certs-By-Ident policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Certs-By-Ident\r\ + \n# Script comment: Download custom Certificates By Routers Identity \r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n#\r\ + \n# CloudFlare\r\ + \n#/tool/fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalR\ + ootCA.crt.pem;\r\ + \n#/certificate/import file-name=DigiCertGlobalRootCA.crt.pem passphrase=\ + \"\";\r\ + \n#/tool/ fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobal\ + G2TLSRSASHA2562020CA1-1.crt.pem;\r\ + \n#/certificate/import file-name=DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt\ + .pem passphrase=\"\";\r\ + \n# Quad9\r\ + \n#/tool/fetch mode=https url=\"https://cacerts.digicert.com/DigiCertGloba\ + lG3TLSECCSHA3842020CA1-1.crt.pem\"\r\ + \n#/certificate/import file-name=DigiCertGlobalG3TLSECCSHA3842020CA1-1.crt\ + .pem passphrase=\"\";\r\ + \n\r\ + \n:global GlobalScriptsUrl;\r\ + \n:local UrlSuffix [/system/identity/get name];\r\ + \n:local UrlDir \"certs/\";\r\ + \n:local CertUrl (\$GlobalScriptsUrl . \$UrlDir . \$UrlSuffix .\"/\");\r\ + \n\r\ + \n:log error \$CertUrl;\r\ + \n\r\ + \n:local CertName \"DigiCert-Global-Root-CA.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Global-Root-CA\" [ find where common-na\ + me=\"DigiCert Global Root CA\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Assured-ID-Root-CA.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Assured-ID-Root-CA\" [ find where commo\ + n-name=\"DigiCert Assured ID Root CA\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Assured-ID-Root-G2.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Assured-ID-Root-G2\" [ find where commo\ + n-name=\"DigiCert Assured ID Root G3\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Assured-ID-Root-G3.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Assured-ID-Root-G3\" [ find where commo\ + n-name=\"DigiCert Assured ID Root G3\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Global-G2-TLS-RSA-SHA256-2020-CA1.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Global-G2-TLS-RSA-SHA256-2020-CA1\" [ f\ + ind where common-name=\"DigiCert Global G2 TLS RSA SHA256 2020 CA1\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Global-G3-TLS-ECC-SHA384-2020-CA1.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Global-G3-TLS-ECC-SHA384-2020-CA1\" [ f\ + ind where common-name=\"DigiCert Global G3 TLS ECC SHA384 2020 CA1\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Global-Root-G2.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Global-Root-G2\" [ find where common-na\ + me=\"DigiCert Global Root G2\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Global-Root-G3.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Global-Root-G3\" [ find where common-na\ + me=\"DigiCert Global Root G3\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-TLS-ECC-P384-Root-G5.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-TLS-ECC-P384-Root-G5\" [ find where com\ + mon-name=\"DigiCert TLS ECC P384 Root G5\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-TLS-RSA4096-Root-G5.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-TLS-RSA4096-Root-G5\" [ find where comm\ + on-name=\"DigiCert TLS RSA4096 Root G5\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Trusted-Root-G4.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Trusted-Root-G4\" [ find where common-n\ + ame=\"DigiCert Trusted Root G4\" ];\r\ + \n\r\ + \n:set CertName \"GTS-Root-R4.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"GTS-Root-R4\" [ find where common-name=\"GTS Roo\ + t R4\" ];\r\ + \n\r\ + \n:set CertName \"Go-Daddy-Root-Certificate-Authority-G2.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"Go-Daddy-Root-Certificate-Authority-G2\" [ find \ + where common-name=\"Go Daddy Root Certificate Authority - G2\" ];\r\ + \n\r\ + \n:set CertName \"ISRG-Root-X1.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"ISRG-Root-X1\" [ find where common-name=\"ISRG R\ + oot X1\" ];\r\ + \n\r\ + \n:set CertName \"Root-YE.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"Root-YE\" [ find where common-name=\"Root YE\" ]\ + ;\r\ + \n\r\ + \n:set CertName \"Starfield-Root-Certificate-Authority-G2.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"Starfield-Root-Certificate-Authority-G2\" [ find\ + \_where common-name=\"Starfield Root Certificate Authority - G2\" ];\r\ + \n\r\ + \n:set CertName \"USERTrust-RSA-Certification-Authority.pem\";\r\ + \n/tool/fetch mode=https url=(\$CertUrl . \$CertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"USERTrust-RSA-Certification-Authority\" [ find w\ + here common-name=\"USERTrust RSA Certification Authority\" ];\r\ + \n\r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"GTS-Root-RX.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#internet\r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"ISRG-Root-X2.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n\r\ + \n\r\ + \n#/ip/dns/set allow-remote-requests=yes doh-max-concurrent-queries=100 do\ + h-max-server-connections=20 use-doh-server=https://security.cloudflare-dns\ + .com/dns-query verify-doh-cert=yes;\r\ + \n#/ip/dns/static remove [find where address=1.1.1.1];\r\ + \n#/ip/dns/static add address=1.1.1.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 1\";\r\ + \n#/ip/dns/ static remove [find where address=1.0.0.1];\r\ + \n#/ip/dns/static add address=1.0.0.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 2\"\r\ + \n#/ip dns static add address=2606:4700:4700::1111 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip dns static add address=2606:4700:4700::1001 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip/dns set servers=\"1.0.0.1, 8.8.4.4\";\r\ + \n#/ip/dns set servers=\"\";" +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 \"kasparov.ru\"\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 \"telegram.me\"\r\ + \n \"fbcd.net\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"twimg.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"ggpht.com\"\r\ + \n \"youtu.be\"\r\ + \n \"ytimg.com\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\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 :resolve \$aItem;\r\ + \n } on-error={\r\ + \n :log error \"dns resolve failure [ ip - 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=\$n\ + ewAddress comment=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list: \$newAddress\ + \";\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 :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 /ip firewall address-list add list=\$ListRKN address\ + =[/ip dns cache all get \$aRecord data] comment=\$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: \$newAddr\ + ess\";\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:20: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 5s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 +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 +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add interface="ether1 - Unet" list=WAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=91.192.189.2 comment=Unet-DNS disabled=yes name=ns1.unet.ws type=\ + A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=91.192.189.2 comment=Unet-DNS disabled=yes name=ns1.unet.ws 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=10.30.30.100-255 list=KIDS +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 +add address=157.240.247.174 list=Instagram +add address=46.53.178.107 list=Instagram +add address=179.60.195.174 list=Instagram +add address=157.240.205.174 list=Instagram +add address=31.13.24.0/21 list=Instagram +add address=31.13.64.0/18 list=Instagram +add address=45.64.40.0/22 list=Instagram +add address=66.220.144.0/20 list=Instagram +add address=69.63.176.0/20 list=Instagram +add address=69.171.224.0/19 list=Instagram +add address=74.119.76.0/22 list=Instagram +add address=103.4.96.0/22 list=Instagram +add address=129.134.0.0/16 list=Instagram +add address=157.240.0.0/16 list=Instagram +add address=173.252.64.0/18 list=Instagram +add address=179.60.192.0/22 list=Instagram +add address=185.60.216.0/22 list=Instagram +add address=204.15.20.0/22 list=Instagram +add address=157.240.200.63 list=Instagram +add address=185.60.219.63 list=Instagram +add address=129.134.31.12 list=Instagram +add address=66.81.203.132 list=Instagram +add address=185.89.218.12 list=Instagram +add address=31.13.66.63 list=Instagram +add address=84.15.65.162 list=Instagram +add address=68.66.224.28 list=Instagram +add address=157.240.253.63 list=Instagram +add address=83.174.11.224 list=Instagram +add address=157.240.9.52 list=Instagram +add address=157.240.252.174 list=Instagram +add address=157.240.195.63 list=Instagram +add address=31.13.71.52 list=Instagram +add address=57.144.110.192 list=Instagram +add address=157.240.252.17 list=Instagram +add address=84.15.66.97 list=Instagram +add address=217.168.6.33 list=Instagram +add address=31.13.83.52 list=Instagram +add address=157.240.241.63 list=Instagram +add address=129.134.30.12 list=Instagram +add address=185.89.219.12 list=Instagram +add address=157.240.252.10 list=Instagram +add address=157.240.201.63 list=Instagram +add address=66.81.203.197 list=Instagram +add address=179.60.195.52 list=Instagram +add address=66.81.203.7 list=Instagram +add address=216.40.34.41 list=Instagram +add address=157.240.202.63 list=Instagram +add address=157.240.229.63 list=Instagram +add address=157.240.252.63 list=Instagram +add address=31.13.72.53 list=Instagram +add address=124.108.16.224 list=Instagram +add address=157.240.205.63 list=Instagram +add address=92.46.37.96 list=Instagram +add address=157.240.247.63 list=Instagram +add address=157.240.234.63 list=Instagram +add address=157.240.235.63 list=Instagram +add address=87.245.208.97 list=Instagram +add address=216.58.192.0/19 list=Instagram +add address=209.85.128.0/17 list=Instagram +add address=198.105.240.0/20 list=Instagram +add address=173.194.0.0/16 list=Instagram +add address=172.217.0.0/16 list=Instagram +add address=142.250.0.0/15 list=Instagram +add address=108.177.0.0/17 list=Instagram +add address=87.245.197.140 list=Instagram +add address=74.125.0.0/16 list=Instagram +add address=64.233.160.0/19 list=Instagram +add address=157.240.0.1 list=Instagram +add address=157.240.238.63 list=Instagram +add address=157.240.238.174 list=Instagram +add address=157.240.0.63 list=Instagram +add address=157.240.224.63 list=Instagram +add address=157.240.224.174 list=Instagram +add address=157.240.251.36 list=Instagram +add address=157.240.253.12 list=Instagram +add address=157.240.253.35 list=Instagram +add address=157.240.238.13 list=Instagram +add address=157.240.238.56 list=Instagram +add address=157.240.238.175 list=Instagram +add address=57.144.112.141 list=Instagram +add address=157.240.251.60 list=Instagram +add address=157.240.251.128 list=Instagram +add address=157.240.238.5 list=Instagram +add address=157.240.253.13 list=Instagram +add address=157.240.253.5 list=Instagram +add address=157.240.238.2 list=Instagram +add address=157.240.238.37 list=Instagram +add address=157.240.251.5 list=Instagram +add address=157.240.251.34 list=Instagram +add address=57.144.112.1 list=Instagram +add address=157.240.238.54 list=Instagram +add address=129.134.26.123 list=Instagram +add address=157.240.252.3 list=Instagram +add address=31.13.84.4 list=Instagram +add address=157.240.224.12 list=Instagram +add address=157.240.238.4 list=Instagram +add address=157.240.0.13 list=Instagram +add address=3.33.139.32 list=Instagram +add address=157.240.0.35 list=Instagram +add address=157.240.238.14 list=Instagram +add address=157.240.238.60 list=Instagram +add address=57.144.112.145 list=Instagram +add address=157.240.251.35 list=Instagram +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test +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=iCloud-Mail +add address=smtp.mail.me.com.akadns.net comment=smtp.mail.me.com.akadns.net \ + list=iCloud-Mail +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=Trusted-VPN +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!!!" disabled=yes 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=Trusted-VPN +add address=vdsina.ru comment=VDSina-vpn list=Trusted-VPN +add address=ns.vados.ru comment=VDSina-vpn list=Trusted-VPN +add address=vdsina.com comment=VDSina-vpn list=Trusted-VPN +add address=cp.vdsina.ru comment=VDSina-vpn list=Trusted-VPN +add address=ns1.vdsina.ru comment=VDSina-vpn list=Trusted-VPN +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=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=8.47.69.6 comment=dou.ua list=RKN-dnsLookup +add address=8.6.112.6 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=172.66.0.227 comment=twitter.com list=RKN-dnsLookup +add address=173.194.221.136 comment=youtube.com list=RKN-dnsLookup +add address=173.194.221.190 comment=youtube.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtube.com list=RKN-dnsLookup +add address=173.194.221.91 comment=youtube.com list=RKN-dnsLookup +add address=142.250.150.106 comment=googleapis.com list=RKN-dnsLookup +add address=142.250.150.104 comment=googleapis.com list=RKN-dnsLookup +add address=142.250.150.105 comment=googleapis.com list=RKN-dnsLookup +add address=142.250.150.99 comment=googleapis.com list=RKN-dnsLookup +add address=142.250.150.147 comment=googleapis.com list=RKN-dnsLookup +add address=142.250.150.103 comment=googleapis.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtu.be list=RKN-dnsLookup +add address=209.85.233.190 comment=youtu.be list=RKN-dnsLookup +add address=209.85.233.136 comment=youtu.be list=RKN-dnsLookup +add address=209.85.233.93 comment=youtu.be list=RKN-dnsLookup +add address=64.233.164.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.103 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.106 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.105 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.164.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.73.120 comment=gstatic.com list=RKN-dnsLookup +add address=173.194.73.94 comment=gstatic.com list=RKN-dnsLookup +add address=108.177.14.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address=!10.30.30.0/24 src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address=!10.30.30.0/24 \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address=!10.30.30.0/24 src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" disabled=yes dst-port=123 \ + in-interface-list=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 dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" in-interface=WG \ + new-connection-mark=VPN_No_FastTrack +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address-list=NoVdsina \ + new-routing-mark=main src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Test sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=YouTube dst-address-list=\ + YouTube new-routing-mark=To-VPN 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=!Trusted-VPN log-prefix=\ + VPN-all new-routing-mark=To-VPN src-address=10.30.30.0/24 +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=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ + src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" ipsec-policy=\ + out,none out-interface="ether1 - Unet" routing-mark=!To-VPN +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + log-prefix=WG-nat out-interface=WG +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + in-interface="ether1 - Unet" log-prefix=2Amster protocol=tcp \ + routing-mark=!To-VPN to-addresses=10.30.30.33 to-ports=443 +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="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp routing-mark=\ + !To-VPN to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="vk.com raw" \ + content=vk.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="ok.ru raw" \ + content=ok.ru +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "comp-lenta.ru raw" content=comp-lenta.ru +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 +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="gov.ru raw" \ + content=gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "r78.fssp.gov.ru raw" content=r78.fssp.gov.ru +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 +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=3 dst-address=192.168.0.0/24 gateway=l2tp-vpn +add disabled=no distance=4 dst-address=192.168.5.0/24 gateway=l2tp-vpn +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set graphs-plain=no rest-plain=no webfig-plain=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" interval=20m name=AM-RKN-dnsLookup \ + on-event="/system/script { run AM-RKN-dnsLookup; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260515/20260515110002-Diff-Config.rsc b/MikroMaster/history/20260515/20260515110002-Diff-Config.rsc new file mode 100644 index 0000000..6f9ddef --- /dev/null +++ b/MikroMaster/history/20260515/20260515110002-Diff-Config.rsc @@ -0,0 +1,91 @@ +348c348 +< \n:global CommitId \"main/639/8da4c517\";\r\ +--- +> \n:global CommitId \"main/636/1e86a8d7\";\r\ +351c351 +< r: root, in 10:55:02 15.05.2026.\";\r\ +--- +> r: root, in 09:15:03 15.05.2026.\";\r\ +2474,2488d2473 +< \n \"fbcd.net\"\r\ +< \n \"facebook.com\"\r\ +< \n \"instagram.com\"\r\ +< \n \"twimg.com\"\r\ +< \n \"x.com\"\r\ +< \n \"twitter.com\"\r\ +< \n \"youtube.com\"\r\ +< \n \"googleapis.com\"\r\ +< \n \"ggpht.com\"\r\ +< \n \"youtu.be\"\r\ +< \n \"ytimg.com\"\r\ +< \n \"googlevideo.com\"\r\ +< \n \"gstatic.com\"\r\ +< \n \"googleusercontent.com\"\r\ +< \n \"nhacmp3youtube.com\"\r\ +2533,2535d2517 +< \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\ +2907a2890,2891 +> add address=facebook.com list=facebook +> add address=fbcd.net list=facebook +3342,3343c3326,3327 +< add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +< add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +--- +> add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +> add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +3347,3348c3331,3332 +< add address=8.47.69.6 comment=dou.ua list=RKN-dnsLookup +< add address=8.6.112.6 comment=dou.ua list=RKN-dnsLookup +--- +> add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +> add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +3356,3383d3339 +< add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +< add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +< add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +< add address=172.66.0.227 comment=twitter.com list=RKN-dnsLookup +< add address=173.194.221.136 comment=youtube.com list=RKN-dnsLookup +< add address=173.194.221.190 comment=youtube.com list=RKN-dnsLookup +< add address=173.194.221.93 comment=youtube.com list=RKN-dnsLookup +< add address=173.194.221.91 comment=youtube.com list=RKN-dnsLookup +< add address=142.250.150.106 comment=googleapis.com list=RKN-dnsLookup +< add address=142.250.150.104 comment=googleapis.com list=RKN-dnsLookup +< add address=142.250.150.105 comment=googleapis.com list=RKN-dnsLookup +< add address=142.250.150.99 comment=googleapis.com list=RKN-dnsLookup +< add address=142.250.150.147 comment=googleapis.com list=RKN-dnsLookup +< add address=142.250.150.103 comment=googleapis.com list=RKN-dnsLookup +< add address=209.85.233.91 comment=youtu.be list=RKN-dnsLookup +< add address=209.85.233.190 comment=youtu.be list=RKN-dnsLookup +< add address=209.85.233.136 comment=youtu.be list=RKN-dnsLookup +< add address=209.85.233.93 comment=youtu.be list=RKN-dnsLookup +< add address=64.233.164.104 comment=googlevideo.com list=RKN-dnsLookup +< add address=64.233.164.103 comment=googlevideo.com list=RKN-dnsLookup +< add address=64.233.164.106 comment=googlevideo.com list=RKN-dnsLookup +< add address=64.233.164.99 comment=googlevideo.com list=RKN-dnsLookup +< add address=64.233.164.105 comment=googlevideo.com list=RKN-dnsLookup +< add address=64.233.164.147 comment=googlevideo.com list=RKN-dnsLookup +< add address=173.194.73.120 comment=gstatic.com list=RKN-dnsLookup +< add address=173.194.73.94 comment=gstatic.com list=RKN-dnsLookup +< add address=108.177.14.132 comment=googleusercontent.com list=RKN-dnsLookup +< add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +3469a3426,3431 +> add action=mark-routing chain=prerouting comment=Instagram dst-address-list=\ +> Instagram new-routing-mark=To-VPN src-address=10.30.30.0/24 \ +> src-address-list=!NoWG +> add action=mark-routing chain=prerouting comment=Twitter dst-address-list=\ +> Twitter new-routing-mark=To-VPN src-address=10.30.30.0/24 \ +> src-address-list=!NoWG +3472a3435,3436 +> add action=mark-routing chain=prerouting comment=facebook dst-address-list=\ +> facebook new-routing-mark=To-VPN src-address=10.30.30.0/24 +3484,3486c3448 +< "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ +< protocol=tcp src-address=10.30.30.0/24 to-ports=53 +< add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ +--- +> "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ +3487a3450,3451 +> add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ +> 10.30.30.0/24 to-ports=53 -- 2.52.0