This commit is contained in:
Ylian Saint-Hilaire 2022-11-14 16:31:53 -08:00
commit 6084182164
15 changed files with 456 additions and 20 deletions

View File

@ -43,10 +43,11 @@ jobs:
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and push Docker image
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
with:
context: .
file: docker/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

View File

@ -779,6 +779,7 @@
"tokenuserid",
"tokenusername",
"totalsize",
"TOTP",
"tpass",
"tpassword",
"tpush",

View File

@ -362,8 +362,8 @@ module.exports.CreateAmtScanner = function (parent) {
if (oldVer == newVer) return false; // Versions are same already, don't update.
if (newVer == undefined || newVer == null) return false; // New version is bad, don't update it.
if (oldVer == undefined || oldVer == null) return true; // Old version is no good anyway, update it.
var oldVerArr = oldVer.split('.');
var newVerArr = newVer.split('.');
var oldVerArr = oldVer.toString().split('.');
var newVerArr = newVer.toString().split('.');
if ((oldVerArr.length < 2) || (newVerArr.length < 2)) return false;
if ((oldVerArr[0] != newVerArr[0]) || (oldVerArr[1] != newVerArr[1])) return true;
if (newVerArr.length > oldVerArr.length) return true;

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

View File

@ -49,6 +49,16 @@ Intel® AMT
If you are looking into managing remote computers that would be difficult to physically get access to for remote support or maintenance, one should probably look at getting a PC with Intel AMT.
## Bare-Metal Activation Server
The `AmtProvisioningServer` section in the `settings` section of the config.json will enable this feature. MeshCentral will then listen for activation requests, match against your ACM activation certificates and if everything goes well, will activate and add the device to a Intel AMT only device group. No agent or MeshCMD is involved.
This bare-metal activation server is not enabled by default and only makes sense when activating devices on the local network.
Once enabled, Intel AMT can send “hello” data to the MeshCentral provisioning server on port 9971 and MeshCentral will respond by connecting back, authenticating, and activating Intel AMT. MeshCentral will then log the event, add the device to a pre-defined agent-less device group and complete any remaining configuration. A trusted CA certificate is required to perform this operation fully automatically.
![baremetal](images/amtprovisioningserver.png)
## MeshCentral Group Types
Once MeshCentral is installed, a user will typically create a new device group. Here is the first hint that MeshCentral supports Intel AMT. Device groups come in two types. You can manage using a software agent, or using Intel AMT only.
@ -175,6 +185,10 @@ Once setup, Intel AMT will not automatically activate to Intel AMT unless the ri
- The name “meshcentral.com” by have been set as “Trusted FQDN” in MEBx.
- The name “meshcentral.com” must have been set using a USB key with a setup.bin file.
<div class="video-wrapper">
<iframe width="320" height="180" src="https://www.youtube.com/embed/mhq0bsWJEOw" frameborder="0" allowfullscreen></iframe>
</div>
Once Intel AMT is in a situation where ACM activation can occur, the activation command line can be run or the Mesh Agent will detect this situation and ask the server to perform activation.
![](images/2022-05-16-23-16-05.png)

View File

@ -50,7 +50,7 @@ For OSx 11+ including Big Sur, Monterey and later
## Apple macOS
For macOS 10.x including Catalina, Mojave, High Sierra, Sierra, El Capitan, Yosemite, Mavericks, Mountain Lion and earlier
For macOS 10.x including Catalina, Mojave, High Sierra, Sierra, El Capitan, Yosemite, Mavericks, Mountain Lion and earlier.
## Mobile Device (Android)
@ -59,3 +59,296 @@ For macOS 10.x including Catalina, Mojave, High Sierra, Sierra, El Capitan, Yose
See [Assistant](assistant.md)
## Apple MacOS Binary Installer
## Agent Commands
**agentmsg**
: Add/Remove badged messages to the device's web ui
```
agentmsg add "[message]" [iconIndex]
agentmsg remove [index]
agentmsg list
```
**agentsize**
: Returns the binary size of the agent
**agentupdate**
: Manually trigger an agent self-update
**alert**
: Display an alert dialog on the logged in session
```
alert TITLE, CAPTION [, TIMEOUT]
```
**amt**
**amtconfig**
**amtevents**
**apf**
**args**
**av**
: Displays Antivirus State
**coredump**
**coreinfo**
**cpuinfo**
**cs**
: Display Windows Connected Standby State
**dbcompact**
: Compacts the agent database
**dbget**
**dbkeys**
**dbset**
**dnsinfo**
: Display DNS server info
**domain**
: Display domain metadata
**errorlog**
**eval**
: executes javascript on the agent
```
eval [code]
```
**fdcount**
: Returns the number of active descriptors in the event loop
**fdsnapshot**
: Returns detailed descriptor/handle/timer metadata
**getclip**
: Fetches clipboard data from agent
**getscript**
**help**
: Returns the list of supported console commands
**httpget**
**info**
: Returns general information about the agent, such as connected state, loaded modules, LMS state, etc
**kill**
: Sends a SIGKILL signal to the specified PID
```
kill [pid]
```
**kvmmode**
: Displays the KVM Message Format
**location**
: Displays saves location information about the connected agent
**lock**
**log**
: Writes a message to the logfile
```
log [message]
```
**ls**
: Enumerates the files in the agent's install folder
**mousetrails**
: Enables/Disables Mouse Trails Accessibility on Windows. To change setting, specify a positive integer representing the number of latent cursors, where 0 is disable
```
mousetrails [n]
```
**msh**
: Displays the loaded msh settings file
**netinfo**
: Displays network interface information
**notify**
: Display a notification on the web interface
**openurl**
**osinfo**
: Displays OS information
**parseuri**
: Parses the specified URI, and displays the parsed output
```
parseuri [uri]
```
**plugin**
: Invokes a plugin
```
plugin [pluginName] [args]
```
**power**
: Performs the specified power action
```
power [action]
LOGOFF = 1
SHUTDOWN = 2
REBOOT = 3
SLEEP = 4
HIBERNATE = 5
DISPLAYON = 6
KEEPAWAKE = 7
BEEP = 8
CTRLALTDEL = 9
VIBRATE = 13
FLASH = 14
```
**print**
**privacybar**
: Sets/Gets the default pinned state of the Privacy Bar on windows
```
privacybar [PINNED|UNPINNED]
```
**ps**
: Enumerates processes on the agent
**rawsmbios**
: Fetches the raw smbios table
**safemode**
: Sets/Gets the SAFEMODE configuration of the agent, as well as the next boot state.
```
safemode (ON|OFF|STATUS)
```
**scanwifi**
: Scans the available Wifi access points, and displays the SSID and Signal Strength
**service**
: Shortcut to be able to restart the agent service
```
service status|restart
```
**setclip**
: Sets clipboard data to the agent
```
setclip [text]
```
**setdebug**
: Sets the location target for debug messages
```
setdebug [target]
0 = Disabled
1 = StdOut
2 = This Console
* = All Consoles
4 = WebLog
8 = Logfile
```
**smbios**
: Displays the parsed SMBIOS metadata
**startupoptions**
: Displays the command-line options that the agent was started with
**sysinfo**
: Collects and displays telemetry on the platform
**task**
**taskbar**
: Hides or shows the Windows System task bar, optionally on the specified Terminal Server Session ID
```
taskbar HIDE|SHOW [TSID]
```
**timerinfo**
: Displays metadata about any configured timers on the event loop
**toast**
: Displays a toast message on the logged in user's session
```
toast [message]
```
**translations**
: Shows the currently configured translations
**type**
```
type (filepath) [maxlength]
```
**uac**
: Get/Sets the Windows UAC mode
```
uac [get|interactive|secure]
```
**unzip**
```
unzip input, destination
```
: Unzips the specified file
**users**
: Enumerates the logged in users on the system
**versions**
: Displays version information about the agent
**vm**
: Detects if the system is a Virtual Machine
**volumes**
: Displays volume information reported by the OS
**wakeonlan**
: Sends wake-on-lan packets to the specified MAC address
```
wakeonlan [mac]
```
**wallpaper**
: Gets/Toggles the logged in user's desktop background image
```
wallpaper (GET|TOGGLE)
```
**wpfhwacceleration**
: Enable/Disable WPF HW Acceleration on Windows
```
wpfhwacceleration (ON|OFF|STATUS)
```
**wsclose**
**wsconnect**
**wslist**
**wssend**
**zip**
```
zip (output file name), input1 [, input n]
```

View File

@ -210,3 +210,60 @@ Note you can show CPU and Memory usage info by clicking the icon in the top righ
For debugging and communicating with the mesh agent.
It allows JS commands to be issued to the device but also run extra commands from the meshcore. Type `help` for all available options
- 2falock
- acceleratorsstats
- agentissues
- agentstats
- amtacm
- amtmanager
- amtpasswords
- amtstats
- args
- autobackup
- backupconfig
- bad2fa
- badlogins
- certexpire
- certhashes
- closeusersessions
- cores
- dbcounters
- dbstats
- dispatchtable
- dropallcira
- dupagents
- email
- emailnotifications
- firebase
- heapdump
- heapdump2
- help
- info
- le
- lecheck
- leevents
- maintenance
- migrationagents
- mps
- mpsstats
- msg
- nodeconfig
- print
- relays
- removeinactivedevices
- resetserver
- serverupdate
- setmaxtasks
- showpaths
- sms
- swarmstats
- tasklimiter
- trafficdelta
- trafficstats
- updatecheck
- usersessions
- versions
- watchdog
- webpush
- webstats

View File

@ -44,7 +44,9 @@ You're sure you're typing in everything right, giving it 2FA code and can't logi
![](images/2022-08-04-18-19-19.png)
# Branding and Customisation
# Branding and Customization
You can brand and customise MeshCentral almost as much as you like without delving into the code, a few changes in the config.json file and uplaoding images can change the way your system looks. Read more [here](https://ylianst.github.io/MeshCentral/meshcentral/#branding-terms-of-use)
You can brand and customize MeshCentral almost as much as you like without delving into the code, a few changes in the config.json file and uploading images can change the way your system looks. Read more [here](https://ylianst.github.io/MeshCentral/meshcentral/#branding-terms-of-use)
!!!note
You will need to reinstall the agent for agent customizations to take effect.

View File

@ -1258,6 +1258,59 @@ You can also customize the Agent to add your own logo.
![](images/2022-08-24-06-42-40.png)
```json
"agentCustomization": {
"displayName": {
"type": "string",
"default": "MeshCentral Agent",
"description": "The name of the agent as displayed to the user."
},
"description": {
"type": "string",
"default": "Mesh Agent background service",
"description": "The description of the agent as displayed to the user."
},
"companyName": {
"type": "string",
"default": "Mesh Agent",
"description": "This will be used as the path to install the agent, by default this is 'Mesh Agent' in Windows and 'meshagent' in other OS's."
},
"serviceName": {
"type": "string",
"default": "Mesh Agent",
"description": "The name of the background service, by default this is 'Mesh Agent' in Windows and 'meshagent' in other OS's but should be set to an all lower case, no space string."
},
"installText": {
"type": "string",
"default": null,
"description": "Text string to show in the agent installation dialog box."
},
"image": {
"type": "string",
"default": null,
"description": "The filename of a image file in .png format located in meshcentral-data to display in the MeshCentral Agent installation dialog, image should be square and from 64x64 to 200x200."
},
"fileName": {
"type": "string",
"default": "meshagent",
"description": "The agent filename."
},
"foregroundColor": {
"type": "string",
"default": null,
"description": "Foreground text color, valid values are RBG in format 0,0,0 to 255,255,255 or format #000000 to #FFFFFF."
},
"backgroundColor": {
"type": "string",
"default": null,
"description": "Background color, valid values are RBG in format 0,0,0 to 255,255,255 or format #000000 to #FFFFFF."
}
}
```
!!!note
You will need to reinstall the agent for agent customizations to take effect.
### Terms of use
You can change the terms of use of the web site by adding a “terms.txt” file in the “meshcentral-data” folder. The file can include HTML markup. Once set, the server does not need to be restarted, the updated terms.txt file will get used the next time its requested.

View File

@ -194,9 +194,20 @@ Once setup, the server will offer users the "Pushover" option when setting up me
}
}
```
No setup is reqired to enable this. When using ntfy, make sure you use a suffisently random topic name so that others can't guess the name and subscribe to it to receive your messages.
For [self-hosting your own ntfy server](https://ntfy.sh/docs/install/) with [ACL support](https://ntfy.sh/docs/config/#access-control)
```json
{
"messaging": {
"ntfy": {
"host": "https://[my]ntfy.sh",
"userurl": "https://[my]ntfy.sh/userhelp"
}
}
}
```
![](images/MC2-Ntfy1.png)
## Zulip setup

View File

@ -26850,7 +26850,7 @@
"bs": "Završena desktop sesija \\\"{0}\\\" od {1} do {2}, {3} sekundi",
"cs": "Ukončena relace na ploše „{0}“ od {1} do {2}, {3} s",
"da": "Afsluttet skrivebordssession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
"de": "Beendet die Desktopsitzung \\\"{0}\\\" von {1} bis {2}, {3} Sekunde(n)",
"de": "Beendet die Desktopsitzung \\\"{0}\\\" von {1} zu {2}, {3} Sekunde(n)",
"en": "Ended desktop session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
"es": "Sesión de escritorio finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
"fi": "Työpöytäistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
@ -26876,7 +26876,7 @@
"bs": "Završena sesija upravljanja fajlovima \\\"{0}\\\" od {1} do {2}, {3} sekundi",
"cs": "Ukončena relace správy souborů „{0}“ od {1} do {2}, {3} s",
"da": "Afsluttet filhåndteringssession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
"de": "Beendet die Dateiverwaltungssitzung \\\"{0}\\\" von {1} bis {2}, {3} Sekunde(n)",
"de": "Beendet die Dateiverwaltungssitzung \\\"{0}\\\" von {1} zu {2}, {3} Sekunde(n)",
"en": "Ended file management session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
"es": "Sesión de gestión de archivos finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
"fi": "Tiedostonhallintaistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
@ -26902,7 +26902,7 @@
"bs": "Završena sesija lokalnog releja \\\"{0}\\\", protokol {1} do {2}, {3} sekundi",
"cs": "Ukončena relace místního přenosu \\\"{0}\\\", protokol {1} až {2}, {3} s",
"da": "Afsluttet lokal relæsession \\\"{0}\\\", protokol {1} til {2}, {3} sekund(er)",
"de": "Beendete lokale Relay-Sitzung \\\"{0}\\\", Protokoll {1} bis {2}, {3} Sekunde(n)",
"de": "Beendete lokale Relay-Sitzung \\\"{0}\\\", Protokoll {1} zu {2}, {3} Sekunde(n)",
"en": "Ended local relay session \\\"{0}\\\", protocol {1} to {2}, {3} second(s)",
"es": "Sesión de relay local finalizada \\\"{0}\\\", protocolo {1} a {2}, {3} segundo(s)",
"fi": "Paikallinen välitysistunto \\\"{0}\\\", protokolla {1} - {2}, {3} sekuntia",
@ -26928,7 +26928,7 @@
"bs": "Završena sesija messenger-a \\\"{0}\\\" od {1} do {2}, {3} sekundi",
"cs": "Ukončená relace messengeru \\\"{0}\\\" od {1} do {2}, {3} s",
"da": "Afsluttet messenger-session \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
"de": "Beendete Messenger-Sitzung \\\"{0}\\\" von {1} bis {2}, {3} Sekunde(n)",
"de": "Beendete Messenger-Sitzung \\\"{0}\\\" von {1} zu {2}, {3} Sekunde(n)",
"en": "Ended messenger session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
"es": "Sesión de mensajería finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo (s)",
"fi": "Messenger -istunto \\\"{0}\\\" päättyi {1} - {2}, {3} sekuntia",
@ -26954,7 +26954,7 @@
"bs": "Završena relejna sesija \\\"{0}\\\" od {1} do {2}, {3} sekundi",
"cs": "Ukončená relace přenosu „{0}“ z {1} na {2}, {3} s",
"da": "Afsluttet relæsession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
"de": "Beendete Relay-Sitzung \\\"{0}\\\" von {1} bis {2}, {3} Sekunde(n)",
"de": "Beendete Relay-Sitzung \\\"{0}\\\" von {1} zu {2}, {3} Sekunde(n)",
"en": "Ended relay session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
"es": "Sesión de relay finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
"fi": "Välitysistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
@ -26980,7 +26980,7 @@
"bs": "Završena terminalska sesija \\\"{0}\\\" od {1} do {2}, {3} sekundi",
"cs": "Ukončena relace terminálu \\\"{0}\\\" od {1} do {2}, {3} s",
"da": "Afsluttet terminalsession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
"de": "Beendete Terminalsitzung \\\"{0}\\\" von {1} bis {2}, {3} Sekunde(n)",
"de": "Beendete Terminalsitzung \\\"{0}\\\" von {1} zu {2}, {3} Sekunde(n)",
"en": "Ended terminal session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
"es": "Sesión de terminal finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
"fi": "Pääteistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
@ -66442,7 +66442,7 @@
"bs": "Započeta desktop sesija \\\"{0}\\\" od {1} do {2}",
"cs": "Zahájena relace na ploše \\\"{0}\\\" od {1} do {2}",
"da": "Startede skrivebordssession \\\"{0}\\\" fra {1} til {2}",
"de": "Desktop-Sitzung \\\"{0}\\\" von {1} bis {2} gestartet",
"de": "Desktop-Sitzung \\\"{0}\\\" von {1} zu {2} gestartet",
"en": "Started desktop session \\\"{0}\\\" from {1} to {2}",
"es": "Sesión de escritorio iniciada \\\"{0}\\\" de {1} a {2}",
"fi": "Aloitettu työpöytäistunto \\\"{0}\\\" välillä {1} - {2}",
@ -66468,7 +66468,7 @@
"bs": "Započeta sesija upravljanja fajlovima \\\"{0}\\\" od {1} do {2}",
"cs": "Zahájena relace správy souborů „{0}“ od {1} do {2}",
"da": "Startede filhåndteringssession \\\"{0}\\\" fra {1} til {2}",
"de": "Start der Dateiverwaltungssitzung \\\"{0}\\\" von {1} bis {2}",
"de": "Start der Dateiverwaltungssitzung \\\"{0}\\\" von {1} zu {2}",
"en": "Started file management session \\\"{0}\\\" from {1} to {2}",
"es": "Sesión de administración de archivos iniciada \\\"{0}\\\" de {1} a {2}",
"fi": "Tiedostonhallintaistunto \\\"{0}\\\" aloitettu välillä {1} - {2}",
@ -66520,7 +66520,7 @@
"bs": "Započeta relejna sesija \\\"{0}\\\" od {1} do {2}",
"cs": "Zahájena relace přenosu „{0}“ z {1} na {2}",
"da": "Startede relay session \\\"{0}\\\" fra {1} til {2}",
"de": "Relay-Sitzung \\\"{0}\\\" von {1} bis {2} gestartet",
"de": "Relay-Sitzung \\\"{0}\\\" von {1} zu {2} gestartet",
"en": "Started relay session \\\"{0}\\\" from {1} to {2}",
"es": "Sesión de retransmisión iniciada \\\"{0}\\\" de {1} a {2}",
"fi": "Aloitti välitysistunnon \\\"{0}\\\" välillä {1} - {2}",
@ -66650,7 +66650,7 @@
"bs": "Započeta terminalska sesija \\\"{0}\\\" od {1} do {2}",
"cs": "Zahájena relace terminálu \\\"{0}\\\" od {1} do {2}",
"da": "Startede terminalsession \\\"{0}\\\" fra {1} til {2}",
"de": "Terminalsitzung \\\"{0}\\\" von {1} bis {2} gestartet",
"de": "Terminalsitzung \\\"{0}\\\" von {1} zu {2} gestartet",
"en": "Started terminal session \\\"{0}\\\" from {1} to {2}",
"es": "Sesión de terminal iniciada \\\"{0}\\\" de {1} a {2}",
"fi": "Aloitettu pääteistunto \\\"{0}\\\" välillä {1} - {2}",
@ -81901,7 +81901,7 @@
"bs": "{0} od {1} do {2}.",
"cs": "{0} od {1} do {2}.",
"da": "{0} fra {1} til {2}.",
"de": "{0} von {1} zu {2}.",
"de": "{0} von {1} bis {2}.",
"en": "{0} from {1} to {2}.",
"es": "{0} de {1} a {2}.",
"fi": "{0} välillä {1} - {2}.",

View File

@ -7157,7 +7157,11 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
parent.debug('authlog', 'SAML profile: ' + JSON.stringify(profile, null, 4));
if (typeof profile.nameID != 'string') { return done(); }
var user = { sid: '~saml:' + profile.nameID, name: profile.nameID, strategy: 'saml' };
if ((typeof profile.firstname == 'string') && (typeof profile.lastname == 'string')) { user.name = profile.firstname + ' ' + profile.lastname; }
if (typeof profile.displayname == 'string') {
user.name = profile.displayname;
} else if ((typeof profile.firstname == 'string') && (typeof profile.lastname == 'string')) {
user.name = profile.firstname + ' ' + profile.lastname;
}
if (typeof profile.email == 'string') { user.email = profile.email; }
return done(null, user);
}