From 9951b7bb05b3e6c3524231a8b2a487e20d3dd413 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 26 May 2026 17:01:24 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 26 17:01:24. --- .../20260526/20260526170002-Binary.backup | Bin 0 -> 258153 bytes .../20260526/20260526170002-Config.rsc | 3462 +++++++++++++++++ .../20260526/20260526170002-Diff-Config.rsc | 4 + 3 files changed, 3466 insertions(+) create mode 100644 MikroMaster/20260526/20260526170002-Binary.backup create mode 100644 MikroMaster/20260526/20260526170002-Config.rsc create mode 100644 MikroMaster/history/20260526/20260526170002-Diff-Config.rsc diff --git a/MikroMaster/20260526/20260526170002-Binary.backup b/MikroMaster/20260526/20260526170002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..2599eeeebb276371ab754c11eada6498334da799 GIT binary patch literal 258153 zcmV+aKLEh*sF8DN@B;uWvNADL&mkXK%Ob}7eg zVj_0$wZt*(r@7xi)e?hek2xIDr@LEL%=5KoKi_qRAPs1aon8brqI+8zSNVbm&r_mf z8-&6H^rNIlss`%seJG#+ljmB(P&obVyiN(l2*Q?yT=;cL=Ygg_g}*^%$E(j~9V+38 zMs9c5EJZf|laYMU6=&m8;aeW6WNYv0966bX0Gy4&y!egl#S_Is7hI)Up@&XfCua?z zI7b2;ng!MdUHPqa!NoA39s-xA$qv+bbidfW&l^?Bm^HiVnQ`OsyXq=@1t48qj5Ucc z=-)Eg0>l1aDmD_0obaI>gDUW?k{`BVbH}9fU5o?`>`Oz}sEP%uDm8O@!!r)(Xs<*Y zf=^zVi0k^-yZ)jpzRNJmb9Kt0Hpjj*ZZJT{>W)e^_6UQe>#A(G>%SD2>eZWce15qH zkJ-le+V-04dPt}A&V4I6bb* zqli^$+3p$jLQqCBq#m*?JNRJ6jOga2ZKI3|x!LeK(!GkCnCzX;)>)XIlf@4mZrOf0 zU0H{G)aQuIT%U)-cWzV(Ei?NeerP-WZzIF)v2(VhelIZI5MxmlKh3C*%>CvNW;?aR zj$R>&fYt1~FrDjWMR|`VPu|n>O(aG~lMEuIR^EZW`tjt5Fdo(K5*pON0lWK+%^`!V zttcU@&os121K{ycCO*#_zNj^{rA0a90+TkJDi~N>3*A_%Uq{MsgpBQzlOxQM>CfiIAtMzw~)xMXOieeACs_1G*R5(pY1_XH>wP<`pv5E+7~Ls$!}{o z1N{B#*@6DZ_4Ip@!wR$PQxmav;0v+vahUdC}X` zKonu8{_XtS@34fSgq!-#7n~12yk|`QjJqu6d?vm`$KGhF!GU@3}_!1yd-diuwVF1v^27y;u8*+jHHhq$j zCVmu1qM@z1twHKNm4u+^x2qQW2!ACHQlc9C>FI!#kdNxsx;7c5#|1!^z=4OS8PV_7 zga0)yJ%^}+{(t3Ewr;vv%snw|zkWSez4Lpb6m>LZ4%kyM_Bo_f>c8ME!?SMueaV

&SCxHuu*S_@-wdAy+P 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

59%u|s`&vqRg5L?sOTd>6`fI}bPN-NFD{DkJ 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%0D+tx}X6n50UZ7z=wY(r5|4%1)U&9K35H1~K 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

^#qTPd3$zM+^=zVE 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

9C;`)trOl`! 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 G0t!e7&8!dr literal 0 HcmV?d00001 diff --git a/MikroMaster/20260526/20260526170002-Config.rsc b/MikroMaster/20260526/20260526170002-Config.rsc new file mode 100644 index 0000000..7f9abfd --- /dev/null +++ b/MikroMaster/20260526/20260526170002-Config.rsc @@ -0,0 +1,3462 @@ +# 2026-05-26 17:00:07 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 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=1280 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/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/661/8d6d2114\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 25.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 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/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 comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN 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 disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=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 +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +/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" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" 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 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-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=VPN_No_FastTrack src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!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="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" 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="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no 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=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +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 +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/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/20260526/20260526170002-Diff-Config.rsc b/MikroMaster/history/20260526/20260526170002-Diff-Config.rsc new file mode 100644 index 0000000..eac2a75 --- /dev/null +++ b/MikroMaster/history/20260526/20260526170002-Diff-Config.rsc @@ -0,0 +1,4 @@ +31c31 +< # channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +--- +> # channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding -- 2.52.0