Jeedom et sécurité

Salut,

J’ai capté un bout de discussion entre @SylvainAr et @scith sur le chat, qui m’intéresse et que j’aimerais prolonger. Sylvain posait la question des problèmes de sécurité que pose jeedom, réponse de @scith :

Dans l’État tu peux l’installer mais que :

  1. en réseau local
  2. si tu as TRES PEU d’autres apps php, car son fonctionnement requiert les droits admin sur le serveur

Je me pose 2 question :

  • Quelles sont les apps en php que j’ai sur mon serveur ? Comment je sais si une appli est en php ?
  • Est-ce qu’il pourrait être installé dans un environnement plus “sécurisé”, comme docker ?

Merci !

Salut, voici le bout de code qui me fait dire ça.

Jeedom a besoin des droits root sur le serveur pour bien fonctionner. Sinon, beaucoup de ses fonctionnalités ne marchent tout simplement pas. C’est en fait parce que beaucoup de ses fonctionnalités et plugins doivent installer des scripts et des dépendances (par exemple OpenZWave) ou carrément piloter du hardware (comme des pins de raspberry).

Dans l’état actuel de cette app jeedom_ynh, les droits sudo doivent être donnés à www-data !! C’est lînstallation recommandée officiellement Jeedom. Par contre, l’installation officielle de Jeedom a été pensée pour un serveur sur lequel il n’y a que Jeedom d’installé (et rien d’autre).

En l’état, cette commande représente un grand risque pour un serveur YunoHost. Car toutes les apps qui utilisent www-data (donc un site web, wordpress, etc… En fait, toutes les apps dans /var/www/) ont ensuite les droits sudo sur le serveur ! Une faille dans une autre app peut ainsi devenir une faille dans le serveur. Je sais pas si je suis clair ?

Il faut revoir l’app jeedom_ynh en lui incluant un pool PHP5-FPM et un utilisateur dédié. Avoir un utilisateur dédié permettra de contenir les droits sudo à l’utilisateur Jeedom et donc pas à toutes les apps webs. Malheureusement, je n’ai pas encore les connaissances suffisantes en PHP5-FPM pour faire cela. Je vais essayer de m’inspirer d’autres apps mais j’ai pas encore trouvé le temps. Si d’autre ont le courage …

Installer Jeedom dans Docker est en effet plus sécurisé car tu contiens les droits sudo dans ton conteneur. Il existe une image officielle de Jeedom pour Docker. Par contre il faut faire attention à bien passer les périphériques USB (dongle ZWave, etc…) à ton conteneur. Moi personnellement j’utilise Jeedom dans une VM VirtualBox.

Ok, merci pour ces explications, c’est très clair ! Et à priori si on désinstalle ça supprime bien les droits sudo sur www-data, c’est dans le script remove.
Effectivement la piste de l’utilisateur dédié a l’air d’être une bonne solution (mais je pourrais pas aider…).