PhpSysInfo à l’intérieur d’une jail/chroot

August 27th, 2008

PhpSysInfo est un script permettant de générer un résumé de l’état et des périphériques du serveur.

Je vais garder cet article court afin de ne pas vous décourager (les derniers paragraphes sont complémentaires, pas besoin de les lires ;) ) . C’est pourquoi je n’aborderai pas les pour/contre d’une chroot ou d’une bsd jail, je vais simplement expliquer plusieurs méthodes pour faire fonctionner phpsysinfo à l’intérieur d’une prison.

Read the rest of this entry »

Variables read-only dans une classe PHP

August 22nd, 2008

Pour ceux d’entre vous qui font du PHP le moindrement sérieusement, vous avez sans doute remarqué que PHP manque quelque chose du coté de la POO.

C, Visual Basic, C#, et plusieurs autres langages ont la capacité d’avoir des variables publiques en lecture seule dans une classe. C’est à dire que la variable peut être modifié à l’intérieur de la classe, mais à l’extérieur on ne peut que la lire !
Prenons l’exemple suivant:

J’ai une classe qui s’appelle utilisateur et qui gère une session utilisateur:

Class utilisateur {

[....]

public $id = 0;

public $nom = ”;

[....]

}

Admettons que les valeurs de $nom et $id proviennent d’une base de données, il serait fort probablement utile de pouvoir y accéder depuis l’extérieur de la classe! Bref j’aimerais pouvoir lire $nom et $id mais je ne veux pas qu’elles puissent être modifier à l’extérieur de la classe (cela pourrait causer des erreurs, des problèmes de sécurité, des problèmes de conception, etc).

Read the rest of this entry »

Sifflement Centrino (Core 2 Duo/ Pentium M)

June 16th, 2008

J’ai récemment fait l’acquisition d’un nouvel ordinateur portable équipée d’un processeur Core 2 Duo d’intel (architecture Santa Rosa Refresh). Après quelques jours d’utilisation sur l’alimentation secteur je décide de le débrancher afin de tester les limites de mon réseau sans fil. C’est à ce moment que le drame se produisit: Un petit sifflement (comme des milliers de beeps très rapides; un peu comme du code morse accéléré) venait de l’ordinateur !

Au début je n’y faisait pas trop attention, étant habitué à des cartes graphiques haut de gamme je savais très bien que du matériel informatique pouvait émettre un léger sifflement lorsqu’il est chargé, mais ça devint très vite agaçant. Le sifflement était présent seulement lorsque l’ordinateur fonctionnait sur la batterie et lorsque qu’il ne travaillait pas (idle ou presque). J’ai aussi remarqué que lorsqu’un périphérique usb était branché le cillement diminuait nettement. Sachant que Windows désactive les modes de veille profonde pour le CPU (C3 et C4) (correction: à vrai dire non il ne les désactive pas, mais plutôt il n’arrête jamais vraiment le cpu) lorsqu’un périphérique usb est présent, j’en ai donc déduit que c’était un problème au niveau de la gestion de l’énergie. Read the rest of this entry »

Aide mémoire iptables

May 6th, 2008

Pour un débutant, iptables peut être extrêment difficle à maitriser puisqu’il implique soit: de bien connaitre les différentes couches d’un réseau et les techniques de routage de base, soit de connaitre les arguments par coeur sans forcément les comprendres.

Je vais donc rassembler ici des petits exemples de commandes qui pourraient éventuellement vous être utiles. Si vous essayez de faire une règle de routage, de rebond, de redirection ou de dénie qui ne se trouve pas dans la liste, dites le moi et si j’ai le temps j’essayerai de l’écrire pour vous, et de l’ajouter dans cette liste.

C’est quoi Iptables ?

Iptables est une application en ligne de commande qui sert à configurer les règles du filtre de paquets du kernel de Linux (depuis 2.4). Il peut être utilisé autant comme firewall(plutot pour appliqué les règles du firewall) que pour configuré les NAT (Network Address Translation: la réécriture des headers des paquets et le réacheminement de ceux-ci. Du routage quoi.)

Read the rest of this entry »

Sécurité : De kessé ?

May 5th, 2008

Un petit survol des aspects de sécurité de base sur un serveur.

Première étape: Les applications

Bien lire la documentation des applications. Générallement, il est préférable d’utiliser les versions les plus récentes puisqu’elles corrigent bien souvent les failles connues. Après avoir lu la documentation rigoureusement, assurez vous de bien configurer les applications pour qu’elles répondent parfaitement à vos besoins et qu’elle soit sécurisée. La configuration par défaut est la pour fonctionner out of the box, pas pour être utilisé en production. Utiliser la loi du gros bon sens: Le root ne devrait jamais pouvoir se connecter directement au serveur (ssh), de même qu’AUCUN compte ftp ne devrait avoir une racine plus haute que son dossier personnel. Pour php pensez à l’open_basedir et à interdire l’execution de programmes externes (ou chrooté votre serveur, voir plus bas) et ce même si votre machine n’est pas partagé (Une faille dans VOTRE application pourrait tout détruire). Une étape importante est l’obscurcissement. Ne laissez pas trainer la moindre information qui pourrait aider un hacker : cacher les versions de vos applications, cachez les chemins de vos scripts critiques (par exemple un phpinfo ne devrait pas montrer le chemin de votre application principale). De même qu’un compte admin ne devrait jamais s’appeler root ou admin. (Je pense ici surtout au serveur de base de données).

Read the rest of this entry »