Tuto repris de mon tutos fait pour le SYRTE.
- Install Meshcentral à partir d'une base Ubuntu 18 :
PDF utilisé :
# En root add-apt-repository universe # repository universe déjà activé (dans le doute...) apt update apt install nodejs -y apt install npm -y # Test si node et npm sont installé : node –v npm -v # Install mongodb (base de donnée interne à meshcentral n'est pas adapté en cas d'un grand nombre de poste) apt install mongodb -y systemctl start mongodb systemctl enable mongodb #test de mongodb mongo --host 127.0.0.1:27017 #Autorisation utilisation de port < 1024 sous Ubuntu whereis node #Pour savoir ou est stocké node setcap cap_net_bind_service=+ep /usr/bin/node #Install meshcentral useradd -r -s /sbin/nologin meshcentral mkdir /opt/meshcentral cd /opt/meshcentral npm install meshcentral chown -R meshcentral:meshcentral /opt/meshcentral node ./node_modules/meshcentral # Va générer les fichiers de config. Ctrl+C # Configure Mongodb dans meshcentral nano meshcentral-data/config.json # retirer les "_" devant les 2 lignes suivantes : "MongoDb": "mongodb://127.0.0.1:27017/meshcentral", "Cert" : "syrtemesh.obspm.fr", "WANonly": true, "LANonly": false, node ./node_modules/meshcentral # Va installer la base de donné dans mongodb Ctrl-C nano /etc/systemd/system/meshcentral.service #copier le texte suivant : [Unit] Description=MeshCentral Server [Service] Type=simple LimitNOFILE=1000000 ExecStart=/usr/bin/node /opt/meshcentral/node_modules/meshcentral WorkingDirectory=/opt/meshcentral Environment=NODE_ENV=production User=meshcentral Group=meshcentral Restart=always # Restart service after 10 seconds if node service crashes RestartSec=10 # Set port permissions capability AmbientCapabilities=cap_net_bind_service [Install] WantedBy=multi-user.target #Fin du fichier
Maintenant il faut récupérer les certificats.
Aller sur une machine qui contient les certif (hpiers …) et on récupére les fichiers wildcard-syrte.obspm.fr.key et star\_obspm\_fr.crt
Copiez les wildcard dans le dossier /opt/meshcentral/meshcentral-data/
Supprimez ou mettez de cotés les fichiers suivant :
cp /root/wildcard-syrte.obspm.fr.key meshcentral-data/webserver-cert-private.key cp /root/star_obspm_fr.crt meshcentral-data/webserver-cert-public.crt
Bien penser à remettre les bon droits d'accés sur les fichiers :
chmod 644 webserver-cert-p*
Pour let's encrypt voici config.json :
"$schema": "http://info.meshcentral.com/downloads/meshcentral-config-schema.json",
"__comment1__": "This is a simple configuration file, all values and sections that start with underscore (_) are ignored. Edi$
"__comment2__": "See node_modules/meshcentral/sample-config-advanced.json for a more advanced example.",
"settings": {
"MongoDb": "mongodb://127.0.0.1:27017/meshcentral",
"cert": "mesh.dusong-laiguillon.xyz",
"WANonly": true,
"LANonly": false,
"_sessionKey": "MyReallySecretPassword1",
"_port": 443,
"_aliasPort": 443,
"redirPort": 80,
"_redirAliasPort": 80
},
"domains": {
"": {
"title": "MeshCentral",
"_title2": "Servername",
"_minify": true,
"_newAccounts": true,
"_userNameIsEmail": true
}
},
"letsencrypt": {
"__comment__": "Requires NodeJS 8.x or better, Go to https://letsdebug.net/ first before trying Let's Encrypt.",
"email": "max@dusong-laiguillon.xyz",
"names": "mesh.dusong-laiguillon.xyz",
"production": true,
"rsaKeySize": 3072
}
}
Lancez le serveur serveur.
Faire les commandes suivantes :
systemctl enable meshcentral.service
systemctl start meshcentral.service
systemctl status meshcentral.service
Une fois lancé.
Il faut créer un compte, le premier compte créé est administrateur. Ici root.
Une fois logguer, les machines se mettent dans un groupe.
Les groupes et les machines peuvent avoir des configs pour notifier l'utilisateur cible que l'on se connecte à ça machine. Voir même de lui demander son autorisation.
URL:
cd /opt/meshcentral npm install meshcentral sudo -u meshcentral node ./node_modules/meshcentral # install ce qui lui manque. #Si message d'erreur : Meshcentral n'arrive pas a installer un module node. Installer le à la main "npm install module" chown -R meshcentral:meshcentral /opt/meshcentral # Si répertoire de partage de fichier activé : chmod 755 –R /opt/meshcentral/meshcentral-files
Meshagent pour Windows peut être lancé en ligne de commande. L'application avec l'argument -h ressort l'aide suivante :
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. -nodeidhex Return the current agent identifier. -fullinstall Copy agent into program files, install and launch. -fulluninstall Stop agent and clean up the program files location. -proxy:host:port Specifiy an HTTPS proxy (after -fullinstall only). -tag:xxx Specifiy a agent tag (after -fullinstall only). -resetnodeid Reset the NodeID next time the service is started.
Pour passer outre le smartscreen windows10 (testé sur SyrtePC039, a testé sur plus de machine) et install l'agent comme un service :
@ECHO OFF PowerShell.exe -Command "Unblock-File -Path .\meshagent64-nomgroup.exe" meshagent64-nomgroup.exe -fullinstall
Il faut également modifier les 2 gpo suivantes sinon on n'a pas accès à la fenetre UAC quand on doit mettre le mot de passe admin :
gpedit.msc ⇒ Paramètre windows ⇒ Stratégie Locale ⇒ Option de sécurité :
Source : https://www.reddit.com/r/MeshCentral/comments/gicjvw/how_to_enter_admin_password_in_uac_promt_in/
!! Voir comment automatiser par un script powershell !!
Rq1:
Il semble qu'on peut faire ca dans la base de registre d'après https://eddiejackson.net/wp/?p=16923 :
HKEY\_LOCAL\_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableUIADesktopToggle /t REG_DWORD /d 1
Régles ligne GPO : Contrôle de compte d’utilisateur : autoriser les applications UIAccess à demander l’élévation sans utiliser le bureau sécurisé
HKEY\_LOCAL\_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v PromptOnSecureDesktop /t REG_DWORD /d 0
Régle la ligne GPO : Contrôle de compte d’utilisateur : passer au Bureau sécurisé lors d’une demande d’élévation
Cette ligne ne sert pas :
HKEY\_LOCAL\_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableSecureUIAPaths /t REG_DWORD /d 1
Régle la ligne GPO : Contrôle de compte d’utilisateur : élever uniquement les applications UIAccess installées à des emplacements sécurisés
Rq2:
Si on utilise le client en “one shot” et que la personne en face n'est pas admin, meme si on fait la manip ci-dessus on n'aura pas accès à la fenetre UAC
Cela ne pose pas vraiment problème car dans notre utilisation, le client sera toujours installé en tant que service .
Le client MacOS s'installe et semble fonctionner directement même sur des versions récentes 10.15. Attention il ne gère pas l'écran de connexion (login) mais on peut prendre la main sur le bureau de l'utilisateur (avec les problèmes habituels de clavier.
Important: l'application gère mal le réseau. Si lors de son lancement le réseau n'est pas disponible l'application se fige. La solution trouvée est de tester régulièrement par crontab la connexion de l'agent mesh avec notre serveur syrtemesh et en cas de besoin de relancer l'agent. Ceci se fait via un second paquet munki. A retirer donc dès correction de ce bug.
@reboot sleep 20; if [[ `netstat -t | grep syrtemesh | grep ESTABLISHED | wc -l` -ne 1 ]]; then (echo "START"; launchctl stop meshagent; launchctl start meshagent); fi 0 * * * * sleep 20; if [[ `netstat -t | grep syrtemesh | grep ESTABLISHED | wc -l` -ne 1 ]]; then (echo "START"; launchctl stop meshagent; launchctl start meshagent); fi
Attention
Le script ne peut se lancer qu'en administrateur.
Donc à partir de Meshcentral nous avons accès à tous les fichiers de l'ordinateur, y compris les fichiers des utilisateurs dans USERS. On ne pourrait par exemple pas donner un compte à des utilisateurs sauf à être sûr qu'ils sont bien administrateurs par ailleurs sur l'ordinateur concerné (PC de manip session admin ouverte en permanence par exemple).