Utilisation de la fonction exec en PHP

Laurent vient de publier une page sur son wiki dédié à l’utilisation de la fonction PHP exec pour lancer des commandes systèmes…

Je voudrais juste apporter quelques petites astuces que j’utilise régulièrement…

Premièrement, bien souvent, on a besoin d’exécuter des commandes en root… Par exemple, pour modifier un fichier de configuration et redémarrer un service…

Pour cela, on peut utiliser la commande sudo.
Sudo permet de contrôler de manière fine l’exécution de programmes en mode root. En temps normal, sudo demande a l’utilisateur d’entrer son mot de passe pour pouvoir exécuter la commande en root. Mais l’on peut définir que certaines commandes n’aient pas besoin de mot de passe, via l’edition du fichier de conf de sudo :

# visudo

Ou l’ont ajoute :

httpd ALL=NOPASSWD: /usr/libexec/changepass.sh

Cela permet à l’utilisateur httpd (apache) d’exécuter le script en tant que root sans avoir besoin de rentrer un mot de passe.

Maintenant, quand on fait ça, il faut faire attention à la sécurité…
Il ne faut pas par exemple donner a apache l’accès direct à /bin/passwd, car si une application web est corrompu, l’attaquant pourra changer tous les mots de passe sans aucune restriction…
Pour éviter cela, je préfère encapsuler le programme dans un script shell qui se chargera de vérifier les paramètre fournit par le script php…

<?php exec("sudo /usr/libexec/changepass.sh ".$_GET['user']." ".$_GET['password']); ?>

Avec changepasswd.sh :

#!/bin/bash if [ -d /var/www/clients/$1 ]; then htpasswd -b /etc/httpd/clients.passwd $1 $2 fi 

Bon, ce n’est qu’un exemple torché en 5 minutes pour l’occasion, je n’ai pas testé ces scripts en particulier, mais j’ai déjà utiliser pas mal de fois cette technique… Mais Mais, bon, je pense que ça pourrait en aider certains…

Résolution pour 2007

Résolution 1 :
Ne prendre aucune (bonne ou mauvaise) résolution pour 2007 !

Bon ça, c’est fait !!!

Problème de Freebox…

Grrrr…

En ce moment, je suis victime (j’aime bien ce mot, on a tout de suite l’impression que c’est très grave 😉 ) de nombreuses coupure sur la Freebox… Dernièrement alors que j’était confortablement lové dans mon lit pour regarder la fabuleuse série TV Doctor Who sur France 4, j’ai eu 6 coupures de plus de 5 secondes dont 3 avec le bel écran ci contre… Grr, pourquoi c’est toujours quand on a quelque chose d’intéressant à regarder…

Vous avez aussi constaté des coupures ou c’est juste chez moi ?

Top ten des top ten ;-)

Comme c’est à la mode en cette fin d’années, je vous ai préparé une petite collection des meilleurs top ten que j’ai pu trouvé… Bon d’accord, y’en a pas 10 dans mon classement et tous ne sont pas des top ten, mais c’est mon blog !!!

  • Les 10 plus belles images de notre système solaires, la photo de Saturne est vraiment exceptionnelle. Il faut aussi voir la photo de la station ISS et de la navette spatiale « éclipsant » le soleil ;-). Le post précédent sur le visage de Mars est bien sur inspiré de ce Top Ten…
  • Les 10 ordinateurs de film les plus extra-ordinaires. Je ne les connaissait pas tous, mais mes préféré sont bien sur Deep Thought, WOPR, the Gibson, HAL et Skynet. J’aurais ajouté à la liste KITT (K2000), les synthétiques d’Odyssée 5, ou la Tour d’Ivoire (je ne me souviens plus de son nom) de Mission Impossible, même si les deux premiers ne sont pas à proprement parlé des serveurs et que le second ne se distingue pas par sont intelligence ou ses caractéristiques techniques, mais uniquement par son environnement…
  • Les 20 meilleurs hacker dans les films. Encore une fois, je n’ai pas vu tous ces films…
  • 10 trucs que les ordinateurs ne font pas dans la vrai vie. Comme on le sait, les scénaristes ne sont pas des informaticiens, mais alors qu’ils savent s’entourer d’experts de la police ou de l’armée pour rendre les films plus crédibles, il faut croire que ce n’est pas le cas pour l’informatique… J’ai été très surpris d’apprendre que sur un ordinateur, le texte n’apparaît pas caractère par caractère avec un bruit de machine à écrire en Courrier New vert fluo sur fond noir… Perturbant !!!
  • Top apple rumors. iPod Vidéo grand écran, iPhone, et Newton… Je rajouterai volontiers le passage au processeur Intel, vu que certaines rumeurs de ce top ten n’en sont plus (« La build secrète de de MaCOSX », et en extrapolant un peu, « MacOSX pour les utilisateurs de PC » (les Mac sont des PC, et MacOSX tourne sur des PC non Apple en version crackée)).

Update 2006-12-29 : J’ai oublié (bien que l’ayant lu peu de temps avant de publier ce post) :

  • Le top ten de vaporware 2006. Tiens Vista n’y est plus ? Pourtant, même s’il est « sortie », je ne l’ai pas encore vu ! Je suis surpris que 3D Realms : 1 existe encore, continue de parler de la sortie de Duke Nukem Forever… Allez les mecs, Gordon Freeman, et plein de ses copain vous ont fait la nique depuis 1997 ! Sinon, on retrouve le clavier Optimus et l’iPod Killer (même si ce n’est pas réellement un produit, mais plutôt un objectif que se sont fixé de nombreux constructeurs, le saint graal des lecteurs MP3 ?)… Par contre, c’est peut être mon coté chauvin qui parle, mais je n’aurais pas mis l’A380 dans le lot, pour moi, ce n’est pas un vaporeware car : 1 ce n’est pas un software, 2 ce n’est pas un produit fantome, on l’a vu (du moins en France) faire ses voles d’essais sur toutes les TV… M’enfin, le classement des vaporeware, pour moi, c’est incontournable.

Voilà, il y’en a sans doute beaucoup d’autre sur le net, mais ceux ci mon paru fun… Et vous, lesquels ont retenus votre attention ?

Tu es beau de profil

Vous connaissez sans doute le « visage » de Mars, qui a alimenté toutes les spéculations les plus folles de UFOlogues. Ce visage était même visible dans le générique de XFiles, il me semble…

Et bien, les scientifiques de l’ESA on pris la peine de faire une version 3D de ce visage et on par la même complètement cassé le mythe. Comme on pouvait s’en douter, ce visage n’a rien d’artificiel, et surtout ne ressemble absolument pas à un visage…

Le plus marrant, c’est de voir que les scientifiques prennent le temps d’étudier et de casser ce genres de mythes… A croire qu’il n’y a rien de plus intéressant à observer la haut ;-)…

Noyeux Joël !

Bon, pour moi, c’est l’heure d’aller faire la fête (pour la deuxième fois… Vive les familles recomposées 😉 )…

Je vous souhaite à tous un joyeux Noël et que le gros barbue vous amène tout ce que vous voulez !

Suivi de connexion en espace utilisateur et en python…

Mais qu’est ce que ça peut bien vouloir dire ce titre ?
En gros, le connexion tracking, c’est ce qui permet à un pare-feu à états de savoir si un paquet est lié à une connexion autorisée ou non, et donc de prendre les mesures appropriées (accepter ou rejeter le paquet). Pour une connexion TCP, il est simple de suivre le trafic. Mais dans le cas de protocoles utilisant plusieurs connexion ou des flux UDP, c’est déjà plus dur…

Par exemple, le protocole RTSP utilisé pour le Freebox Multipostes (recevoir les flux TV sur les PC) utilise un flux de contrôle en TCP du PC vers la Freebox, un flux UDP contenant la vidéo qui va de la Freebox vers le PC et un flux UDP du PC vers la Freebox pour signaler que le PC est toujours vivant. C’est compliqué, hein 😉

Le problème quand on a un routeur NAT, c’est que les flux « sortant » (du PC vers la Freebox) passent sans problème, mais les flux « entrant » ne vont nulle part (car le routeur ne sait pas vers quelle machine il doit les renvoyer. Il faut donc avoir un routeur intelligent, qui soit capable de faire la relation entre le flux UDP qui arrive et le flux TCP sortant pour renvoyer les paquets UDP au PC qui a initié la connexion TCP.

Et c’est pas dur, car dans le flux de données TCP, il se trouve que par hasard, le port UDP est en question est échangé entre le PC et la Freebox. Il suffit de scruter le flux TCP et de noter le port UDP quand il passe sur la ligne. A partir de là, on peut simplement ajouter une règle au pare-feu pour rediriger le flux vers le bon PC.

Sous linux, il existe un module ip_conntrack_rtsp que j’avais déjà utiliser sur un routeur sous openwrt… Mais la je veux mettre ça en place sur un ‘vrai’ PC. Et c’est chiant… Il faut patcher le Kernel, le recompiler… Bref bien lourd…

Je me suis donc mit en tête que je pouvais le faire très rapidement en python, et en espace utilisateur (c’est a dire sans toucher au noyau…).

Il existe un module python qui permet d’analyser et modifier des paquets piégés par iptables. Il s’appel nfqueue. Il suffit d’utiliser la cible QUEUE dans les règles iptables pour que les paquets passent tous par un script python avant de continuer leur chemin…

A partir de la, le script est très simple. Il commence par installer sa règle d’interception de paquets en exécutant iptables. Puis il commence a traiter les paquets un à un.
Pour chaque paquet, on commence par vérifier s’il est bien en rapport avec un flux RTSP, puis selon le cas, s’il ne s’agit pas d’un paquet de fermeture de connexion TCP, on cherche le port UDP à ouvrir, et si on le trouve, on l’ouvre. S’il s’agit d’un paquet de fermeture de connexion, on ferme le port UDP en rapport avec cette connexion (s’il existe).
Enfin, si l’on tente de fermer le programme, j’en profite pour fermer tous les ports qui restait ouvert et pour supprimer la règle d’interception des paquets. C’est tout.

Voila, j’ai donc pondu ce script en 1 heure et ça marche… C’est plus simple que de patcher sont kernel…

Le script (download).

En tout cas, il y avait longtemps que je voulait essayé d’utiliser ce module python… Il y a encore plein de choses marrante que l’on pourrait faire avec…

Une nouvelle pensionnaire

Voilà, j’accueille chez moi depuis hier soir, une jolie petite chatte recueillie au domicile de mes parents… Elle est mignonne comme tout et toujours en attente de caresses…
Je l’ai batisé iCat 😉 C’est un chat modèle Felix, sans doute fabriqué courant 2005 😉


Renaissance

Je viens de voir le film Renaissance. Ce film, à l’instar de Sin City, utilise un traitement graphique style bande dessiné. Mais, contrairement à Sin City, il possède un vrai scénario et une vrai fin ;-).

Dans un Paris futuriste, l’inspecteur Caras mène une enquête sur la disparition d’une jeune généticienne. Mais il va découvrir que cet enlèvement cache en fait un sombre lutte pour … (non mais, je vais pas vous raconter la fin non plus 😉 ). L’intrigue est bien ficelée et fait monter la pression progressivement.

J’adore le traitement graphique utilisé dans ce film, mais, comme c’est le deuxième film que je connaisse qui utilise ce genre d’effets spéciaux, j’espère juste que les réalisateurs ne vont pas, par effet de mode, nous en mettre partout. Je ne veux pas assister à un nouvel effet Matrix. Souvenez vous, après la sortie de ce film, beaucoup de films ont essayés d’utiliser ses effets les plus impressionnants (ralenti, ou encore les mouvements de caméra sur des scènes figées). Je pense notamment à des films comme « Opération espadon » ou encore « Le pacte des loups » (j’ai vraiment touvé que pour ce film, de nombreux effets spéciaux étaient plus que superflus).

Guide de surVI

Je fais ce billet pour un copain qui veut se mettre à Vim. Pour ceux qui vivent dans une grotte depuis que l’informatique existe, Vim est une version améliorée de Vi un éditeur de texte très puissant qui existe depuis plus de 30 ans ! Il est disponible sur quasiment toutes les plates-formes…

Ce billet regroupe ce que je connais de Vim (sans doute peu de choses par rapport à toutes ses capacités).
Lire la suite