'route add' dans un cgi

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

'route add' dans un cgi

Messagepar mgth » 28 Août 2006 21:34

salut à tous

Mon pb :

J'ai fais un petit script sh qui redefini des routes en static
il marche nickel.

Maintenant, je voudrais pouvoir l'executer à partir de l'interface d'ipcop.
Le script s'execute bien mais les routes ne sont pas redefinies !!!

existerait il une limitation de ce que peut faire un cgi sur les routes ?

Merci.
Avatar de l’utilisateur
mgth
Second Maître
Second Maître
 
Messages: 31
Inscrit le: 17 Fév 2005 16:09

Messagepar Gesp » 28 Août 2006 23:06

Regarde la permission de route.

Si seul root peut le lancer, la manière /IPCop/ienne de faire est d'écrire un helper en C lancé par l'interface (droit donnés à l'interface donc 99/nobody) qui exécutera la commande de manière sécurisée.

Les autres helpers sont dans /usr/local/bin sur la machine ou dans les sources à src/misc-progs
Avatar de l’utilisateur
Gesp
Amiral
Amiral
 
Messages: 4481
Inscrit le: 29 Déc 2002 01:00

Messagepar mgth » 29 Août 2006 13:55

Pourtant les permissions route sont 655, les commandes "route" sont bien executées, mais n'ont aucun effet.
Je pense que je vais rester avec un redemarrage IpCop obligatoire...
J'ai bidouiller un truc avec une tache cron mais ça ne me plait pas de trop.

Merci pour l'info.

Mathieu
Avatar de l’utilisateur
mgth
Second Maître
Second Maître
 
Messages: 31
Inscrit le: 17 Fév 2005 16:09

Messagepar Asgardcfr » 29 Août 2006 14:03

montre nous ton code cgi on sait jamais :wink:
Avatar de l’utilisateur
Asgardcfr
Matelot
Matelot
 
Messages: 4
Inscrit le: 12 Nov 2003 01:00

Messagepar mgth » 29 Août 2006 19:16

Code: Tout sélectionner
system('/etc/rc.d/rc.staticroutes');


c'est tout ce que je fais dans le cgi,
apres dans rc.staticroutes:

Code: Tout sélectionner
   eval $(/usr/local/bin/readhash /var/ipcop/staticroutes/settings)
   eval $(/usr/local/bin/readhash /var/ipcop/ethernet/settings)

...

         if [ "$STATIC_ENABLED" == "on" ]; then

            while read line; do
               NET=($(/bin/echo $line | /usr/bin/cut -f1))
               /sbin/route add -net $NET gw $STATIC_GW $ORANGE_DEV
            done < /var/ipcop/staticroutes/routes
   
         fi

         ;;


route s'execute, car si je vire les paramettres j'ai la liste des routes dans ma page.
sans quoi le code fonctionne nickel en root, ou depuis cron.
Avatar de l’utilisateur
mgth
Second Maître
Second Maître
 
Messages: 31
Inscrit le: 17 Fév 2005 16:09

Messagepar jdh » 29 Août 2006 23:35

Un CGI est un process lancé par le serveur Web.

Si on execute des instructions et par exemple route dans un tel process, une fois le process terminé (et le résultat affiché par le serveur Web) le contexte et les modifications de celui-ci sont perdus.

Il me parait clair qu'il faut exécuter des commandes qui "dépassent" le contexte du process lancé pour que le résultat reste au delà. Et notamment la difficulté concerne l'utilisateur qui lance le process (souvent nobody ou www-data).

Ce n'est pas simple. En Php, il vaut mieux faire des "exec" plutôt qu'une commande standard, ou autres ...

Je pense qu'il faut regarder du côté de "suexec" qui permet de lancer des commandes avec les droits du propriétaire de la commande ...
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar Franck78 » 30 Août 2006 02:21

Je pense qu'il faut regarder du côté de "suexec" qui permet de lancer des commandes avec les droits du propriétaire de la commande ...

Ce qui grosso modo revient à écrire soi même son petit helper tout bète ET suid root, comme Gesp l'a dit :lol:
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar mgth » 30 Août 2006 16:43

et pour ça, il me faut un environnement de dev ipcop ?
ça fait un moment que je voulais m'y mettre, je crois qu'il est temps...

Merci à tous, ça m'a bien eclairci les idées.
Avatar de l’utilisateur
mgth
Second Maître
Second Maître
 
Messages: 31
Inscrit le: 17 Fév 2005 16:09


Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron