Questa è una vecchia versione del documento!


1.0 Domoticz - sicurezza

Uno degli aspetti più importanti per un sistema di automazione domestica, nel caso in cui si voglia gestire il proprio sistema anche dall'esterno della propria rete LAN (e quindi tramite internet) è senz'altro il fatto di rendere sicuro il sistema ed evitare possibili accessi indesiderati

2.0 Fail2ban - banning dei tentivi di accesso indesiderati

FONTI:

Se si intende aprire l’accesso a Domoticz anche direttamente da internet, è una buona regola adottare dei minimi sistemi per proteggere il nostro sistema domotico da accessi indesiderati.

Uno di questi è utilizzare il servizio Fail2ban per bloccare tentativi di accesso indesiderati.

Fail2ban è un software che è nato per permettere di bloccare gli host che stanno tentando di effettuare un attacco di brute force via SSH. Questo genere di attacco si basa su continui tentativi di accesso, provando o l'username root con password probabili (come password, root, e così via) oppure tramite coppie di username/password conosciute (create, ad esempio, da malware o da rootkit).

2.1 Installazione

L'installazione è semplice:

sudo apt-get install fail2ban

2.2 Aggiungere il log di Domoticz a Fail2ban

Innanzitutto andremo a dire a fail2ban dove andare a guardare e che cosa cercare.

Andiamo ad editare il file jail.local (che probabilmente sarà vuoto):

sudo nano /etc/fail2ban/jail.local

ed aggiungiamo la seguente sezione:

[domoticz]

enabled  = true
port     = 8080
filter   = domoticz
logpath  = /var/log/domoticz.log
maxretry = 3
findtime = 3600

Naturalmente dovrete modificare la porta e la posizione del file log secondo le vostre impostazioni, ma se avete seguite le altre mie guide quando indicato è già corretto. In questo modo fail2ban permetterà solo 3 tentativi di accesso a Domoticz, dopo di che l’ip verrà bloccato e non sarà più permesso l’accesso.

2.3 Aggiungi definizioni di ricerca per Domoticz in fail2ban

Per fare in modo che fail2ban trovi gli indirizzi IP da bloccare, dobbiamo fornire a fail2ban alcune definizioni di ricerca (regex). Andiamo a creare il file domoticz.conf

sudo nano /etc/fail2ban/filter.d/domoticz.conf

ed incolliamo quanto segue:

# Fail2Ban configuration file for domoticz
#
# Author: Domoticz user 'ThinkPad' & Flane
#
# $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 "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[w-.^_]+)
# Values:  TEXT
#
failregex = Error: Failed login attempt from <HOST> for user '.*' !
            Error: Failed login attempt from <HOST> for '.*' !
            Error: Webserver: Failed authentication attempt, ignoring client request (remote addresses: <HOST>)
            Error: [web:.*] Failed authentication attempt, ignoring client request (remote address: <HOST>)

#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 =

2.4 Aggiunta di un IP a whitelist (Facoltativo)

Se volete che fail2ban non blocchi i PC presenti all’interno della vostra rete locale LAN, è possibile aggiungere i vostri indirizzi ad una whitelist, in modo che i tentativi di accesso non passino sotto il filtro di fail2ban.

Per fare ciò editiamo il file jail.conf:

sudo nano /etc/fail2ban/jail.conf

Cercate la riga 'ignoreip = 127.0.0.1/8'.

Se gli indirizzi della vostra rete locale sono del tipo 192.168.1.x modificate la riga come di seguito:

ignoreip = 127.0.0.1/8 192.168.1.0/24

Nel caso in cui i vostri indirizzi di rete locale appartengano ad una famiglia diversa (ad esempio 192.168.178.x o altro) modificate quanto sopra di conseguenza. Potete eventualmente aggiungere anche altri IP (anche esterni) se siete sicuri che siano accessi affidabili (ad esempio se avete un IP statico esterno da cui accedete spesso), lasciando semplicemente uno spazio nella riga modificata precedentemente ed aggiungendo l’ip a cui garantire libero accesso. Per approfondimenti: http://www.fail2ban.org/wiki/index.php/Whitelist

2.5 Abilitare fail2ban per accessi ssh, http e https (facoltativo)

Potete fare in modo che anche altri tentativi di accesso passino sotto il controlo di fail2ban, in particolare se utilizzate l’immagine SolarJessie, il consiglio è di abilitare il filtro anche per i servizi ssh, http e https.

Per fare ciò editiamo il file jail.conf e controlliamo che le seguenti sezioni siano abilitate come di seguito:

sudo nano /etc/fail2ban/jail.conf
[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

Il webserver utilizzato sulla Solarjessie è apache pertanto dovremmo verificare la relativa sezione.

#
# HTTP servers
#

[apache]

enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache*/*error.log
maxretry = 6

in particolare controllate che le righe enabled siano impostate =true e non false. Potreste anche trovare che tali servizi siano già abilitati, in tal caso non modificate nulla.

Con queste ultime modifiche, anche lo stesso accesso alle pagine admin di MeterN e 123Solar passerà sotto il filtro di fail2ban e nel caso di 6 tentativi di accesso sbagliati, l’IP verrà bloccato.

2.6 Riavviare fail2ban

Per applicare le nuove impostazioni è necessario riavviare fail2ban

sudo /etc/init.d/fail2ban restart

2.7 Verifica controlli attivi

A questo punto, se tutto è stato eseguito correttamente, lanciando il comando:

iptables -L

dovreste vedere le nuove chain relative a fail2ban per il servizio apache, domoticz e ssh come di seguito:

  • domoticz-sj-sicurezza.1504690219.txt.gz
  • Ultima modifica: 2017/09/06 11:30
  • da 87.2.110.139