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