From 27ca81d39e3d351806bc2e193da35f4a4cbc2dea Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 1 Jun 2026 22:00:14 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 01 22:00:14. --- .../20260601/20260601220002-Binary.backup | Bin 0 -> 259328 bytes .../20260601/20260601220002-Config.rsc | 3464 +++++++++++++++++ .../20260601/20260601220002-Diff-Config.rsc | 15 + 3 files changed, 3479 insertions(+) create mode 100644 MikroMaster/20260601/20260601220002-Binary.backup create mode 100644 MikroMaster/20260601/20260601220002-Config.rsc create mode 100644 MikroMaster/history/20260601/20260601220002-Diff-Config.rsc diff --git a/MikroMaster/20260601/20260601220002-Binary.backup b/MikroMaster/20260601/20260601220002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..d21a9f9fb595281b6a93cb7b89e520e697b340a4 GIT binary patch literal 259328 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ℑm)4xX)jyI?gr>1jwhDbLz@h90JW-vp7}$73k?0a=vtS= z*~MQd#$GMzf*s#OtT-kUf?t(<4^Ez1;(x>?icNpRu~>gP{D13R@hd9h@@P6VeywaG zli|q`&|dOR&LXRD?ziMu107GFR42Bs{ogrW?LGcUiwG!{|Im@8K{tLz&MEf;lyF`b z9txvjnn!9&Rc3qm1b~pvlkV z(-;CrOD$2~X-lK;@H1PpsB+=Gefx3OFJQw|KTV-3UYA1=KN|2Lrh>?k0OG@biIH4z zePA3@_|P(<1+6oPml!qeeb}(_x6f-JtzMwq`3s9toJ|;RpxlvSfsspUO_EAQjTD4b zv!&t8h#V)S4P@XOyHDUEZxunmYo>?YFhFt9K0ug^imH3l7K;@Pfo}34dpQD~zvHUr zI@1AsIR_AOHWdJ6c}+*{MDekfRz)pfO$J<`HX$T7kZkMh=PwQNi$B@6OP}3qP8uHB zz5VWLEqtEE_btLf7E9MYdf2hW0=Mlh(93=t6q)7tQl|RA$SKGpLT)RX_8vgEj_vWr4_728f)( z#>3YK{l>n=`~T}ZCKKaUQ{CbagO0lYIs#z=eFdc@O)V~LjwnXb3sh=d!T?3duEyug zIz=Q?`GXaT(Dw%Q=`D*O#g&~^Oqxd5S`!7xJ*#QP9#esv=@Z&?!if`|zxtcA*C)R%{H~IeuyNCTnA@BeK~wfCU1b ziJ<9)oBn@v%F5mENnK*HiC1^uwHyg8Dz%rXe_z}A&bDAKxfK;NXO zC^8Fc#C>^-t-`yL7#~vqx{yRnU?j}4o6&%0BY<&gS za_vBH)&P5@puOXUV}^q_w%(^$aGx^~RpqDL%_W%oDVHy8wkw^h$Z1a(uf$zi_9@T} zv9KvX86vj#<}*_C;n6SExZDnzP

4)HG1c=aApUTGBQe-Z88NQx&i{qo5vMN0-oX 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%0AR*ioF8YmaMxVoE}XPPoeTB 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260601/20260601220002-Config.rsc b/MikroMaster/20260601/20260601220002-Config.rsc new file mode 100644 index 0000000..0ed49b0 --- /dev/null +++ b/MikroMaster/20260601/20260601220002-Config.rsc @@ -0,0 +1,3464 @@ +# 2026-06-01 22:00:02 by RouterOS 7.23 +# 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 wireless +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1420 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/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 cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main:2 dhcp-options=clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 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 disabled=yes name=ns1.unet.ws type=\ + A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/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=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=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=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=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=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 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=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + 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 out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for 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=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no \ + routing-mark=To-VPN src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "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" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" 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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +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 vrf-interface="ether1 - Unet" +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes 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 package update +set ip-version=ipv4 mode=http +/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/20260601/20260601220002-Diff-Config.rsc b/MikroMaster/history/20260601/20260601220002-Diff-Config.rsc new file mode 100644 index 0000000..0518989 --- /dev/null +++ b/MikroMaster/history/20260601/20260601220002-Diff-Config.rsc @@ -0,0 +1,15 @@ +2545,2546c2545 +< add address=91.192.189.2 comment=Unet-DNS disabled=yes name=ns1.unet.ws type=\ +< A +--- +> add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +3206a3206,3209 +> "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ +> dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ +> 10.30.30.0/24 +> add action=mark-routing chain=prerouting comment=\ +3225,3228d3227 +< add action=mark-routing chain=prerouting comment=\ +< "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ +< dst-address-list=VDSina new-routing-mark=main passthrough=no \ +< routing-mark=To-VPN src-address=10.30.30.0/24 -- 2.52.0