4 novembre 2023

Autorisations de site Web sous Linux : 750 et 650 VS 755 et 644

Découvrons ensemble quelle est la forme correcte d'autorisations pour un site Web Linux et pourquoi presque tout le monde le fait mal.

La gestion des autorisations sur un système d'exploitation Linux est un élément essentiel de la sécurité et de l'intégrité d'un site Web hébergé sur celui-ci. Lorsqu'on parle de restaurer les autorisations sur un hôte virtuel (vhost) sous Linux, on retrouve presque universellement la recommandation d'utiliser 755 pour les répertoires et 644 pour les fichiers. Ces indications ne tiennent toutefois pas compte d’importantes considérations de sécurité et sont ABSOLUMENT FAUX.

L'importance de la séparation des privilèges sous Linux

Linux est un système d'exploitation qui fonde une grande partie de son modèle de sécurité sur la séparation des privilèges. Cette séparation est un principe fondamental qui implique que chaque processus doit fonctionner en utilisant le moins de privilèges nécessaires pour mener à bien sa tâche. Cela minimise les conséquences d’un exploit ou d’une mauvaise configuration. Par exemple, dans un environnement d'hébergement partagé, si un site est compromis, la violation d'un vhost particulier ne doit pas permettre à l'attaquant de lire, d'écrire ou d'exécuter des fichiers appartenant à d'autres utilisateurs, qui sous Linux sont identifiés de manière unique par UserID (UID) et ID de groupe (GID).

Cette architecture de sécurité empêche l’élévation des privilèges et contient les dommages, préservant ainsi l’intégrité globale du système.

autorisations rwx pour les utilisateurs et les groupes et notation numérique

Les autorisations sous Linux sont divisées en trois catégories : propriétaire (utilisateur), groupe (groupe) et autres (autres). 'rwx' signifie lire, écrire et exécuter. Ces autorisations déterminent ce que les utilisateurs peuvent faire avec un fichier ou un répertoire donné :

  • r (lire): Permet de visualiser le contenu du fichier/répertoire.
  • w (écrire): Permet la modification du fichier/répertoire.
  • x (exécuter): Permet l'exécution de fichiers ou la navigation dans des répertoires.

Ces autorisations sont représentées numériquement, où 4 signifie « lire », 2 pour « écrire » et 1 pour « exécuter ». Une autorisation telle que 777 accorderait à tout le monde (utilisateur, groupe et autres) tous les privilèges sur un fichier ou un répertoire.

La combinaison de ces nombres crée des ensembles d'autorisations :

  • 7: Accès complet (rwx) – Lecture, écriture et exécution.
  • 6: Lecture et écriture (rw-) – Lecture et écriture, mais pas d'exécution.
  • 5: Lire et exécuter (rx) – Lire et exécuter, mais pas d'écriture.
  • 4: Lecture seule (r–) – Lecture seule.
  • 0: Aucune autorisation (–x) – Aucune autorisation.

Pour chaque fichier et répertoire, nous pouvons définir des autorisations distinctes pour l'utilisateur, le groupe et autres :

  • Premier numéro : autorisations du propriétaire (utilisateur).
  • Deuxième problème: autorisations de groupe.
  • Troisième problème: Autorisations pour les autres (utilisateurs hors groupe et non propriétaires).

Exemple de configuration des autorisations

  • Annuaire: 750
    • Propriétaire (utilisateur): rxx
    • Groupe: rx
    • Autre-
  • Déposez votre dernière attestation : 640
    • Propriétaire (utilisateur):rw-
    • Groupe:r–
    • Autre-

Cette configuration garantit que :

  • Le propriétaire a un contrôle total sur ses fichiers.
  • Le groupe (qui peut inclure le processus du serveur Web) peut lire des fichiers et parcourir des répertoires, mais pas les modifier.
  • Les autres utilisateurs n'ont pas accès, protégeant vos données dans un environnement d'hébergement partagé.

L'erreur sous-jacente des permis 755 et 644

L'autorisation 755 pour les répertoires permet à tous les utilisateurs de lire et d'exécuter les fichiers qu'ils contiennent, tandis que l'autorisation 644 pour les fichiers permet à tout le monde de les lire. Ce paramétrage ne respecte pas le principe de la moindre autorisation. Le dernier groupe, « autres », qui inclut tout utilisateur non identifié comme propriétaire ou partie du groupe, ne doit pas avoir d'autorisations sur ces fichiers ou répertoires. Les autorisations les plus sûres devraient donc être 750 pour les répertoires et 640 pour les fichiers, où le dernier chiffre (représentant « autres ») est défini sur 0, refusant toute autorisation.

On trouve des indications officielles de ce type auprès d'importants hébergeurs :

Kéliweb :

SiteGround :

Autorisations sur le site

Plan serveur :

Autorisations du plan serveur

TopHôt :

Autorisations TopHost

Kinsta :

Autorisations KINSTA

 

et nous pourrions continuer presque sans fin, incluant plus de 90 % des hébergeurs mondiaux.

 

L'origine de l'erreur et du péché originel

En matière de sécurité informatique, notamment dans le secteur de l’hébergement, chaque petit détail peut faire la différence. L'attribution d'autorisations aux fichiers et répertoires d'un site Web hébergé sur un serveur Linux est un aspect critique qui est souvent sous-estimé ou géré de manière sous-optimale. L'erreur fondamentale dans la gestion des autorisations, un « péché originel » dans le contexte système, résulte d'une compréhension incomplète de l'interaction entre l'utilisateur propriétaire du vhost et le groupe de serveurs Web.

Confusion traditionnelle

Traditionnellement, la plupart des didacticiels et des guides, y compris certains fournis par des concurrents bien connus du secteur, se limitent à suggérer des paramètres d'autorisation standardisés, tels que 755 pour les répertoires et 644 pour les fichiers. Ces instructions généralisées ne tiennent pas compte d'un point crucial : l'utilisateur du serveur web, qui dans des environnements comme cPanel est généralement identifié comme « personne », devrait idéalement être placé au sein du groupe propriétaire des fichiers hébergés.

L'insuffisance de la configuration standard

Sans cette inclusion stratégique, une configuration permissive a tendance à être utilisée pour permettre au processus du serveur Web de lire des fichiers, en particulier des fichiers HTML statiques. Les autorisations de lecture (et parfois aussi d'exécution) sont attribuées à la catégorie « autres », c'est-à-dire à tous les utilisateurs n'appartenant pas au groupe du propriétaire du fichier. Il s’agit d’un palliatif qui résout le problème d’accessibilité mais ouvre des failles de sécurité potentielles. En fait, si un attaquant parvenait à obtenir un accès, même limité, au système, il trouverait une surface d'attaque plus grande que nécessaire.

Certains soutiennent qu'un serveur, configuré même avec ces autorisations plus souples, reste tout de même assez sécurisé et que la fonctionnalité globale n'est pas affectée. Il s’agit cependant d’une vision à courte vue du paysage de la cybersécurité. Il est essentiel que les professionnels de l’industrie, en particulier ceux qui ont des années d’expérience, adhèrent au principe « MOINS C’EST PLUS ». Ce principe se traduit par une politique de minimisation des privilèges : chaque utilisateur ne doit disposer que des autorisations strictement nécessaires pour exercer ses fonctions, ni plus ni moins.

C'est pourquoi, en dehors du propriétaire et de son groupe, les « autres » – tous les autres utilisateurs du système – ne devraient pas avoir la possibilité d'effectuer des actions sur les fichiers. Vous devez toujours viser une configuration des autorisations garantissant le niveau de sécurité le plus élevé possible, compatible avec le fonctionnement des applications hébergées. Cela signifie que le dernier chiffre des autorisations, celui qui régule les actions des « autres », doit être mis à zéro (750 pour les répertoires et 640 pour les fichiers), créant ainsi un environnement dans lequel l'accès est strictement contrôlé et limité.

La bonne manière d'obtenir des autorisations

Dans le contexte de la gestion d'un serveur Web, l'attribution correcte des autorisations sur les fichiers et les répertoires est un élément fondamental pour garantir la sécurité du système sans compromettre ses fonctionnalités. Pour atteindre cet objectif, il est essentiel de suivre une procédure qui inclut à la fois une flexibilité opérationnelle et la rigidité nécessaire en termes de contrôle d'accès.

Intégration de l'UID dans le groupe de serveurs Web

La stratégie optimale consiste à ajouter l'UID de l'hôte virtuel (vhost) au groupe utilisé par le serveur Web, qui peut varier en fonction de la configuration et du serveur Web utilisé (par exemple, « apache », « www-data », « personne ' ou 'nginx'). Cette étape est cruciale car elle vous permet de gérer les autorisations de manière granulaire, en garantissant que les ressources vhost sont accessibles depuis le serveur Web de la manière nécessaire et avec les limitations appropriées.

Configuration des autorisations

Une fois que vous avez intégré l'utilisateur dans le groupe approprié, il est temps de définir les autorisations. Les autorisations d'annuaire doivent être définies sur 750, permettant au propriétaire un accès complet (lecture, écriture, exécution), au groupe (dans ce cas, le serveur Web) la possibilité de lire et de parcourir les répertoires, et aucun accès aux autres utilisateurs. De même, les autorisations de fichiers doivent être définies sur 640, permettant au propriétaire de lire et d'écrire, au serveur Web de lire les fichiers et, encore une fois, de refuser tout accès aux autres.

Exemple pratique

Imaginons que nous ayons un utilisateur nommé pippo.it. En ajoutant pippo.it au groupe de serveurs Web, tel que « personne » ou apache ou ww-data pour Apache, ou nginx pour le serveur Web NGINX, cela garantira que le serveur Web peut effectuer toutes les opérations nécessaires telles que la lecture de fichiers et leur transmission aux utilisateurs finaux. via le navigateur. Ces autorisations correctement attribuées empêchent les autres utilisateurs du système, qui ne font pas partie de ce groupe, d'avoir toute forme d'accès aux fichiers et ressources associés à d'autres hôtes virtuels. Ceci est particulièrement important dans les environnements d'hébergement mutualisé, où la séparation entre les ressources des différents utilisateurs doit être absolument garantie.

La sécurité comme priorité

L’adoption de ces autorisations garantit un équilibre entre fonctionnement et sécurité. Le serveur Web peut effectuer ses opérations en douceur, telles que la diffusion de pages et la gestion d'applications dynamiques., mais sans avoir la possibilité de modifier les fichiers, restriction qui minimise le risque de dommages en cas de vulnérabilité du logiciel du serveur web. Dans le même temps, les autres utilisateurs du système sont complètement isolés des ressources de pippo.it, une mesure préventive contre les compromissions croisées entre les hôtes virtuels.

conclusion

Revoir la gestion des permissions sur les fichiers et répertoires est une nécessité pour la sécurité et l’efficacité d’un site internet hébergé sur un serveur Linux. Le passage d'une configuration 755/644 permissive à une configuration 750/640 plus restreinte et sécurisée réduit considérablement le risque de compromission dû à un partage inapproprié des autorisations.. Il est essentiel de comprendre le rôle des utilisateurs et des groupes et la manière dont ils interagissent avec les autorisations de fichiers pour maintenir un environnement Web sécurisé, en particulier dans une configuration d'hébergement partagé.

Même si une configuration d’autorisations plus sécurisée peut sembler moins pratique, son impact positif sur la sécurité de l’hébergement est indéniable. La mise en œuvre d'autorisations correctes, ainsi qu'une configuration minutieuse du groupe de serveurs Web, garantissent que seules les entités autorisées ont accès aux fichiers et répertoires, protégeant ainsi les données des utilisateurs et l'intégrité du serveur lui-même. Avec la sécurité comme priorité, 750 autorisations pour les répertoires et 640 pour les fichiers devraient être la norme pour tout administrateur système conscient et responsable.

Vous avez des doutes ? Vous ne savez pas par où commencer ? Contactez-nous !

Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

INFORMATIONS

Managed Server Srl est un acteur italien leader dans la fourniture de solutions système GNU/Linux avancées orientées vers la haute performance. Avec un modèle d'abonnement peu coûteux et prévisible, nous garantissons que nos clients ont accès à des technologies avancées en matière d'hébergement, de serveurs dédiés et de services cloud. En plus de cela, nous proposons des conseils système sur les systèmes Linux et une maintenance spécialisée en SGBD, sécurité informatique, Cloud et bien plus encore. Nous nous distinguons par notre expertise dans l'hébergement de CMS Open Source de premier plan tels que WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart et Magento, soutenus par un service d'assistance et de conseil de haut niveau adapté aux administrations publiques, aux PME et à toutes tailles.

Red Hat, Inc. détient les droits de Red Hat®, RHEL®, RedHat Linux® et CentOS® ; AlmaLinux™ est une marque commerciale d'AlmaLinux OS Foundation ; Rocky Linux® est une marque déposée de la Rocky Linux Foundation ; SUSE® est une marque déposée de SUSE LLC ; Canonical Ltd. détient les droits sur Ubuntu® ; Software in the Public Interest, Inc. détient les droits sur Debian® ; Linus Torvalds détient les droits sur Linux® ; FreeBSD® est une marque déposée de The FreeBSD Foundation ; NetBSD® est une marque déposée de la Fondation NetBSD ; OpenBSD® est une marque déposée de Theo de Raadt. Oracle Corporation détient les droits sur Oracle®, MySQL® et MyRocks® ; Percona® est une marque déposée de Percona LLC ; MariaDB® est une marque déposée de MariaDB Corporation Ab ; REDIS® est une marque déposée de Redis Labs Ltd. F5 Networks, Inc. détient les droits sur NGINX® et NGINX Plus® ; Varnish® est une marque déposée de Varnish Software AB. Adobe Inc. détient les droits sur Magento® ; PrestaShop® est une marque déposée de PrestaShop SA ; OpenCart® est une marque déposée d'OpenCart Limited. Automattic Inc. détient les droits sur WordPress®, WooCommerce® et JetPack® ; Open Source Matters, Inc. détient les droits sur Joomla® ; Dries Buytaert détient les droits sur Drupal®. Amazon Web Services, Inc. détient les droits sur AWS® ; Google LLC détient les droits sur Google Cloud™ et Chrome™ ; Microsoft Corporation détient les droits sur Microsoft®, Azure® et Internet Explorer® ; La Fondation Mozilla détient les droits sur Firefox®. Apache® est une marque déposée de The Apache Software Foundation ; PHP® est une marque déposée du groupe PHP. CloudFlare® est une marque déposée de Cloudflare, Inc. ; NETSCOUT® est une marque déposée de NETSCOUT Systems Inc. ; ElasticSearch®, LogStash® et Kibana® sont des marques déposées d'Elastic NV. Hetzner Online GmbH détient les droits sur Hetzner® ; OVHcloud est une marque déposée d'OVH Groupe SAS ; cPanel®, LLC détient les droits sur cPanel® ; Plesk® est une marque déposée de Plesk International GmbH ; Facebook, Inc. détient les droits sur Facebook®. Ce site n'est affilié, sponsorisé ou autrement associé à aucune des entités mentionnées ci-dessus et ne représente en aucune manière aucune de ces entités. Tous les droits sur les marques et noms de produits mentionnés sont la propriété de leurs titulaires respectifs des droits d'auteur. Toutes les autres marques mentionnées appartiennent à leurs titulaires. MANAGED SERVER® est une marque déposée au niveau européen par MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italie.

Retour en haut de page