Sécuriser son Kimsufi Web avec SFTP et Let’s Encrypt
Divulgâchage : Une fois son hébergement web activé, il est utile de configurer certains paramètres incontournables liés à la sécurité de votre site ; SFTP pour vos transferts de fichiers et TLS pour vos visiteurs.
Depuis notre panne d’internet, nous sommes passé sur un hébergement extra-muros chez OVH et nous avons donc du configurer quelques réglages pour augmenter la sécurité de l’accès au site.
Activer le SFTP
Nous commençons donc par sécuriser le transfert des fichiers entre nous et le serveur.
Pour ça, nous allons dans le menu FTP - SSH. En bas de cet
écran, on trouve un tableau avec les comptes disponibles et leurs
caractéristiques, la colonne SFTP
, comme son nom l’indique,
permettant d’activer le chiffrement des connexions pour le transfert des
fichiers.
Petit piège, le texte ne dit pas ce qu’il se passe lorsqu’on coche la case mais l’état dans lequel se trouve la configuration. À votre première visite, la case n’est pas cochée et le texte indique Désactivé.
Pour activer SFTP
, il suffit donc de cocher la case, le
texte change alors pour vous indique que la modification est en cours
puis, au bout d’un moment, vous indique que le chiffrement est
activé.
Activer le multisite
Pour cette étape, il ne s’agit pas vraiment de sécurité mais si vous avez plusieurs noms de domaines, il vaut mieux les configurer maintenant plutôt que d’attendre et devoir ensuite faire la configuration plusieurs fois.
On se dirige donc vers le menu Multisite qui contient un tableau avec les domaines disponibles et la configuration correspondante (dossier, journalisation, …).
Ajouter un domaine
Pour ajouter un domaine, cliquez sur le bouton correspondant (en bas, Ajouter un domaine ou sous-domaine).
La première étape vous demande si vous voulez un sous-domaine ou un
domaine externe. Dans notre cas, on est là pour ajouter d’anciens
domaines (repo.arsouyes.org
), on choisi donc le premier
bouton radio.
La deuxième étape consiste à configurer le domaine proprement dit, on complète donc les champs en fonction :
- Domaine : on renseigne le sous-domaine, dans notre
cas,
repo
, par contre, on décoche la case suivante pour ne pas créer lewww
correspondant. - Dossier racine : on pourrait héberger deux sites
distincts, mais dans notre cas, on va simplement tout mettre au même
endroit,
www
. - Choisissez une option : On a décidé d’activer l’IPv6 et SSL, par contre, la géolocalisation ne nous intéresse pas.
- Firewall et Logs : dans notre cas, nous avons décidé de ne pas activer le pare-feu ni de mettre les journaux dans un fichier dédié.
La dernière étape est un résumé pour être sûr de nos réglages. Comme nous avons nos DNS chez OVH, l’ajout des sous-domaine peut se faire automatiquement (case cochée).
On peut alors voir notre nouveau domaine parmi les autres domaines.
Modifier un domaine
En cas de soucis, ou de besoin de changement, l’icone d’engrenage permet de modifier un domaine. Les paramètres sont les mêmes que pour la deuxième étape lors de la création.
L’étape suivante n’est qu’un résumé pour valider.
Lets-encrypt
Un site HTTPS n’a de sens que si son certificat est signé par une autorité acceptée par vos visiteurs. Vous pourriez générer votre propre autorité, ou faire signer vos certificats par une autorité payante, dans notre cas, nous avons choisi Let’s Encrypt.
Comme la configuration d’un multisite n’est pas instantanée, il est conseillé d’attendre un peu avant de (re)générer ses certificats.
La documentation officielle est plutôt facile à suivre. La configuration des certificats peut se faire via deux menus :
- Via le menu Informations générales, le bouton à droite de la configuration SSL permet de re-générer vos certificats,
- Via le menu Multisite qui a un bouton dédié pour les re-générer aussi.
Activer Let’s Encrypt
Si c’est la première fois que vous l’activez, vous devez choisir Commander un certificat SSL puis choisir la première option (certificat gratuit via let’s encrypt).
Regénérer les certificats
Si vous avez ajouté un nouveau domaine, il faut alors re-générer vos certificats pour que tous vos domaines soient présents dans le certificat.
Redirections
À ce stade, votre site est disponible en HTTPS
mais vos
visiteurs peuvent encore se tromper et venir en clair. Si vous voulez
leur filer un coup de main et éviter qu’ils ne se trompent, vous devriez
les rediriger automatiquement.
On quitte donc la configuration du domaine et de l’hébergement pour
aller dans celle de l’application web que vous déployez et dans notre
cas, on passe par le .htaccess
et le mod_rewrite
:
RewriteEngine on
Les domaines
Nos anciens domaines n’hébergeant plus d’applications spécifique, nous avons choisi de rediriger les visiteurs qui suivraient un vieux lien mort vers le site de base.
On ajoute donc une condition sur le nom d’hôte utilisé dans la requête et s’il ne s’agit pas du domaine principal, on redirige le visiteur :
RewriteCond %{HTTP_HOST} !^www\.arsouyes\.org
RewriteRule (.*) https://www.arsouyes.org/$1 [R=301,L]
HTTPS
La technique est ici similaire, on ajoute une condition sur la
requête et si on remarque qu’il ne s’agit pas de HTTPS
, on
redirige.
La première solution est d’utiliser la variable HTTPS
fournie directement par apache2 qui vaut on si c’est
le cas et off si la connexion n’est pas chiffrée.
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.arsouyes.org/$1 [R=301,L]
La deuxième solution est d’utiliser le numéro de port de la
connexion, 80 en HTTP
contre 443 en HTTPS
. Si
la première méthode ne fonctionne pas sur votre serveur, la second peut
parfois aider.
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://www.arsouyes.org/$1 [R=301,L]
Et après ?
Maintenant, vos connexions vers votre site sont sécurisées et utilisent des protocoles cryptographiques sûrs.
- Déployer un site web via sftp et Gitlab
-
10 juin 2019 Avec notre nouvel hébergement, nous avons
du revoir nos scripts de déploiement continu. Remplacer
rsync
parlftp
n’est pas compliqué mais nécessite de fournir les données d’authentifications à l’environnement de déploiement. Heureusement, gitlab fournit une méthode sécurisée pour protéger ces informations sensibles. - Panne d’internet, pas de site web
- 3 juin 2019 C’est le risque lorsqu’on pratique l’auto-hébergement : une panne de connexion internet a rendu le site des arsouyes inaccessible. Pour revenir au plus vite et surtout que ça ne se reproduise plus, nous sommes passés chez un hébergeur.