DOMOTICZ

Installation de DOMOTICZ sur un Raspberry PI 3 B

Nous allons voir comment installer et configurer DOMOTICZ sur votre RPI 3B.

Sources:
http://domoticz.com
https://www.raspberrypi.org/downloads/raspbian/

Tout d’abord qu’est-ce que DOMOTICZ ???
DOMOTICZ est un système de gestion domotique GRATUIT opensource qui va vous permettre de contrôler un paquet de choses chez vous, via votre Raspberry est ses port GPIO mais surtout avec des émetteurs récepteurs radio, comme le RfxTrx433 de chez Rfxcom  le USB Z-Stick S2 Z-Wave de chez Z-Wave ou le RFLink. Personnellement j’ai opté pour Rfxcom qui est plus dans l’esprit de l’opensource que Z-Wave et les objets connectées sont moins cher et pas propriétaires et puis je voulais un produit déjà monté (RFLink est à fabriquer soi même).

Commençons notre installation:
Pour se faire il faut télécharger l’image Debian pour RPI ici: Raspbian Jessie with PIXEL mais la version Lite est suffisante, l’installer comme indiqué sur le site de Raspberrypi, vous aurez besoin de l’outil Win32diskimage pour installer l’image sur votre carte SD.

Une fois l’image en place et le Raspberry démarrer vous allez devoir vous connecter avec Putty sur le Raspberry, donc rechercher l’ip local de votre RPI et connectez vous avec l’identifiant mot de passe suivant:

User: pi
Password: raspberry

Si vous rencontrez une erreur « connection refused » il faut créer un fichier sans extension nommé « ssh » à la racine de la partition boot.

Une fois connecté il faut faire quelques réglages, taper les commandes (vous pouvez aller vous prendre un café la maj de la distrib prend un bout de temps):

sudo apt-get update
sudo apt-get upgrade
sudo raspi-config

Ce qui met à jour votre Debian et vous donne accès à la configuration de la distrib Debian du Raspberry, vous devez:
1- Configurer la langue et le clavier.
2- Changer le mot de passe.
3- Étendre la partition système à la capacité de la carte SD.
Vous pouvez quitter et reboot le RPI.

Nous pouvons passer à l’installation de domoticz:

sudo curl -L install.domoticz.com | bash

Dernièrement j’ai rencontré un problème lors d’une nouvelle installation de Domoticz, il plantait au lancement indiquant:

 /home/pi/domoticz/domoticz: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or direc

il faut donc installer le packet demandé:

cd /tmp
wget http://ftp.fr.debian.org/debian/pool/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u6_armhf.deb
sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u6_armhf.deb

Voilà c’est fait !! Super compliqué non? ^^

Mais c’est pas fini il faut un peu sécuriser votre installation, pour ce faire il faut installer un outil bien pratique qui est « Fail2Ban » qui va bannir les IP qui essaies a plusieurs reprise de se connecter à votre installation.

Instalaltion de Fail2Ban:

sudo apt-get install fail2ban

Ajouter le log de domoticz dans fail2ban:

cd /etc/fail2ban
sudo cp jail.conf jail.local
sudo nano jail.local

Ajouter les lignes suivantes:

[domoticz]

enabled  = true
port     = 8080 # à modifier si vous avez modifié le port de domoticz par défaut
filter   = domoticz
logpath  = /var/log/domoticz.log
maxretry = 3 # nombre de tentatives avant bannissement 
findtime = 3600

Modifier le fichier de conf de domoticz:

sudo nano /etc/init.d/domoticz.sh

Modifier les lignes suivantes:

DAEMON_ARGS="$DAEMON_ARGS -www 8080 -log /var/log/domoticz.log"
DAEMON_ARGS="$DAEMON_ARGS -sslwww 443 -log /var/log/domoticz.log"

Redémarrer le service domoticz pour prendre en compte les modifications:

<code>sudo /etc/init.d/domoticz.sh restart</code>

Créer les définitions de recherche des IP a bannir:

<code>sudo nano /etc/fail2ban/filter.d/domoticz.conf</code>

Ajouter les lignes suivantes:

# Fail2Ban configuration file for domoticz
#
# Author: Domoticz user 'ThinkPad'
#
# $Revision$
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "&lt;HOST&gt;" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P&lt;host&gt;[\w\-.^_]+)
# Values:  TEXT
#
failregex = Error: Failed login attempt from &lt;HOST&gt; for user '.*' !   							
            Error: Failed login attempt from &lt;HOST&gt; for '.*' !
            Error: Webserver: Failed authentication attempt, ignoring client request \(remote addresses: &lt;HOST&gt;\)

#First line is for 'Login Page' authentication mode of Domoticz
#Second line is for 'Basic-Auth' authentication mode in Domoticz
#
#
#
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Puis créer une liste d’IP que Fail2Ban ne bannira jamais:

sudo nano /etc/fail2ban/jail.local

Modifier la ligne:

ignoreip = 127.0.0.1/8 192.168.X.X/24 #Modifier selon votre réseau local.

Redémarrer Fail2Ban:

sudo /etc/init.d/fail2ban restart

Pour ma part j’utilise aussi GeoIP pour Iptables qui permet de bannir des IP celons leur géolocalisation, en d’autres termes bannir n’importe quelle IP venant de Russie par exemple, l’inconvénient est que si vous êtes en déplacement dans un pays banni, vous ne pourrez pas vous connectera à votre système domotique, à moins de passer par une passerelle VPN pour obtenir un IP local.

Lors de mes premiers tests de GeoIP j’ai eu des problème qui semble lié au kernel, j’ai donc trouvé un site qui explique comment l’installer sur Raspian sans avoir de problème à l’utilisation.

Installation des dépendances:

sudo apt-get update && sudo apt-get install git bc libncurses5-dev libtext-csv-xs-perl autoconf automake libtool xutils-dev iptables-dev -y

Upgrade Raspian:

sudo apt-get dist-upgrade -y

Installation d’RPI-source:

sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source && sudo chmod +x /usr/bin/rpi-source && /usr/bin/rpi-source -q --tag-update

Obtenir la version du kernel:

cd ~
rpi-source

Installation d’xtables-addons depuis les sources:

git clone git://git.code.sf.net/p/xtables-addons/xtables-addons
cd xtables-addons
./autogen.sh
./configure
make
sudo make install

Copie de l’outil GeopIP:

sudo mkdir /usr/share/xt_geoip
sudo cp /home/pi/xtables-addons/geoip/xt_geoip_dl /usr/share/xt_geoip/
sudo cp /home/pi/xtables-addons/geoip/xt_geoip_build /usr/share/xt_geoip/

Télécharger et mettre à jour GeoIP data:

cd /usr/share/xt_geoip
sudo ./xt_geoip_dl
sudo ./xt_geoip_build -D . *.csv

Redémarrer votre RPI:

sudo reboot

Je ne saurai vous dire pourquoi, mais il faut démarrer depmod celons plusieurs sites parlants du problème:

sudo depmod

Vous pouvez maintenant ajouter une restriction de localisation.
Pour le blocage de port:

sudo iptables -A INPUT -p tcp -m tcp --dport XX -m geoip --source-country XX -j DROP # Choisir le port et le code du pays !

Pour un blocage total:

sudo iptables -A INPUT -m geoip --source-country XX -j DROP # Choisir le code pays !

Pour le blocage d’une IP:

sudo iptables -A INPUT -s XXX.XXX.XXX.XXX -j DROP

Retirer le blocage d’une IP :

sudo iptables -D INPUT -s XXX.XXX.XXX.XXX -j DROP

Liste des codes pays: http://www.iso.org/iso/fr/french_country_names_and_code_elements

Voici un fichier contenant les codes pays ainsi qu’un grand nombre d’IP qui mon cassées les c.. pieds et que j’ai fini par bannir définitivement !
ipban-rasp

Pour info, GeoIP n’accepte pas plus de 10 codes pays par lignes.
ATTENTION APRÈS REBOOT LES RÈGLES IPTABLES SAUTES IL FAUT DONC REJOUER LE SCRIPT POUR LES AJOUTER OU FAIRE EN SORTE QUE LE SCRIPT SE LANCE AU DÉMARRAGE DU RPI !!

Maintenant que votre RPI est opérationnel avec DOMOTICZ dessus, vous pouvez accéder à l’interface web via l’url http://IP.DE.VOTRE.RPI:8080.

Leave a Reply

Your email address will not be published.




Le temps imparti est dépassé. Merci de recharger le CAPTCHA.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.