SECURITÉ : Droits d'accès au dossier Moodle

SECURITÉ : Droits d'accès au dossier Moodle

par Joe Lesco,
Nombre de réponses : 18
Bonjour,

Tout d'abord un grand merci à cette communauté vivante et motivée !!!
Je suis tout nouveau dans la sphère moodle et je souhaite l'installer sur un serveur mais mes connaissance sont limitées. Mais je vous rassure la motivation est belle et bien là !!

J'ai suivi jusqu'à présent la notice d'installation présente sur le site moodle mais je bute sur un aspect sécuritaire. J'ai tout de même recherché sur le forum ce qui se disait  à ce propos mais je me suis perdu dans tout ça...

Je m'explique : Il est dit sur la présentation d'installation de moodle qu'il faut sécurisé les fichiers moodle en ne donnant pas droit à l'utilisateur le droit d'écriture.

Je cite :
  • Sécurisez les fichiers Moodle : Il est vital que les fichiers ne soient pas inscriptibles par l'utilisateur système du serveur web. Par exemple, sur Unix/Linux (en tant que root) :
# chown -R root /path/to/moodle
# chmod -R 0755 /path/to/moodle

 La commande chmod -R 0755 donne l'autorisation sur les fichier et les dossiers 755.

Seulement j'ai aussi lu qu'il fallait l'autorisation 755 sur les dossiers et 644 sur les fichiers (y compris config.php).

Du coup je suis un peu perdu... incertain Si vous pouviez m'éclairer sur la commande à adopter je serai rassuré !!!!!!


De plus je n'ai pas acces via putty au serveur en SSH du coup je modifie les droits d'accès via FileZilla en réalisant un clic droit côté fichier serveur puis je fais attribus du fichier. Cette façon de procéder ne pose t' elle pas de souci ??


Un grand merci à toute la communauté !!!!



Moyenne des évaluations  -
En réponse à Joe Lesco

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Sans accès au shell (via Putty ou SSH), le seul problème est que ce n'est pas possible d'automatiser (il faut presque y aller fichier par fichier).

Pour distinguer entre fichiers et dossiers, on peut utiliser les commandes suivantes. Pour les dossiers

find /path/to/moodle -type d -name "*" -exec chmod 755 '{}' \;

Pour les fichiers :

find /path/to/moodle -type f -name "*" -exec chmod 644 '{}' \;
En réponse à Joe Lesco

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Patrick GUYARD,
Bonjour Joe,

Merci pour votre question, qui m'a permis de voir qu'une de mes installations n'est pas tout à fait "sécurisée" au sens des bonnes pratiques recommandées par la communauté Moodle !
C'est sans doute en raison de quelques difficultés historiques lors de l'installation de plugins : parfois j'avais dû modifier certains droits, et c'est toujours plus facile de le faire en masse sur tout le répertoire. Un bon chmod -R 777 par exemple !
Mais comme l'installation en question n'est qu'une installation d'essais, de tests et d'intégration, et que je ne suis pas un parano, ce n'est pas très grave, surtout sur une installation en local (c'est mon installation de bidouille pour y faire tout et n'importe quoi)...

Si donc vous êtes nouveau et motivé sur Moodle, vous avez tout intérêt à suivre les bons conseils de la documentation officielle.
Cependant, lorsque certaines choses coincent un peu, vous pouvez tester quelques modifications d'autorisations, en notant bien ce que vous faîtes, pour remettre les choses en ordre après la bidouille.
Par exemple, si le propriétaire de votre Moodle est l'utilisateur "root", et que l'ensemble de votre dossier est en mod "755", lorsque vous lancerez le programme d'installation via votre navigateur web, il est probable (il me semble) que le fichier de configuration ne pourra pas être créé ou modifié par le serveur web...  Vous devrez peut-être changer les autorisations sur le fichier config.php (en 755 ou 777), ou en changer le propriétaire pour qu'il corresponde au serveur web.
En fin d'installation, il faudra re-sécuriser votre fichier config.php (en 755 et utilisateur "root" selon la doc)

Par ailleurs, j'ai des installations dont les fichiers sont en 755, et d'autres en 644 : toutes fonctionnent très bien. Le 644 est probablement la norme mieux sécurisée...  Et il me semble que c'est d'ailleurs dans ce mode d'autorisation qu'ils sont initialement prévus, avant "toute bidouille". Cependant, je n'ai pas noté d'erreur avec les fichiers en 755, ni avec le serveur web comme propriétaire.

Je pose donc les questions de fond suivante à la communauté :
En quoi sécurise-t-on la plate-forme en précisant "root" comme propriétaire, plutôt que le serveur web (à distinguer les cas d'une installation avec accès par internet, d'une installation locale étanche à tout réseau) ? (chown -R root:root par exemple)
En quoi sécurise-t-on la plate-forme en supprimant les droits d'exécution sur les fichiers ? (chmod 644 par exemple) ?

Reste enfin votre question de l'accès au serveur.
Via un client FTP comme FileZilla, ce n'est pas évident de changer le propriétaire d'un dossier. Vous ne pouvez a priori que modifier les autorisations. Il vaudrait peut-être mieux éviter de le faire sur les dossiers en mode récurrent avec prise en compte des fichiers, car vous ne maîtriseriez plus les éventuelles particularités de certains fichiers (mais y en a-t-il vraiment ? Moi, je n'ai pas craint d'utiliser le mode récurrent, mais savais-je ce que je faisais ?).
Avec un accès en ligne de commande (via Putty par exemple), lorsqu'il y a un blocage sur un rôle, essayez d'abord une modification du propriétaire pour passer de root au serveur web, en mode recurrent (-R) sur tout le dossier Moodle, car de toute façon, initialement, tous les fichiers ont le même propriétaire (à vous de vérifier vous-même : je décline toute responsabilité !) . Une fois le blocage levé, revenez au propriétaire "root" comme préconisé dans la doc.

J'espère que cela vous rassurera sur la question de la sécurisation de votre installation Moodle, en tout cas pour entreprendre une petite période de prise en compte du logiciel, avant de faire une vrai installation en production. A ce moment, il faudra sans doute être un peu plus sérieux et procédurier.
En tout cas, comme vous l'avez bien écrit, il y a une bonne communauté, avec des personnes qui connaissent bien leur sujet et toujours prêtes à aider rapidement (par exemple sur ce forum, les excellents Daniel, Séverin, Alain-J, Nicolas, Mary, et compagnie... Laquelle sera la plus rapide pour répondre à ma question ci-dessus ?) . Quant au logiciel lui-même, il est si bien construit, que même un non informaticien comme moi arrive à y comprendre ce qui lui est nécessaire pour continuer...

En réponse à Patrick GUYARD

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Il n'y a a priori pas de problème à appliquer les droits de façon récursive (pas "récurrente") dans tous les dossiers et fichiers constituants Moodle.

Pour autoriser l'installation de divers plugins, on peut facilement lancer une commande (depuis le dossier Moodle, avec un accès au serveur) telle que :

chmod -R 770 theme mod blocks filter course/format local plagiarism question/type admin/tool report repository

et pour empêcher de nouveau l'installation/mise à jour :

chmod -R 750 theme mod blocks filter course/format local plagiarism question/type admin/tool report repository

Concernant les droits, cela dépend du niveau de prudence (voire paranoïa) souhaité, et du nombre d'accès au serveur, ainsi que le réglage des utilisateurs et propriétaires des fichiers.

Restreindre à root permet d'éviter de potentielles attaques via le serveur web.

Séverin

Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Patrick GUYARD,

Merci Séverin, et bravo pour la rapidité de réponse !

Je comprends au final que la question de sécurité conduisant à faire détenir le dossier Moodle par l'utilisateur "root" et à bien définir les droits en lecture et écriture dépend surtout de ce que chacun souhaite, et n'est pas déterminante pour la bon fonctionnement du logiciel.

Pour ce bon fonctionnement, il suffit donc :

  1. Que le serveur web puisse seulement avoir accès en lecture et exécution, dans le cas général.
  2. Que pendant les procédures d'installation (initiale, mise à jour, ou plugin), lorsqu'elles sont lancées via l'interface web, le serveur-web ait temporairement accès en écriture aux sous-dossiers et fichiers concernés. (on fait alors un chmod -R 770 sur le dossier concerné, et l'on revient à chmod -R 750 ou 755 en fin d'installation)

Reste néanmoins à confirmer ou infirmer le besoin de droits d'exécution pour les fichiers, puisqu'il semble que les droits 644 fassent très bien fonctionner le système. C'est dans ce mode que les fichiers sont disponibles avant l'installation initiale. Faudrait-il néanmoins faire un "récurage" brutal des fichiers pour les passer de 644 à 755, en utilisant la fonction récursive -R pour modifier tous les fichiers de façon récurrente, de dossier en sous-dossier  ?

Patrick

En réponse à Patrick GUYARD

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

> Reste néanmoins à confirmer ou infirmer le besoin de droits d'exécution pour les fichiers, puisqu'il semble que les droits 644 fassent très bien fonctionner le système.

Il n'est pas nécessaire d'avoir les droits d'exécution sur les fichiers, sauf peut-être pour ceux permettant de piloter Moodle en ligne de commande, si on utilise une telle possibilité.

> Faudrait-il néanmoins faire un "récurage" brutal des fichiers pour les passer de 644 à 755, en utilisant la fonction récursive -R pour modifier tous les fichiers de façon récurrente, de dossier en sous-dossier ?

AMHA, c'est un risque potentiel que de mettre des fichiers en exécutable si pas nécessaire.

Au contraire, mes fichiers et dossiers sont respectivement en 640 et 750, avec comme propriétaire un utilisateur normal (p.ex. "moodle") et comme groupe "www-data". Je ne parle ici que du dossier des sources de Moodle, et non du dossier de données ("moodledata"). Extrait de listing (ls -la):

...
drwxr-x--- 42 moodle www-data    4.0K fév 12 16:21 blocks
drwxr-x---  3 moodle www-data    4.0K déc 22 16:29 blog
-rw-r-----  1 moodle www-data    1.2K oct 29 13:44 brokenfile.php
drwxr-x---  6 moodle www-data    4.0K fév 12 16:21 cache
...

Et pour faire ceci, j'utilise les commandes déjà citées ci-dessus (pour les fichiers, resp. les dossiers) :

find /path/to/moodle -type f -name "*" -exec chmod 640 '{}' \;
find /path/to/moodle -type d -name "*" -exec chmod 750 '{}' \;
Moyenne des évaluations Utile (1)
En réponse à Nicolas Martignoni

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Patrick GUYARD,

Je suis plutôt "fan" de cette approche, proposée par Nicolas : les dossiers en 750 et les fichiers en 640, avec un utilisateur spécifique à Moodle comme propriétaire (il faut donc le créer) et le groupe correspondant au serveur web ( par exemple "www-data" sous Debian/Ubuntu).

On voit à notre discussion que chacun peut aborder la question de la "sécurité" selon sa propre politique. La documentation officielle de Moodle-Doc reste cependant un bon garde-fou.

Pour le dossier "Moodledata", il faut effectivement que l'utilisateur système du serveur web ait accès en lecture-écriture... Un bon chmod -R 777 réglera bien le problème s'il y en a un ! Mais que le dossier ne soit pas à l'intérieur d'un dossier du site web. Voir la documentation.


En réponse à Nicolas Martignoni

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Comme Nicolas, j'ai un utilisateur spécifique qui est propriétaire des fichiers (me permettant d'y travailler directement sur le serveur), et le groupe correspondant au serveur web possède les droits de lecture (voire d'écriture temporairement, le temps des mises à jour), pour que l'application fonctionne.

Séverin

En réponse à Patrick GUYARD

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

> En quoi sécurise-t-on la plate-forme en précisant "root" comme propriétaire, plutôt que le serveur web

Pour ma part, je considère que ce n'est pas une bonne idée, et que c'est plus sûr d'avoir le serveur web comme propriétaire (ou groupe), avec les permissions adéquates. D'ailleurs, la plupart du temps, il n'est pas possible d'avoir ses fichiers possédés par root.

En réponse à Joe Lesco

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Joe Lesco,

Un grand merci pour toutes vos réponses !! sourire

Elles m'ont éclairé même si tout le monde ne semble pas tout à fait être du même avis. Mais ce que j'en retire c'est qu'il n'y a pas une mais plusieurs façon de faire en fonction du niveau de sécurité souhaité.


Pour ma part je vais faire simple :

find /path/to/moodle -type d -name "*" -exec chmod 755 '{}' \;
find /path/to/moodle -type f -name "*" -exec chmod 644 '{}' \;


Un grand merci encore pour l'efficience de cette communauté !!!grand sourire

En réponse à Joe Lesco

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Je pense qu'attribuer des droits 750 et 640 serait plus pertinent : cela évite de donner des droits à "n'importe quel utilisateur sur le système". Et devrait être suffisant pour que le serveur web y ait accès.

Séverin

En réponse à Joe Lesco

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Patrick GUYARD,

Bonjours Joe

Vous avez écrit : "Elles m'ont éclairé même si tout le monde ne semble pas tout à fait être du même avis".

Il me semble au contraire que Nicolas, Séverin, et moi avons au final la même pratique (sur les serveurs que nous voulons "sécuriser") :

  • Un propriétaire spécifique pour le dossier de moodle
  • Un groupe incluant le serveur web
  • Des droits 750 sur les dossiers
  • Des droits 640 sur les fichiers
  • Le cas échéant, l'ouverture temporaire des droits en exécution, si nécessaire, lors de procédures d'installation, mises à jour, et maintenance.

Il est vrai cependant que pour mes installations servant à la bidouille, j'ouvre sans détour tous les droits avec un chmod -R 777 ! Comme cela les installations ne sont pas bloquées par les questions d'autorisation. Mais c'est au risque de polluer l'installation avec des programmes mal construits, ce qui est plutôt rare avec Moodle.

Moyenne des évaluations Utile (1)
En réponse à Patrick GUYARD

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Voila un très bon résumé sourire

Et effectivement, pour mon instance Moodle de test, les droits sont plus étendus, pour permettre l'installation de plugins facilement, en tout temps clin d’œil

Séverin

En réponse à Séverin Terrier

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles

Bonjour,

En mutualisé quels sont nos moyens d'action par rapport à ces deux points (dont je ne comprends pas d'ailleurs la signification).

  • Un propriétaire spécifique pour le dossier de moodle. A part les droits je ne pense pas qu'on puisse fixer de propriétaire avec un simple gestionnaire de fichiers. Voir copie ci-dessous.
  • Un groupe incluant le serveur web. Ceci est un mystère (de plus) pour moi.

droits

 

Merci.

Daniel

En réponse à Daniel Méthot

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

En effet, Daniel, comme je l'écrivais plus haut, sans accès à la ligne de commande sur un serveur (et donc par exemple en hébergement mutualisé), tu ne pourras pas régler ainsi la situation.

Il faut d'ailleurs reconnaître que, pour cette raison-même, un hébergement mutualisé ne peut convenir que pour des situations bien particulières, et n'est pas adéquat pour des institutions à partir d'une certaine grandeur, ou avec des besoins spécifiques.

Pour tes remarques : ta copie écran montre bien qu'il y a un propriétaire (utilisateur) et un groupe pour tes fichiers. Ce propriétaire et ce groupe sont définis sur le système qui héberge ta plateforme. Pour que ça marche correctement, l'utilisateur (virtuel) qui fait tourner l'application "serveur web" sur le serveur doit pouvoir lire les fichiers (voire écrire certains d'entre eux). C'est cet utilisateur dont nous parlons ici.

En réponse à Nicolas Martignoni

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles

Je pense avoir compris que :

  • Propriétaire = Utilisateur. C'est à dire celui qui a les codes d'accès dans cet espace mutualisé. Moi à priori.
  • Groupe = ceux qui accèdent à mon Moodle sans pouvoir modifier les fichiers.
  • Tous les autres qui ont aussi les même droits.

Je vois qu'on conseille 750 ou 640 selon les cas et moi j'ai souvent 755 pour les dossiers et 644 pour les fichiers par défaut (créé par Softaculous lors de l'installation automatique).

C'est grave docteur ?

Merci

Daniel

En réponse à Daniel Méthot

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Non, tu n'as pas bien compris (désolé, mon explication doit être mauvaise, sans doute ; je réessaie) :

  • utilisateur = compte qui permet de d'authentifier sur le serveur
  • propriétaire = l'utilisateur à qui l'on a donné la propriété sur le fichier/dossier ;
  • groupe = un utilisateur appartient à un ou plusieurs groupes, définis sur le serveur, qui permettent de donner des droits identiques à plusieurs utilisateurs ;
  • droit d'accès = ce que l'on peut faire sur un fichier/dossier ; W = écrire/modifier, R = lire (mais pas modifier), X = lancer (pour un fichier) ou descendre dedans (pour un dossier).

À chaque fichier/dossier sont attribués des droits à 3 niveaux : l'utilisateur propriétaire (qu'on lui a attribué), le groupe (qu'on lui a attribué) et les autres utilisateurs. Chacun de ces 3 niveaux peut avoir les droits R, W et/ou X.

Par exemple, dans mon listing ci-dessus :

drwxr-x---  3 moodle www-data    4.0K déc 22 16:29 blog
-rw-r----- 1 moodle www-data 1.2K oct 29 13:44 brokenfile.php

Les droits sur le dossier "blog" sont RWX pour l'utilisateur "moodle", qui en est le propriétaire, RX pour les utilisateurs membres du groupe "www-data" (qui ne comporte que l'utilisateur qui est propriétaire de l'exécutable du serveur web) et rien du tout pour les autres utilisateurs.

En abrégé (je passe sur les conversions en mode binaire), RWX est codé 7, R-X est codé 5 et rien est codé 0, donc RWXR-X--- est codé 750.

Toujours dans cet exemple, les droits sur le fichier "brokenfile.php" sont RW pour l'utilisateur "moodle", R pour le groupe "www-data" et rien pour les autres. RW est codé 6, R est codé 4, rien toujours 0, donc RW-R----- est codé 640.

Mais tout cela est beaucoup mieux expliqué ici : http://fr.wikipedia.org/wiki/Permissions_UNIX

Moyenne des évaluations Utile (2)
En réponse à Nicolas Martignoni

Re: SECURITÉ : Droits d'accès au dossier Moodle

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Très bonne explication détaillée sourire

Message vers lequel il faudra penser à pointer lorsque des gens se poseront des questions sur les droits sur les fichiers et dossiers clin d’œil

Séverin