Dans le monde impitoyable du web, il vaut mieux ne pas trop donner d'information sur son serveur, version php, version nginx etc... La raison est toute simple, certaine version contiennent des failles de sécurités connues et exploitées. Lorsqu'un robot scanne les sites web à le recherche de proies, il n'est pas rare qu'il effectue une recherche sur tel ou tel type d'infrastructure web (nginx, php, mysql etc ...). Il est donc assez important d'avancer masqué. On va essayer de laisser le moins de trace possible avec notre serveur php-fpm et Nginx.

Exemple de faille connue pour la version 1.4.1 Nginx (celle que l'on trouve dans Ubuntu 13.10 par exemple). (la liste des failles c'est ici)

Pour éviter d'exposer sa version de Nginx, on va ajouter dans la configuration de Nginx, (ou du site) la directive suivant 
server_tokens off;

Dans le fichier nginx.conf on ajoute dans la section 

http {

##
# Basic Settings
##

server_tokens off;

----

Pour vérifier son site on utilise la commande curl -I http://monsite.com, voici ce que cela donne sur mon site de dev

HTTP/1.1 200 OK
Server: nginx/1.4.1 (Ubuntu)
Date: Tue, 03 Dec 2013 09:48:20 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.5.3-1ubuntu2
Vary: Accept-Encoding, Cookie
Cache-Control: max-age=86400
WP-Super-Cache: Served supercache file from PHP
Expires: Wed, 04 Dec 2013 09:48:20 GMT
Vary: Accept-Encoding
Pragma: public
Cache-Control: max-age=31536000, public, must-revalidate, proxy-revalidate

 

On a des informations très intéressantes. Le type de serveur et le système d'exploitation. Bonus on a la version de PHP, on va donc s'en occuper juste après.
Un fois la directive appliqué cela donne (serveur Nginx redémarré):

 

 HTTP/1.1 200 OK
Server: nginx
Date: Tue, 03 Dec 2013 10:00:31 GMT
Content-Type: text/html; charset=UTF-8
...

 

 Voilà c'est déjà mieux même si on sait que l'on a affaire à un serveur Nginx
Maintenant faisons disparaître l'information php. Dans mon cas j'utilise php-fpm, je vais donc modifier le fichier /etc/php5/fpm/php.ini.
Il s'agit tout simplement de passer la directive expose_php = On à off et de redémarrer le serveur php-fpm (sous Ubuntu 13.10 la commande sudo service php5-fpm restart)

 

HTTP/1.1 200 OK
Server: nginx
Date: Tue, 03 Dec 2013 10:09:04 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Vary: Accept-Encoding, Cookie
Cache-Control: max-age=86400
WP-Super-Cache: Served supercache file from PHP
Expires: Wed, 04 Dec 2013 10:09:04 GMT
Vary: Accept-Encoding
Pragma: public
Cache-Control: max-age=31536000, public, must-revalidate, proxy-revalidate

 

  Voilà on laisse moins de trace pour une éventuelle attaque. Cela dit avec se con de plugin  Wordpress  "WP-Super-Cache" on sait que c'est du php, il faut donc faire bien attention à la config des plugins.

Comments powered by CComment

We use cookies

Nous utilisons des cookies sur notre site web. Certains d’entre eux sont essentiels au fonctionnement du site et d’autres nous aident à améliorer ce site et l’expérience utilisateur (cookies traceurs). Vous pouvez décider vous-même si vous autorisez ou non ces cookies. Merci de noter que, si vous les rejetez, vous risquez de ne pas pouvoir utiliser l’ensemble des fonctionnalités du site.