comment exécuter les services du système en envoyant une requête via un navigateur


0

Je souhaite créer une interface similaire à celle d'un routeur DSL, dans laquelle vous pouvez modifier les paramètres réseau du navigateur et redémarrer le routeur avec de nouveaux paramètres. Je souhaite modifier certains paramètres du navigateur et exécuter un service systemd via un bouton ou quelque chose de similaire. Par exemple, je souhaite soumettre un formulaire html au script CGI python, qui modifierait ensuite le fichier eth1.network et redémarrerait le service networkd. J'ai un périphérique Linux intégré sur lequel tourne le serveur Web Apache.

Le problème est le suivant: l'utilisateur Web Apache n'est pas autorisé à démarrer / arrêter les services système et, bien sûr, je ne souhaite pas permettre à www-data de démarrer / arrêter les services systemd.

  • Comment puis-je démarrer / arrêter les services Systemd à partir du navigateur sans accorder les privilèges root à l'utilisateur www-data. Je sais que le serveur Web ne devrait jamais être autorisé à accéder à des services ou à quelque chose en dehors du dossier racine 'var / www /' pour des raisons de sécurité.

  • Comment un routeur DSL accomplit-il cela? Une solution que j’ai trouvée est la suivante. Est-il prudent de permettre à www-data d’exécuter des commandes privilégiées, mais je ne sais pas comment puis-je l’implémenter. J'apprécierais n'importe quel guide ou exemple.

Réponses:


0

NE PAS autoriser l'exécution de commandes privilégiées en exposant l' www-datautilisateur Internet sauvage . C'est un moyen de chercher des ennuis.

Vous pouvez utiliser le ciblage d'URL pour de telles choses. Vous pouvez créer une URL secrète et surveiller en permanence sur le serveur les modifications. Le fichier journal d'Apache tail -fne charge pas le serveur car il utilisait la fonctionnalité inotify du noyau . Ainsi, lorsque vous appelez votre URL secrète, un script (qu’il s’agisse d’un shell, de python, etc.) exécuté sous un compte privilégié s’exécute d’une seule tâche. Donc, en gros, il s’agit d’une sorte de IPC entre un utilisateur non privilégié et des opérations devant être effectuées avec les privilèges les plus élevés (root?). Vous devez implémenter un mécanisme d'authentification pour protéger cette URL secrète afin d'éviter les attaques DDoS. De plus, si vous utilisiez HTTPS pour de telles choses, votre URL secrète ne serait pas exposée à l' homme du milieu .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.