Protéger un serveur web avec la passerelle SSL d'OVH

Le passage en SSL d’un serveur peut être une opération fastidieuse si on ne connait pas le système cible ou qu’il n’est pas aisé d’y mettre les doigts. Ou simplement si le système ne le supporte pas HTTPS. De plus les certificats sont souvent onéreux et ils nécessitent un renouvèlement régulier. On va voir ici comment sécuriser un site ou un équipement disposant d’une interface web en utilisant la passerelle SSL d’OVH qui est gratuite pour un usage personnel ou d’association.

La première chose à faire est de disposer d’un compte OVH. C’est gratuit aussi et si on vous demande un moyen de de paiement rien ne sera débité pour ce service. Une fois que le compte OVH est validé on se connecte sur l’interface client et on cherche Sunrise et SSL Gateway :

Ensuite on valide le bon de commande à 0 € comme s’il s’agissait d’une transaction payante et on attend le mail de confirmation (on peut consulter l’état d’avancement de la commande dans le compte OVH sur le menu Facturation). Une fois la confirmation reçue il va falloir reconfigurer l'entrée DNS correspondant au sous-domaine. Attention, tout au long de ce processus il faut être patient car la passerelle va communiquer avec le DNS et le DNS met généralement un peu de temps à se répliquer…

On va donc commencer par rediriger le sous-domaine vers la passerelle en modifiant l’enregistrement A (et AAAA si on veut de l’PV6) sur le DNS. Cela permettra de valider l’utilisation du domaine qui ici n’est pas enregistré chez OVH mais chez Gandi. C’est expliqué dans le second mail reçu avec les adresses IP.

il ne reste plus qu’à retourner sur l’interface de gestion de la passerelle et on clique sur l’entrée idoine. On attend que le DNS se réplique et on en profite pour configurer le service. L'option qui nous intéresse est bien sur la redirection HTTPS (seules certains options sont disponibles en version gratuite, mais c’est suffisant).

Une fois que toutes les vérifications sont faites par la passerelle, le service est configuré on doit se retrouver avec quelque chose qui ressemble à ça. L’IPV6 est en rouge car je n’ai pas ajouté les enregistrements AAAA. A ce stade si l’IP du serveur cible est bien configurée dans l’onglet Serveurs, le service est fonctionnel. A noter que l’onglet Taches permet de suivre les différentes étapes alors que l’onglet Graphique fournira quelques statistiques.

Attention, le serveur cible est toujours configuré en HTTP et reste accessible sans SSL via son IP. Si l’on souhaite verrouiller cet usage il suffira de le configurer afin qu’il n’accepte que les IP de sorties de la passerelle (à ce jour les réseaux 213.32.4.0/24 et 144.217.9.0/24).

Si le serveur n’est pas directement exposé mais installé derrière un firewall, un routeur ou une box, il conviendra bien sûr de faire une redirection de ports et le cas échéant d’ouvrir ces ports sur le firewall, mais là on est déjà hors sujet…

Pérennité : OVH fait partie de sponsors de Let’s Encrypt, autorité de certification sur laquelle s’appuie ce service. Au risque de me tromper, je pense que la version gratuite de ce service fait partie de leur engagement. Si ce service devait cesser ou devenir payant, cela ne se fera pas du jour au lendemain et il sera bien temps de chercher une alternative.

SSL mi amor...

Au-delà des sites qu’il faut absolument protéger dès lors qu’il y a des transactions, bientôt les sites non SSL seront tous pointés du doigt.

Pour passer un site en SSL il y a plusieurs options plus ou moins complexes. Si le site est protégé par un firewall il faudra généralement exporter le certificat vers celui-ci ou simplement l’installer sur le firewall si l’on considère que le trafic entre le firewall / reverse proxy et le serveur n’a pas à être protégé.

On trouve des certificats plus ou moins couteux selon les garanties offertes, mais pour protéger un simple site un certificat à une dizaine d’euros sera suffisant car il s’agit de sécuriser la transaction et non de valider l’origine du site. (GoGetSSL par exemple ou même Gandi)

Let's Encrypt est une solution gratuite avec ses limitations et contraintes. Les certificats sont ici valables que 3 mois et les maintenir à jour est fastidieux. En gros c'est parfait s'il s'agit d'un Synology, par exemple, ou la gestion du renouvèlement est intégrée (elle impose tout de même l'ouverture du port 80), mais moins pratique sur certains serveurs ou équipements s’il faut faire les mises à jours manuellement. Sur IIS (et ailleurs) des solutions permettent cette automatisation, comme Certify the web ou Lets’Encrypt Win Simple.

Attention, si les versions récentes de IIS supportent plusieurs sites en SSL via SNI, il n’en est pas de même pour des versions plus anciennes.

Enfin, pour les fainéants comme moi il y a SSL Gateway d’OVH. C'est basé sur du Let’s Encrypt et gratuit. En gros OVH fait le boulot et ça permet de passer en SSL n'importe quel site ou équipement. Il n’y a rien à faire sur le serveur à protéger. On redirige l’enregistrement DNS du serveur vers le serveur d'OVH et ensuite sur le serveur protégé on n'accepte que les requêtes en provenance de la passerelle d'OVH. Attention les statistiques peuvent êtres faussées, mais c’est prévu et il y a bien une astuce pour ça. Vous trouvez un pas à pas ici.

La solution d’OVH à ses limites et dans certains cas cette passerelle ne fera pas l’affaire. Le certificat est sur la passerelle et le trafic entre la passerelle et le serveur passe en clair. Ça peut être satisfaisant d’un point de vue sécurité car on aura pris soin de n’accepter que les requêtes de la passerelle OVH, mais le serveur à protéger sera en HTTP et non HTTPS. Dans certains cas l’url vue par le serveur est importante, notamment en .net ou le serveur va retourner http://serveur et non https://serveur et créer des dysfonctionnements avec du code imbriqué qui s’appuie sur cette url, sur ce site par exemple avec Disqus. Alors bien sûr on pourrait aller tripatouiller le code mais ce ne serait qu’une rustine. Pour bien faire il faudrait qu’OVH fournisse un certificat que l’on installerait sur le serveur et ainsi on serait en SSL de bout en bout.

Alors en cherchant un peu on trouve la solution Cloudflare qui va faire la même chose en mieux et pour pas un sous tant qu’il s’agit d’un trafic raisonnable. Cloudflare fourni un certificat que l’on pourra aisément installer sur le serveur à protéger et le cas échéant sur le firewall intermédiaire. Les explications sont ici. Même si on peut le contourner, la solution la plus simple consiste à rediriger ses DNS vers ceux de Cloudflare.

Sophos XG Firewall Home Edition

On parle souvent de PF Sense et d’autres firewalls plus ou moins gratuits, moi je vais vous parler de Sophos XG dont la version Home est une version logicielle gratuite qui est parfaite pour un environnement de test ou un home lab. C'est le même logiciel que l'on retrouve sur les appliances du constructeur à ceci près qu'il faudra le faire tourner sur une petite machine ou une VM.

Il offre une protection complète de votre réseau, notamment anti-malware, filtrage Web et sécurité Web, contrôle des applications, IPS, gestion du trafic, VPN, rapports et surveillance, et bien plus encore. Le pare-feu Sophos XG Free Home Use contient son propre système d'exploitation, par conséquent, un ordinateur dédié distinct est nécessaire, qui deviendra une Appliance de sécurité entièrement fonctionnelle. Parfait pour un NUC ou une VM. Si Sophos est utilisable pour protéger les services entrants (mail, web) en direct ou en reverse proxy, il prend en compte très finement le trafic sortant afin de lisser et hiérarchiser le trafic des applications sur votre connexion Internet et même vous abonner à plusieurs FAI pour obtenir davantage de bande passante ou de résilience en cas de panne de l'un d'eux. Il est possible de surveiller et contrôler la navigation web, d'utiliser le filtrage Web pour empêcher les sites de vous infecter de virus et de logiciels espions, empêchez vos enfants de surfer sur des sites malveillants et d'obtenir un rapport complet sur l'activité de votre maison. On peut également configurez des horaires d’accès ou des quotas d’utilisation pour les membres de la famille qui perdent peut-être trop de temps en ligne. C'est également un serveur VPN pour accéder à votre réseau à distance depuis n'importe où dans le monde. Sophos étant également un fournisseur notoire d'antivirus, cette fonctionnalité est intégrée. Les moteurs d'analyse Dual AV bloquent les virus dans les téléchargements de fichiers, les pièces jointes aux e-mails et les sites web malveillants. Sophos les stoppe sur la passerelle avant qu'ils ne puissent attaquer vos ordinateurs. Et bien plus encore ...

Ce dont vous avez besoin,  simplement un ordinateur compatible Intel avec deux interfaces réseau ou une VM. (Tout système d'exploitation précédent ou tous les fichiers présents sur l'ordinateur seront écrasés lors de l'installation de XG Firewall Home Edition.) L'édition familiale et gratuite est limitée à 4 cœurs et à 6 Go de RAM. L'ordinateur peut en avoir plus que cela, mais XG Firewall Home Edition ne pourra pas l'utiliser. Mais c'est déjà largement suffisant dans bien des cas d'exploitation.

Ah si, j'oubliais, dans le cadre d'un usage familial il vaut mieux que l'un des membres de la famille soit un bon geek, car ne nous y trompons pas, Sophos XG est un vrai produit d'entreprise qui ne s'installe pas en un clic...