Sécurisez vos backends – apache, nginx, php, memcache
Voilà, on a une config avec Varnish qui est capable d’encaisser la totalité du trafic sans broncher (ça me fait penser que je dois terminer la traduction d’un article qui explique comment bien optimiser Apache).
Évidemment seul Varnish est censé pouvoir être accessible de l’extérieur et les backends doivent ne pouvoir être accédés que depuis Varnish lui même.
Dans mon cas, tout se trouve sur la même bécane et donc tout ce qui est backend doit écouter sur localhost/127.0.0.1 uniquement.
Apache
Dans le fichier ports.conf il suffit de modifier la directive Listen
Listen 8888
# devient simplement
Listen 127.0.0.1:8888
Et c’est tout ce qu’il y a a faire, l’étoile de chaque virtual host peut rester étoile tant que ça lui plaira ;-)
<VirtualHost *:8888>
Nginx
Là c’est dans chaque section server que vous devrez faire la modification (pour faire des modifications en masse dans des fichiers différents pensez à ce petit article).
listen 8888;
#en
listen localhost:8888;
Php
Si vous avez pris le script que je fourni pour spawn-fcgi-php, alors c’est déjà établi sur localhost par le paramètre du daemon suivant :
-a 127.0.0.1 # binds to the loopback device
Sinon à vous de l’ajouter dans les paramètres de votre spawner ;-)
Memcached
Le paramètre suivant au démarrage fera en sorte qu’il n’écoute que sur localhost ;-)
-l 127.0.0.1
Conclusion
Il y a surement moyen de faire mieux, mais déjà fermer la plupart des ports au public et de faire tout tourner exclusivement en local est beaucoup sûr.
Si vous avez un gros DOS, au pire vous plantez Varnish (ou Varnish plante seul) le temps que ça se calme et vous le relancez quand l’orage est passé.
Tout le reste ne subira aucune avarie, au contraire, Varnish ne forwardant plus rien ils s’ennuieront ferme.
Ah oui pour relancer un serveur automatiquement pensez à Monit