From 43f8ad9641119e646f0402ef990e361c467d4346 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 16 May 2026 14:20:48 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 16 14:20:48. --- .../20260516/20260516142002-Binary.backup | Bin 0 -> 246067 bytes .../20260516/20260516142002-Config.rsc | 3412 +++++++++++++++++ .../20260516/20260516142002-Diff-Config.rsc | 18 + 3 files changed, 3430 insertions(+) create mode 100644 MikroMaster/20260516/20260516142002-Binary.backup create mode 100644 MikroMaster/20260516/20260516142002-Config.rsc create mode 100644 MikroMaster/history/20260516/20260516142002-Diff-Config.rsc diff --git a/MikroMaster/20260516/20260516142002-Binary.backup b/MikroMaster/20260516/20260516142002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..a29b63c6e9f99e5242aca10ebe306864ef8e5b4b GIT binary patch literal 246067 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≥0U`J|C>WwN+1JFgihnc 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ⅅ`99xW0t(#Gq#os*4G9VD1(z85ogqbjgrk8 z699m#YvOiEXuHdtizips^+`)fB=PQpVgjY${rp`3(qi|jB!hvL@5BfsDjj0)F#Km~ zTfgWQ?5@W&NDozSB)o_=vfP|Pw?sxTG5`>D?^6nDqC}pIjTfL{o-n;zn819nG>ht! zMQLZCdPIiXxVLAdXs4kOfZ!vS7R&@FdYgSzwe6ddVpCMrG?L{ZPXY;QQjHRnV)`KH zspX_(Qh;Fg-I~4NYy>EMs=|d3Z(9^|Sr21*SzMhva+9eQ7?+Z=X28V2$MJzqmax)g z?3uLSTIaj%9h3dD2@YfDbhm|Q;Pr^JOggoYE6ZH&tb?X*Y;Rs>M=#&u z5iFc;h$WH%xzR+A5#>oB-C7GbAdaEZ$mei92?Ozchlp=pc|52LTnCG$nVaoXlTnSi zi^gV|Dhj>lm!MK5!ueJWA&IdbVYWfzO1@auqq3eIG~Ix> zbwjGh-Y_q&LqB`=-S%CM^R>*R@1$?Ki2iVEEaxXZ9m#hw48~r1H3<9gI@c|yxjAvq zyNc}?2A|-FK+S6@j;A4Um6v>l5AllHY3nA8Fswidziyy_ln!mtr#6nE72A3bm9bF> zqvU+DGOaHxVQlt_FY`nx95P1E%K2gK#k%BCLy1U4oxWet@moPcg(7K^a@fZS8pQ~+ z@~3ET$8fIJ?xhp8p36Mp*s80!7yk00_W0JoFTJ>;Z80ZvcgV$=OqWn^n7+BE>9ZOe zhLrCtJj)h#d~&9KizQp(s>QpuOiRqGH>(`o)BlS{FUV`pY-6gz19}y;*r0|dUMS`JE)|?P{S?Cg=U-LblptNplHF+Pz8X0I(@Vpj*Cuw?uxbM z`*=tmF|0_GCA2;Wub-)nD5O%0ADFc5e<59!edodm6TA@$aug59=~7i@j&1Lx%MT!X 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

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