From b30171f231ea91b27cd646c0b5be8a29ac717d84 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 15 May 2026 16:40:21 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 15 16:40:21. --- .../20260515/20260515164002-Binary.backup | Bin 0 -> 242255 bytes .../20260515/20260515164002-Config.rsc | 3407 +++++++++++++++++ .../20260515/20260515164002-Diff-Config.rsc | 22 + 3 files changed, 3429 insertions(+) create mode 100644 MikroMaster/20260515/20260515164002-Binary.backup create mode 100644 MikroMaster/20260515/20260515164002-Config.rsc create mode 100644 MikroMaster/history/20260515/20260515164002-Diff-Config.rsc diff --git a/MikroMaster/20260515/20260515164002-Binary.backup b/MikroMaster/20260515/20260515164002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..8cb883fff223a52b486682ec1bdf369938f3b0c8 GIT binary patch literal 242255 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�lvc`vnmAFcw-pRhPK`J~c}Ws3Pv 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

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