Aller au contenu

un seul utilisateur par serveur web et supprimer l'utilisateur http - possible et conséquences ?


Messages recommandés

Bonjour,

Je vais arrêter d'expérimenter avec mon NAS (Synology DS211+) et faire une réinitialisation complète du système. Ensuite, je fais une installation propre de plusieurs serveurs web, au moins nextcloud (peut-être un deuxième pour NC 14 beta), firfly III, un serveur photo ( piwigo ou PicApport) et un remplacement pour Synology de NoteStation (NextNote, Paperwork, etc.) et peut-être wallabag.
Certains d'entre eux auront accès à des dossiers à l'extérieur de /web (dossier racine de la station web) pour accéder aux données et aux photos. Je ne veux pas avoir la sécurité de tous les fichiers en jeu si le serveur web est compromis car ils s'exécutent tous sous httt:http (utilisateur dédié pour Web Station).

Par conséquent, je veux créer un compte utilisateur par serveur web (configuration). Je voudrais également me permettre d'exécuter un serveur web avec différentes portées d'extensions, en particulier les scripts php et les choses basées sur java. Mon serveur web principal sera NginX.
Est-ce que cela a du sens ou est-ce que j'ai considéré que quelque chose n'allait pas ? Est-ce que c'est facilement réalisable ?

Obtenir un serveur root / master serveur ou utiliser les Dockers n'est pas une option actuellement. Il est sur l'agenda à moyen terme pour mettre à jour le matériel mais actuellement, je veux vivre avec mon DS211+.

J'ai trouvé quelques entrées dans le filet, mais j'ai encore du mal à comprendre l'ensemble de cette question.

Mes sources génériques sont:

  1. How to run two instances of apache on same system (Ubuntu) mais des approches différentes, laquelle est la meilleure?
  2. Best practice to run Linux service as a different user encore une fois différentes solutions telles que su et runuser, start-stop-daemon, /etc/init.d ou setuid
  3. Running Apache as a certain user se référant à suExec
  4. How do I set my web server to run as a specific user other than 'nobody'? encore une fois suExec et dit que changer envvars est rapide et sale
  5. How to make Apache run as current user se référant à /etc/apache2/envvars
  6. Php-cgi and suexec like configuration using NginX and php-fpm (LEMP Setup), réaliser suExec pour NginX
  7. Start a process as a specific user sudo des commandes telles que  sudo -u rails ls $someDir
  8. User per virtual host in Nginx le faire même sur une base de virtual host
  9. How to run multiple Nginx instances on different port mais mène à la configuration de virtual host à la fin.
  10. How do I change the NGINX user? dit qu'il suffit de changer le user ligne dans nginx.conf
  11. How To Run Multiple Websites Using Nginx Webserver On Ubuntu 15.04, pour autant que je comprenne un autre concept de virtual host
  12. Using Nginx with Nextcloud/Website/Paperwork parallel

mes sources spécifiques à Synology sont:

  1. 'http' user was deleted
  2. Synology NAS permissions for web server and FTP
  3. Web Station Permissions Confusion
  4. How do I access the Apache Web Server?
  5. Change web root folder to custom directory

 

Modifié par PackElend
Lien vers le commentaire
Partager sur d’autres sites

Pas compris @pluton212+, tu peux préciser ce que tu voulais dire stp au sujet de mon sujet sur les logiciels alternatifs ?

Du faite qu'il a pas la possibilité d'installer Docker sur son NAS, je vois pas trop ce qu'il peut faire là. Et puis pour Docker, il y a quand même un risque aussi au niveau sécurité. Si le daemon par root est touché alors tout les containers peuvent être atteint normalement.

Lien vers le commentaire
Partager sur d’autres sites

À l'origine, WebStation faisait fonctionner le serveur web (uniquement Apache à l'époque) avec les droits root😱

L'utilisateur http a justement été créé pour restreindre les droits des services web (nginx et Apache aujourd'hui).

De mon point de vue, il est plus important de sécuriser les base de données utilisées que le serveur web lui-même. On voit trop souvent des utilisateurs utiliser le compte root de MySQL (parfois sans mot de passe) alors qu'il faut créer un compte dédié à chaque base de données créée (et parfois un deuxième avec des droits restreints à quelques tables uniquement).

Lien vers le commentaire
Partager sur d’autres sites

Le 27/08/2018 à 13:22, InfoYANN a dit :

Les nouveaux membres sont invités à se présenter dans la section adéquate

fait

 

Le 27/08/2018 à 21:29, InfoYANN a dit :

Du faite qu'il a pas la possibilité d'installer Docker sur son NAS

pas possible sur DS211

Le 27/08/2018 à 21:20, InfoYANN a dit :

En effet, le DS211+ n'est pas compatible Docker. Autant pour moi 😢

😭

 

Le 28/08/2018 à 06:21, pluton212+ a dit :

Dans le premier bloc, il  l'intention d'installer des logiciels "non syno" sur le syno.

oui, nextcloud , firfly III piwigo ou PicApport), NextNote ou Paperwork etc. et peut-être wallabag.

 

Le 28/08/2018 à 09:31, PiwiLAbruti a dit :

De mon point de vue, il est plus important de sécuriser les base de données utilisées que le serveur web lui-même. On voit trop souvent des utilisateurs utiliser le compte root de MySQL (parfois sans mot de passe) alors qu'il faut créer un compte dédié à chaque base de données créée (et parfois un deuxième avec des droits restreints à quelques tables uniquement). 

c'est claire, une compte de  base de données par application.
 Je va suivre:
https://mariadb.com/kb/en/library/mysql_secure_installation/
https://docs.phpmyadmin.net/en/latest/privileges.html#deleting-a-user

 

Le 28/08/2018 à 11:33, PiwiLAbruti a dit :

Le problème est toujours entre le clavier et la chaise. 

😅

 

Je veux exécuter plusieurs instances de serveur web. Chaque instance avec son propre utilisateur

 

Lien vers le commentaire
Partager sur d’autres sites

Le 29/08/2018 à 19:08, PackElend a dit :

Je veux exécuter plusieurs instances de serveur web. Chaque instance avec son propre utilisateur

un explication pourquoi, je veux fait ça:

  1. Exécuter serveur web en tant qu'utilisateur non root limite l'empreinte de vulnérabilité d'un site web compromis.
    Changer l'utilisateur serveur web s'exécute comme vous permettra d'accorder et de contrôler l'accès à d'autres ressources en fonction du compte utilisateur sous lequel serveur web s'exécute. Disons qu'il y a un utilisateur pour accéder à tous les dossiers de photos, un utilisateur accédant à tous les dossiers de documents et ainsi de suite. Pour chaque utilisateur, il s'agit d'une seule instance serveur web , servant par exemple de la musique, des documents, etc.

  2. Exécuter une seule instance, et avoir toujours différents hôtes virtuels qui peuvent être accédés séparément, parfois en suivant ce chemin facile peut vous conduire à un serveur web lourd et gonflé.
    Si serveurs virtuels ont des exigences différentes (par exemple mod_perl pour un hôte virtuel, mod_python pour un autre, et peut-être mod_php pour un troisième hôte virtuel), alors votre instance apache est presque certainement un mangeur de RAM. Rappelez-vous qu'il va générer instantanément de nouveaux processus enfants de la même instance que nécessaire.... si votre application web perl est fréquemment accédée, pourquoi générer plusieurs instances d'un processus httpd qui est également chargé avec mod_python, mod_php et un assortiment d'autres modules qui, au moins du point de vue de l'application web perl, sont inutiles ?


     

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour, tout le monde,
Je suis venu un peu plus loin et on peut résoudre cela probablement assez élégamment avec le nginx comme proxyserver. Les serveurs web respectifs communiquent ensuite via des UNIX Sockets.  Cela signifie que la gestion des droits s'exécute via les droits utilisateur du système de fichiers..
e me demande juste comment je peux atteindre les serveurs web dans le LAN.
Vous devez également considérer le configurateur Nginx:

\usr\syno\etc.defaults\rc.sysv\nginx-conf-generator.sh

main proxy file

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;
    #include letsencrypt.conf;
    server_app1 app1subdomain.domain.eu;
    include app1location.conf
       }

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;
    #include letsencrypt.conf;
    server_app2 app2subdomain.domain.eu;
    include app1location.conf
       }

app1location.conf (location file for proxied web server)

location / {            
    proxy_pass http://unix:/home/app1/app1.com.unix_socket;
    proxy_set_header X-Real-IP $remote_addr; #Authorization
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_buffering off;
    client_max_body_size 0;
    proxy_read_timeout 36000s;
    proxy_redirect off;
           }

app2location.conf (location file for proxied web server)

   location / {            
        proxy_pass http://unix:/home/app2/app2.com.unix_socket;
        proxy_set_header X-Real-IP $remote_addr; #Authorization
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_buffering off;
        client_max_body_size 0;
        proxy_read_timeout 36000s;
        proxy_redirect off;
               }

 

Modifié par PackElend
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.