Varnish en reverse-proxy: le problème des adresses locales

Si vous utilisez nginx ou Apache derrière Varnish, vous aurez remarqué que l’adresse IP du client récupérée est l’adresse locale (ou bien l’adresse du serveur hébergeant Varnish). Cela est le cas parce-que c’est Varnish qui créé la connexion TCP à nginx/apache, et non le client directement. Pour cela, nous allons tout simplement installer un module sur votre serveur Web, pour qui va utiliser une en-tête (X-Forwarded-For) pour connaitre l’IP du client.

Pour nginx

Il nous faut nginx compilé avec le module Real-IP (--with-http_realip_module), ce qui est le cas par défaut dans les paquets CentOS et Debian. Dans le fichier de configuration /etc/nginx/nginx.conf, dans la catégorie http {...}, ajoutez ça:

Redémarrez le serveur nginx, et c’est bon.

Pour Apache

Pour Apache, il faut installer le module RPAF2. Je vous invite à lire l’article très intéressant de wiki.tyk.nu.

facebooktwittergoogle_plusredditpinterestlinkedinmail

MyOnlineSSH: Connectez-vous en SSH depuis un simple navigateur Internet

Vous pouvez aussi voir la page du projet MyOnlineSSH.

MyOnlineSSH est un service permettant de se connecter à un serveur en SSH directement depuis votre navigateur. La configuration necessaire est très petite:

  • Un navigateur avec le JavaScript activé
  • Flash Player installé
  • Le port 80 ouvert

En effet, seul le port 80 suffit pour se connecter au SSH à l’aide de MyOnlineSSH comme vous pouvez le voir dans la page Aide de MyOnlineSSH.

Je vous invite donc à tester dès à présent MyOnlineSSH:

http://www.myonlinessh.com

D’ici peu, une traduction anglaise de MyOnlineSSH verra le jour pour nos amis anglophones.

facebooktwittergoogle_plusredditpinterestlinkedinmail

Sockets avec Flash: Un serveur pour les “master socket policy file”

Depuis la version 9,0,125 de Flash Player, toutes les connexions à l’aide de Sockets font objet de mesures de sécurité supplémentaires. Dorénavant n’importe quelle connexion utilisant les Sockets devront être explicitement autorisées par le serveur vers lequel la connexion Socket s’effectuera pour le serveur hôte du ficher SWF. C’est-à-dire que, par exemple, si vous hébergez votre fichier Flash (.swf) sur le domaine static.example.com et que la connexion se fait sur le port XX du serveur socks.examples.com, alors il faudra créer un socket sur le port 843 qui retournera le fichier de sécurité (de la même forme de les crossdomain.xml que l’on connait pour les URLs), appelé le “master socket policy file”.

Cette contrainte est apparue depuis la version 9 de Flash Player, et est néanmoins moins restrictives sur ces versions car l’on peut utiliser les Security.loadPolicyFile() pour charger des fichiers de sécurité pour les sockets, alors que dans les versions 10, il faudra un “master policy file”.

C’est pourquoi, il faut dès à présent mieux d’implanter cette fonctionnalité sur votre serveur en créant simplement un petit deamon sur le port 843 qui retournera le fichier de sécurité lors de la requête <policy-file-request/> suivie d’un caractère NULL. Si vous souhaitez créer votre propre “master socket policy file”, faites-le, vous pouvez le faire dans presque n’importe quel langage. Seulement, un développeur de Adobe (société éditrice de Flash) propose un script en Python et en PERL. Nous allons voir comment installer le script PERL, langage qui est installé sur quasiment tous les serveurs, sans même que l’on ne l’ai forcément installer.
Continue reading Sockets avec Flash: Un serveur pour les “master socket policy file”

facebooktwittergoogle_plusredditpinterestlinkedinmail

Debian: Installer un serveur X

Si pour une raison ou une autre, vous avez besoin d’éxécuter des programmes avec un serveur X (graphique), vous pouvez utiliser xvfb (X Virtual Frame Buffer) – comme vu dans l’article présentant les copies d’écrans à la volée depuis votre serveur – avec ses temps de latence important ou installer tout simplement un serveur X.

Vous pensez peut-être que vous allons installer un serveur X avec toute la panoplie de différents services, puis Gnome, etc… Oh non ! Il nous faut uniquement (et obligatoirement) un serveur X virtuel pour pouvoir le démarrer sans clavier, sans souris et sans écran. C’est ainsi que Xvfb nous est à nouveau utile !
Continue reading Debian: Installer un serveur X

facebooktwittergoogle_plusredditpinterestlinkedinmail

Enlever l’en-tête “Server” d’Apache

Le serveur HTTP Apache ajoutes à chaque page l’en-tête “Server” contenant des informations quant au logiciel utilisé pour délivrer la page. Cet en-tête n’est pas indispensable, comme annoncé dans les RFC. Enlever cette en-tête ne peux se faire par une configuration dans apache2.conf ou autre, il faut obligatoirement y penser lors de l’installation, plus précisément lors de la compilation à partir des sources.

Une fois les sources dé-packetées, il faut modifier le fichier “http_filters.c” dans le dossier “modules/http”. Remplacez:

Continue reading Enlever l’en-tête “Server” d’Apache

facebooktwittergoogle_plusredditpinterestlinkedinmail

VirtualHosts avec Apache 2

Le système VirtualHosts est un outils extrêmement pratique. Je l’utilise pour permettre à une adresse IP d’héberger plusieurs sous-domaines de mes-stats. Seulement, lors de la ré-installation d’un serveur Apache, j’ai eu quelques petits problèmes, c’est pourquoi j’ai décider de re-faire un point sur la mise en place des VirtualHosts sur Apache 2.

Utiliser sites-available et sites-enabled

Jusqu’à présent, j’avait un fichier, nommé hosts.conf qui contenait tous mes VirtualHosts, chose qui est réalité est très peu pratique lorsque l’on utilise les dossiers “sites-(available|enabled)” (ou n’importe quel nom, il suffit de modifier le Include dans apache2.conf.

Maintenant, je fait tout simplement un fichier par sous-domaine (ou domaine) dans /etc/apache2/sites-available qui contient le configuration du VirtualHost de ce sous-domaine. Voici un exemple de VirtualHost :

Continue reading VirtualHosts avec Apache 2

facebooktwittergoogle_plusredditpinterestlinkedinmail

Performance de lecture depuis les disques sur serveurs OVH

Par simple curiosité, j’ai réaliser (avec l’aide de membres du forum OVH, que je remercie) un petit benchmark (hdparm -t /dev/sda) des temps de lecture de données depuis les différents disques durs, de serveurs et de RPS… Continue reading Performance de lecture depuis les disques sur serveurs OVH

facebooktwittergoogle_plusredditpinterestlinkedinmail