Skip to content

Securisation d'un serveur web public cloud chez OVH

Cyril Blaecke edited this page Mar 5, 2018 · 1 revision

Ce guide est utile à la sécurisation d'un serveur web public cloud chez OVH. Il a été testé sur des installations de serveurs Debian et Ubuntu sur le public cloud d'OVH. Vos retours et contributions sont les bienvenues.

Mise à jour du système

Premièrement, nous mettons à jour les paquets du système afin de s'assurer de disposer des dernières mises à jour.

sudo apt-get update && sudo apt-get upgrade

Installation et configuration d'un pare-feu

Ensuite, nous allons installer et configurer un pare-feu. Nous utilisons ici le paquet arno-iptables-firewall qui s'appuie sur iptables.

sudo apt-get install arno-iptables-firewall

A la question "Do you want to manage the firewall setup with debconf", répondre "No". Nous préférerons gérer la configuration du pare-feu directement dans son fichier de configuration principal.

Il s'agit maintenant de repérer le nom de l'interface réseau externe (généralement eth0, ou ens3 sur les instances public cloud OVH) afin de la configurer par la suite dans le fichier de configuration de arno-iptables-firewall :

sudo ifconfig

Nous allons maintenant configurer le pare-feu de notre système à l'aide de vim. Si vous préférez utiliser nano ou un autre éditeur, remplacez vim par le choix de votre éditeur. Nous utiliserons vim tout au long de ce guide.

sudo vim /etc/arno-iptables-firewall/firewall.conf

Nous commençons par définir l'interface externe EXT_IF="ens3". Si votre interface externe est eth0 ou autre, pensez à adapter le nom de l'interface.

Nous souhaitons que notre serveur réponde aux requêtes ping. Nous remplaçons donc OPEN_ICMP=0 par OPEN_ICMP=1.

Notre serveur ayant pour vocation d'héberger des sites web accessibles en HTTP et en HTTPS, et d'être administré par SSH, nous souhaitons ouvrir les ports TCP 22, 80 et 443. Nous configurons donc OPEN_TCP="22,80,443". Vous pouvez adapter les configurations des variables OPEN_TCP et OPEN_UDP selon les services que propose votre serveur.

Une fois notre configuration finalisée, nous lançons le service arno-iptables-firewall :

sudo service arno-iptables-firewall start

Nous testons d'ouvrir une nouvelle connexion SSH en parallèle de notre connexion existante afin de valider que nous ayons bien accès en SSH au serveur. Si cet accès est validé, nous pouvons continuer la configuration de notre serveur web. S'il ne l'est pas, nous vous invitons à revoir la configuration de arno-iptables-firewall, notamment la configuration de l'interface réseau externe EXT_IF.

Sécurisation du serveur SSH

Nous souhaitons maintenant sécuriser le serveur SSH. Vous pouvez vous appuyer sur le fichier de configuration présent dans le dépôt. Ce fichier autorise la connexion par paire de clés ecdsa. Pensez donc à générer et autoriser votre paire de clés ecdsa au préalable. Nous vous invitons à générer votre paire de clés depuis une machine physique et à la protéger par une passphrase pour plus de sécurité.

Nous continuerons la rédaction de ce guide prochainement. Nous y aborderons notamment l'activation des mises à jour de sécurité automatiques, la sécurité contre les attaques par bruteforce SSH, la détection des scans de ports, la protection contre les rootkits et l'analyse des journaux. Nous sommes preneurs de vos retours et contributions sur les domaines déjà abordés.

Contributeurs : Cyril pour Dilolabs