MeshCentral là một nền tảng điều khiển từ xa (remote management), quản lý từ xa (IT Management) mã nguồn mở, cho phép bạn quản lý máy tính, server,… từ xa thông qua trình duyệt web.
Nó do Ylian Saint-Hilaire (Intel) phát triển và hoạt động hoàn toàn tự host (cài trên server của bạn).
Hỗ trợ đa nền tảng:
- Windows;
- macOS;
- Linux;
- Android;
Ưu điểm: Tự host nên làm chủ được dữ liệu; Đa tính năng: Xem được thông tin máy, tự xuất hiện trên máy chủ sau khi cài đặt Agnet.
Cho phép xuất dữ liệu gồm thông tin chi tiết của thiết bị - dễ quản lý.
Nhược điểm: Ưu điểm cũng chính là nhược điểm là vì nó chạy trên nền Web nên bị phụ thuộc vào trình duyệt (hiện tại không thể gửi phím Ctrl đến máy từ xa); Giao diện khá cổ điển; Tự host nên ban đầu khá khó và mất thời gian, ít tài liệu hướng dẫn cụ thể.
Bật Full màn hình: Nhấn giữ Shift và bấm vào nút Full màn hình để thực sự là Full màn hình trên Browser (Nếu không nó sẽ chỉ full giao diện trang web thôi).
Muốn tùy chỉnh thì hãy copy file bạn muốn chỉnh vào "meshcentral-web" nó sẽ được thay đổi.
Tạo file compose và khởi chạy với nội dung bên dưới:
services:
meshcentral:
stdin_open: true
tty: true
restart: always
hostname: meshcentral-vm11
environment:
- HOSTNAME=meshcentral.yourdomain.vn
- ALLOW_NEW_ACCOUNTS=false
- TZ=Australia/Melbourne
- LANG=en_US.UTF-8
- LANGUAGE=en_US:en
- LC_ALL=en_US.UTF-8
ports:
- 443:443
volumes:
- /etc/localtime:/etc/localtime
- ./meshcentral-data:/opt/meshcentral/meshcentral-data
- ./meshcentral-files:/opt/meshcentral/meshcentral-files
- ./meshcentral-web:/opt/meshcentral/meshcentral-web
- ./meshcentral-backups:/opt/meshcentral/meshcentral-backups
container_name: meshcentral2
image: ghcr.io/ylianst/meshcentral:latest
networks: {}
-> meshcentral-data/keyboard_arrow_right/config.json
Mình dùng Cloudfrared cho proxy nên không dùng Let's Encrypt - Chứng Chỉ SSL/TLS Certificates Miễn Phí, nếu bạn dùng thì cấu hình có thể khác.
{
"$schema": "https://raw.githubusercontent.com/Ylianst/MeshCentral/master/meshcentral-config-schema.json",
"__comment1__": "This is a simple configuration file, all values and sections that start with underscore (_) are ignored. Edit a section and remove the _ in front of the name. Refer to the user's guide for details.",
"__comment2__": "See node_modules/meshcentral/sample-config-advanced.json for a more advanced example.",
"settings": {
"cert": "meshcentral.yourdomain.vn",
"tlsOffload": true,
"WANonly": true,
"_LANonly": true,
"sessionKey": "ahfafweuyyutfUYTFUguiiyY^$^$64UFUfuafsiuyagwieufgaiuefgugiuRUTe",
"_port": 80,
"_aliasPort": 443,
"_redirPort": 800,
"_redirAliasPort": 80
},
"domains": {
"": {
"certUrl": "https://meshcentral.yourdomain.vn",
"allowedOrigin": true
"agentCustomization": {
"backgroundColor": "#19193e",
"companyName": "TNQ Remote",
"description": ":v..",
"displayName": "TNQ Remote Service",
"fileName": "TNQ Remote Agent",
"foregroundColor": "#FFFFFF",
"image": "A-Company_Logo.png",
"installText": ":v...",
"serviceName": "TNQ Remote Agent"
}
}
}
(Vui lòng nhấn vào để mở rộng)
{
"$schema": "https://raw.githubusercontent.com/Ylianst/MeshCentral/master/meshcentral-config-schema.json",
"__comment1__": "This is a simple configuration file, all values and sections that start with underscore (_) are ignored. Edit a section and remove the _ in front of the name. Refer to the user's guide for details.",
"__comment2__": "See node_modules/meshcentral/sample-config-advanced.json for a more advanced example.",
"settings": {
"cert": "meshcentral.yourdomain.vn",
"tlsOffload": true,
"WANonly": true,
"_LANonly": true,
"sessionKey": "ahfafweuderthhYTFrewiiyY^$^$64UFUfuafsithagwieufgacdefgugiuRUTe",
"agentKey": "6e19f33swbcf4a3hkd5c991g7je226ba",
"_port": 80,
"_aliasPort": 443,
"_redirPort": 800,
"_redirAliasPort": 80,
"__maxInvalidLogin": "Time in minutes, max amount of bad logins from a source IP in the time before logins are rejected.",
"_maxInvalidLogin": {
"time": 10,
"count": 10,
"coolofftime": 10
}
},
"domains": {
"": {
"certUrl": "https://meshcentral.yourdomain.vn",
"allowedOrigin": true,
"_siteStyle": 3,
"_showModernUIToggle": true,
"_nightMode": 1,
"_scrollToTop": true,
"minify": true,
"_hidePowerTimeline": true,
"_showNotesPanel": true,
"_userSessionsSort": "Username",
"_newAccounts": true,
"_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ],
"_manageAllDeviceGroups": [ "admin" ],
"_userNameIsEmail": true,
"_newAccountEmailDomains": [ "yourdomain.vn" ],
"_newAccountsRights": [ "nonewgroups", "notools" ],
"_welcomeText": "Sample Text on Login Page.",
"_welcomePicture": "mainwelcome.jpg",
"_welcomePictureFullScreen": false,
"meshMessengerTitle": "TNQ Remote Messenger",
"meshMessengerPicture": "TNQLogo.png",
"___hide__": "Sum of: 1 = Hide header, 2 = Hide tab, 4 = Hide footer, 8 = Hide title, 16 = Hide left bar, 32 = Hide back buttons",
"_hide": 4,
"_altMessenging": [
{
"name": "Jitsi",
"url": "https://meet.jit.si/myserver-{0}",
"localurl": "https://meet.jit.si/myserver-local-{0}",
"type": "device"
},
{
"name": "Jitsi",
"url": "https://meet.jit.si/myserver-{0}-{1}-{2}-{3}",
"localurl": "https://meet.jit.si/myserver-local-{0}-{1}-{2}-{3}",
"type": "user"
}
],
"_myServer": {
"Backup": false,
"Restore": false,
"Upgrade": false,
"ErrorLog": false,
"Console": false,
"Trace": false,
"Config": false
},
"_passwordRequirements": {
"min": 8,
"max": 128,
"upper": 1,
"lower": 1,
"numeric": 1,
"nonalpha": 1,
"reset": 90,
"force2factor": true,
"skip2factor": "127.0.0.1,192.168.2.0/24",
"oldPasswordBan": 5,
"banCommonPasswords": false,
"twoFactorTimeout": 300,
"duo2factor": true
},
"_twoFactorCookieDurationDays": 30,
"_notificationMessages": {
"title": "TNQ Remote",
"desktop": "{0} started a remote desktop session.",
"terminal": "{0} started a remote terminal session.",
"files": "{0} started a remote files session."
},
"title": "TNQ Remote",
"title2": "",
"_titlePicture": "TNQLogo.png",
"_loginPicture": "TNQLogo.png",
"_pwaLogo": "TNQLogo.png",
"agentCustomization": {
"backgroundColor": "#19193e",
"companyName": "TNQ Remote Agent",
"description": "TNQ Remote Agent for remote monitoring, management and assistance.",
"displayName": "TNQ Remote Agent",
"fileName": "TNQ Remote Agent",
"foregroundColor": "#FFFFFF",
"image": "TNQLogo.png",
"installText": "TNQ Remote Agent for remote monitoring, management and assistance.",
"serviceName": "TNQ Remote Agent"
},
"agentFileInfo": {
"icon": "TNQLogo.ico",
"filedescription": "TNQ Remote Background Service Agent",
"fileversion": "2.6.1.1",
"internalname": "TNQ Remote Agent",
"legalcopyright": "Apache 2.0 License",
"originalfilename": "TNQ Remote Agent",
"productname": "TNQ Remote Agent",
"productversion": "v2.6.1.1"
},
"_assistantCustomization": {
"title": "TNQ Remote",
"image": "TNQLogo.png",
"fileName": "TNQ"
},
"_androidCustomization": {
"title": "TNQ Remote",
"subtitle": "TNQ Remote",
"image": "TNQLogo.png"
},
"_userAllowedIP": "127.0.0.1,192.168.1.0/24",
"_userBlockedIP": "127.0.0.1,::1,192.168.0.100",
"_agentAllowedIP": "192.168.0.100/24",
"_agentBlockedIP": "127.0.0.1,::1",
"_authStrategies": {
"__comment__": "This section is used to allow users to login using other accounts. You will need to get an API key from the services and register callback URL's",
"google": {
"_callbackurl": "https://server/auth-google-callback",
"newAccounts": true,
"_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ],
"_newAccountsRights": [ "nonewgroups", "notools" ],
"clientid": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
"clientsecret": "xxxxxxxxxxxxxxxxxxxxxxx"
},
"github": {
"_callbackurl": "https://server/auth-github-callback",
"newAccounts": true,
"_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ],
"_newAccountsRights": [ "nonewgroups", "notools" ],
"clientid": "xxxxxxxxxxxxxxxxxxxxxxx",
"clientsecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
},
"_smtp": {
"host": "smtp.myserver.com",
"port": 25,
"from": "myemail@myserver.com",
"__tls__": "When 'tls' is set to true, TLS is used immidiatly when connecting. For SMTP servers that use TLSSTART, set this to 'false' and TLS will still be used.",
"tls": false,
"___tlscertcheck__": "When set to false, the TLS certificate of the SMTP server is not checked.",
"_tlscertcheck": false,
"__tlsstrict__": "When set to true, TLS cypher setup is more limited, SSLv2 and SSLv3 are not allowed.",
"_tlsstrict": true,
"_emailDelaySeconds": 300
},
"_messaging": {
"_telegram": {
"apiid": 0,
"apihash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"session": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"useWSS": "false",
"connectionRetries": 60
},
"_discord": {
"serverurl": "https://discord.gg/xxxxxxxxx",
"token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
"hide": 5, => ẩn thanh trên
"nightMode": 1, => Chế độ ban đêm
"minify": false, => ẩn thanh dưới?
"sitestyle": 3 => bật giao diện mới
Simple add ?sitestyle=3 to the url and say hi to the new ui hehe
Nếu bạn có thể chạy lệnh cmd từ xa cho clients thì có thể dùng cách này:
Chạy lệnh này trên cmd (tùy chỉnh đường dẫn đến file cài đặt cho phù hợp):
meshagent64-02.ITStore.exe -fullinstall
Mesh Agent available switches:
run Start as a console agent.
connect Start as a temporary console agent.
start Start the service.
restart Restart the service.
stop Stop the service.
state Display the running state of the service.
-signcheck Perform self - check.
-install Install the service from this location.
-uninstall Remove the service from this location.
-nodeid Return the current agent identifier.
-info Return agent version information.
-resetnodeid Reset the NodeID next time the service is started.
-fulluninstall Stop agent and clean up the program files location.
-fullinstall Copy agent into program files, install and launch.
The following switches can be specified after -fullinstall:
--WebProxy="http://proxyhost:port" Specify an HTTPS proxy.
--agentName="alternate name" Specify an alternate name to be provided by the agent.
Sau khi lệnh được chạy trên client thì nó sẽ xuất hiện trong trang quản lý cảu MeshCentral.
Tạo file .bat với nội dung sau (tùy chỉnh lại đường dẫn tệp cho phù hợp với thiết lập của bạn):
IF NOT EXIST "%ProgramFiles%\Mesh Agent\MeshAgent.exe" (
"\\yourserver\netlogon\MeshCentral\meshagent64-Z.Temp.exe" -fullinstall
)
Copy file .bat trên và file cài đặt của meshagent64.exe vào folder thích hợp (để các máy trong domain của bạn có quyền truy cập).
Thêm GOP với thiết lập như sau:
Cập nhật lại GPO trên máy clients bằng lệnh:
gpupdate /force
Restart lại máy client để kiểm tra và bumfm..nó đã sẽ xuất hiện trên MeshCentral.
PS: Bạn có thể thiết lập cách khác phù hợp hơn, bên trên à cách của tôi và nó hoạt động hoàn hảo (: