Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== MeshCentral ====== Tuto repris de mon tutos fait pour le SYRTE. \\ ===== Installation Serveur ===== - Install Meshcentral à partir d'une base Ubuntu 18 : \\ PDF utilisé : * [[http://info.meshcentral.com/downloads/MeshCentral2/MeshCentral2InstallGuide.pdf|Install Guide]] * [[http://info.meshcentral.com/downloads/MeshCentral2/MeshCentral2UserGuide-0.2.7.pdf|User Guide]] <code bash> # 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 </code> 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 : <code bash> 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 </code> Bien penser à remettre les bon droits d'accés sur les fichiers : ''chmod 644 webserver-cert-p*'' Pour let's encrypt voici config.json : <code> "$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 } } </code> Lancez le serveur serveur. Faire les commandes suivantes : <code bash> systemctl enable meshcentral.service systemctl start meshcentral.service systemctl status meshcentral.service </code> 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: * https://www.reddit.com/r/MeshCentral/ * https://github.com/Ylianst/MeshCentral/issues ===== Upgrade ===== <code bash> 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 </code> ===== Client Windows ===== **Meshagent** pour **Windows** peut être lancé en ligne de commande. L'application avec l'argument ''-h'' ressort l'aide suivante : <code> 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. </code> Pour passer outre le smartscreen windows10 (testé sur SyrtePC039, a testé sur plus de machine) et install l'agent comme un service : * Script Bash : <code> @ECHO OFF PowerShell.exe -Command "Unblock-File -Path .\meshagent64-nomgroup.exe" meshagent64-nomgroup.exe -fullinstall </code> 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é : - Contrôle de compte utilisateur : passer au bureau securisé lors d'une demande d'élévation => Disabled - Contrôle de compte d’utilisateur : autoriser les applications UIAccess à demander l’élévation sans utiliser le bureau sécurisé. => Enabled Source : https://www.reddit.com/r/MeshCentral/comments/gicjvw/how_to_enter_admin_password_in_uac_promt_in/ <color #ed1c24>** !! Voir comment automatiser par un script powershell !! **</color> \\ \\ **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 . ===== Client MacOS ===== 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.__ <code> @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 </code> \\ \\ ===== Notes diverses ===== :!: ''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). linux/meshcentral.txt Dernière modification : 30/05/2022 07:52de Martin