Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 23 Feb 2006 12:08:08

miguel73
Affranchi(e)
 
Date d'inscription: 23 Feb 2006
Messages: 9

Lancement d'applications par scripts cgi sous boa

Bonjour,
je travaille avec le serveur web boa et je souhaite lancer des applications à partir de scripts cgi, lancés eux même à partir de liens html situés sur les pages web du serveur.
Pour des applications simples, du type afficher "bonjour" cela marche facilement.
Pour des appli plus complexes, faisant appel a d'autres librairies ou executables, cela se corse.
En effet le cgi qui doit lancer une application en question fonctionne parfaitement si je le lance depuis le terminal (en root) mais pas depuis une page web stockée sur le server (en mode utilisateur?)

Dans mon cas cette application a la particularité d'emettre un son, donc de demander l'acces a un periph, de realiser et d'autres truc comme afficher "l'appli s'est bien executée". Lorsque je lance le script depuis ma page web, seul le message s'affiche, mais je n'ai pas de message d'erreur expliquant un lien erroné ou autre. Simplement le son qui devrait etre produit ne l'est pas.

Il doit donc y avoir une histoire de securité liée au fonctionnement de boa, notamment un controle des appels système.

Quelqu'un connait il un moyen de donner tous les droits au server boa (execution de cgi lancant nimporte quel executable), et donc a un utilisateur se connectant a une pageweb de celui-ci, meme si cela peut nuir à la securité du système ?

Merci d'avance

Hors ligne

 

#2 23 Feb 2006 17:27:34

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: Lancement d'applications par scripts cgi sous boa

Hello,

  Connais pas du tout boa, mais la manière la plus simple est certainement de mettre ton script cgi SUID root (a condition que boa tolère une pratique aussi peu sécure.) Si boa refuse, fais un script cgi normal, qui lance un autre script SUID root.

  Pour mettre un script SUID root:

Code:

chown root:le_groupe script.cgi
chmod 4550 script.cgi

De cette manière, tous les membres du groupe le_groupe ont le droit d'exécuter le script, et celui-ci s'exécutera avec les privilèges de root. Encore plus bourrin, si le groupe t'ennuie, chmod 4555 et tout le monde pourra lancer le script.

Et n'oublie pas de dire au revoir a la sécurité de ta machine ^^

Hors ligne

 

#3 24 Feb 2006 09:05:04

jean@adimp.ch
Illuminé(e)
Lieu: Marly
Date d'inscription: 10 Mar 2005
Messages: 1228
Site web

Re: Lancement d'applications par scripts cgi sous boa

Salut,
  Quel serveur web est-ce tu utilises? Apache ou ZOPE?
A+.


--------------------------------------------------------
Jean Tinguely Awais
Ma vie sur twitter : http://www.twitter.com/tservi

Hors ligne

 

#4 24 Feb 2006 10:48:38

miguel73
Affranchi(e)
 
Date d'inscription: 23 Feb 2006
Messages: 9

Re: Lancement d'applications par scripts cgi sous boa

Salut,
Quel serveur web est-ce tu utilises? Apache ou ZOPE?
A+.

J'utilise dans le cadre d'une application embarquée le serveur web allégé BOA

Hors ligne

 

#5 24 Feb 2006 11:12:01

miguel73
Affranchi(e)
 
Date d'inscription: 23 Feb 2006
Messages: 9

Re: Lancement d'applications par scripts cgi sous boa

Merci a vous deux pour votre aide.

J'arrive enfin a faire executer mon script. En fait, il y avait bien un problème de droit, mais pas au niveau du script puisque celui ci se lancait parfaitement depuis le terminal en mode root.

Parcontre, lorsqu'on le lancait depuis boa, il n'avait pas suffisament de droit pour acceder au peripherique, et notamment au peripherique de son, dans le cadre de mon appli, qui était accessible en rw seulement pour le root.

Donc pour le moment, la solution trouvée (pas très propre...) est de donner de modifier les droits d'acces au periph de son pour qu'il soit accessible au groupe et user. oui c'est bete, mais jviens seulement d'y penser.

Maintenant ya til 1 solution plus propre, de manière a que le periph soit accessible seulement a utilisateur de boa, et non pas a tous les users?

Hors ligne

 

#6 25 Feb 2006 11:02:26

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: Lancement d'applications par scripts cgi sous boa

Normalement, il devrait exister un groupe système "audio", qui devrait être le groupe par défaut pour l'accès au son (d'il n'existe pas: groupadd audio). Ce groupe devrait avoir le droit d'écriture sur le périphérique de son (chgrp audio /dev/audio; chmod g+rw /dev/audio). Ensuite, il faut ajouter l'utilisateur sous lequel tourne boa dans le groupe (plus simple en éditant directement /etc/group).

Deux choses a vérifier ensuite: retirer au monde le droit d'écriture sur le périph son (chmod o= /dev/audio), et vérifier que boa dispose bien d'un utilisateur dédié. Par exemple, s'il tourne sous l'user "nobody", d'autres programmes qui tournent aussi sous nobody auront accès au son. Si c'est le cas, il faudra créer un utilisateur dédié pour boa, et changer la manière dont tu démarres boa pour refléter le nouvel utilisateur.

Tu peux également reconsidérer la solution du script SUID. Il permet un contrôle des droits plus fin, vu que l'utilisateur ne peux qu'executer le script en question, et pas avoir accès a toutes les fonctions du périphérique. Le danger est que le script soit capable de faire autre chose que prévu, et qu'un attaquant puisse exploiter cela pour gagner des privilèges. si tu écris ton script CGI en Perl par exemple, en activant le taint checking (-T), tu peux grandement réduire les risques de faille de sécurité.

Hors ligne

 

Pied de page des forums

Powered by FluxBB