From 9fd816bd85cc99ca6aff5bbd0ac1ce47695c48ff Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 15 Jun 2026 14:00:40 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 15 14:00:40. --- .../20260615/20260615140002-Binary.backup | Bin 0 -> 267598 bytes .../20260615/20260615140002-Config.rsc | 3601 +++++++++++++++++ .../20260615/20260615140002-Diff-Config.rsc | 12 + 3 files changed, 3613 insertions(+) create mode 100644 MikroMaster/20260615/20260615140002-Binary.backup create mode 100644 MikroMaster/20260615/20260615140002-Config.rsc create mode 100644 MikroMaster/history/20260615/20260615140002-Diff-Config.rsc diff --git a/MikroMaster/20260615/20260615140002-Binary.backup b/MikroMaster/20260615/20260615140002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..d520c406af0efed25f89d87082978eef4a43ddbb GIT binary patch literal 267598 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

AgN0@g%L;ohr^MW|Og zuXgGU>A+X6I#YV$)8ruYJm8S6#NY$!eUngEDp2h>TNccEz1T!>H$LzIQk>ZDYc5L} zlq=D!E#zb|_fP4Y^zw4Lx^j$pxu#e(#V6Dd!)Lk^E6a~sbG*DA)q3Yx3F{J>A*hVr zc;)&~aN@ky{AwMnUv zIDTJ9NaD*XVgD5hZNZ`ZAR)Rsc{fgolwf0+#T9Cy-Ya8f-B6rrV@2ZqIS{M zHdgs_M4``yfgfv7!O4|4*1IB?sv`<4$E^K}MyCuql$A(_fvWpTg%7O9h4vT;zL|nh z{&UTEj~dCEhXA2W@n}6!$gzqWBlQq7kqE11td%x_m@CgjdRA{{!1o5EWNTL=6Gr~tq?-30LRJp1$2^)Zcw0dd&w8r;j zsEz4t{#OLu6+9e)d2hW24&$DAUIG*8G0D3oH#usEZTKlJv#!Yj9kYnteI$2OZ}AD5 zxksCgTJ!wVyC-ft#1yLeJg0=McJu&^RT{6MyV*=T;k&WGpw7ziEGrII

i1A{zX6 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

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