Sécuriser votre site de domotique - ".htaccess"

logohtaccess.jpgVous avez enfin réalisé les pages de contrôle de votre foyer et vous aimeriez bien pouvoir tout gérer de l'extérieur, c.à d. depuis tout ordinateur connecté à Internet. Mais n'y a t'il pas un risque que des p'tits malins vous jouent des tours ?

Il va falloir sécuriser les contrôles.
Si votre site est hébergé sous Apache, ce qui est le cas si vous créez votre propre serveur HTTP avec un Raspi, vous pouvez utiliser le ".htaccess", pour sécuriser certaines actions, comment ?

Préparation

  1. créez un dossier sous la racine de votre site :

root@pi:/root$ mkdir /var/www/dossier_secure # /var/www est le chemin par défaut de votre site sous Apache
root@pi:/root$ chown www-apache /var/www/dossier_secure
root@pi:/root$ chmod 740 /var/www/dossier_secure # empêcher l'accès à "tous" sur ce dossier

  1. créez un document caché ".htaccess" contenant le code qui suit :

root@pi:/root$ nano /var/www/dossier_secure/.htaccess

AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile "/root/.htpasswd"
Require valid-user

Attention il faut indiquer un chemin absolu pour l'accès au fichier .htpasswd : /root/ (par exemple).
Maintenant il faut créer les utilisateurs à l'intérieur du fichier /root/.htpasswd.
Je vous conseille de coder vos mots de passe à l'intérieur du fichier, comment :

root@pi:/root$ htpasswd -cm /root/.htpasswd user1

New password: 
Re-type new password: 
Adding password for user user1

Pour ajouter un autre utilisateur, retirez le -c (create new file)

root@pi:/root$ htpasswd -m /root/.htpasswd user2

New password: 
Re-type new password: 
Adding password for user user2

Pour vous amusez, regardez le contenu de votre fichier /root/.htpasswd, vous verrez les mdp encodés en MD5.
Rendez quand même le document illisible pour un quidam :

root@pi:/root$ chown www-apache /root/.htpasswd
root@pi:/root$ chmod 440 /root/.htpasswd

Nous pouvons maintenant déplacer et/ou créer nos pages sensibles dans ce dossier protégé.
J'ajouterai bientôt un billet sur mes méthodes de contrôle de mon chauffage en utilisant le mode sécurisé pour les commandes de mise en route/arrêt et autres réglages depuis les pages HTTP.