Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
domoticz-sj-sicurezza [2017/09/04 22:51]
94.198.103.44
domoticz-sj-sicurezza [2019/09/06 15:36] (versione attuale)
flane [1.1.6 Riavviare fail2ban]
Linea 1: Linea 1:
-====== 1.Domoticz - sicurezza ======+====== 1. 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 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.Fail2ban - banning dei tentivi di accesso indesiderati =====+===== 1.Fail2ban - banning dei tentivi di accesso indesiderati ===== 
 + 
 **FONTI:** **FONTI:**
-  * [[https://​www.domoticz.com/​wiki/​Automated_banning_of_IP_that_fails_to_login_multiple_times|Domoticz wiki - Fail2ban]] + 
-  * [[http://​guide.debianizzati.org/​index.php/​Fail2ban| Fail2ban - debianizzati.org]]+   * [[https://​www.domoticz.com/​wiki/​Automated_banning_of_IP_that_fails_to_login_multiple_times|Domoticz wiki - Fail2ban]] 
 +  * [[http://​guide.debianizzati.org/​index.php/​Fail2ban|Fail2ban - debianizzati.org]]
  
 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. 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.
Linea 14: Linea 17:
 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). 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 ====+==== 1.1.1 Installazione ====
  
  
 L'​installazione è semplice: L'​installazione è semplice:
-<​code>​sudo apt-get install fail2ban</​code>​ 
  
 +<​code>​
 +sudo apt-get install fail2ban
 +</​code>​
  
-==== 2.2 Aggiungere il log di Domoticz a Fail2ban ====+==== 1.1.2 Aggiungere il log di Domoticz a Fail2ban ====
  
- +Innanzitutto andremo a dire a fail2ban dove andare a guardare e che cosa cercare.
-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): Andiamo ad editare il file jail.local (che probabilmente sarà vuoto):
-<​code>​sudo nano /​etc/​fail2ban/​jail.local</​code>​+ 
 +<​code>​ 
 +sudo nano /​etc/​fail2ban/​jail.local 
 +</​code>​ 
 ed aggiungiamo la seguente sezione: ed aggiungiamo la seguente sezione:
  
-<​code>​[domoticz]+<​code>​ 
 +[domoticz]
  
 enabled ​ = true enabled ​ = true
Linea 37: Linea 46:
 logpath ​ = /​var/​log/​domoticz.log logpath ​ = /​var/​log/​domoticz.log
 maxretry = 3 maxretry = 3
-findtime = 3600 </​code>​+findtime = 3600 
 +</​code>​
  
-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. +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.
-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 ====+==== 1.1.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
  
-Per fare in modo che fail2ban trovi gli indirizzi IP da bloccare, dobbiamo fornire a fail2ban alcune definizioni di ricerca (regex).  +<​code>​ 
-Andiamo a creare il file domoticz.conf  +sudo nano /​etc/​fail2ban/​filter.d/​domoticz.conf 
- +</​code>​
-<​code>​sudo nano /​etc/​fail2ban/​filter.d/​domoticz.conf</​code>​+
  
 ed incolliamo quanto segue: ed incolliamo quanto segue:
  
-<​code>#​ Fail2Ban configuration file for domoticz+<​code>​ 
 +# Fail2Ban configuration file for domoticz
 # #
 # Author: Domoticz user '​ThinkPad'​ & Flane # Author: Domoticz user '​ThinkPad'​ & Flane
Linea 65: Linea 75:
 #          host must be matched by a group named "​host"​. The tag "<​HOST>"​ can #          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 #          be used for standard IP/hostname matching and is only an alias for
-#          (?:::​f{4,​6}:​)?​(?​P<​host>​[\w\-.^_]+)+#          (?:::​f{4,​6}:​)?​(?​P<​host>​[w-.^_]+)
 # Values: ​ TEXT # Values: ​ TEXT
 # #
 failregex = Error: Failed login attempt from <​HOST>​ for user '​.*'​ ! failregex = Error: Failed login attempt from <​HOST>​ for user '​.*'​ !
             Error: Failed login attempt from <​HOST>​ for '​.*'​ !             Error: Failed login attempt from <​HOST>​ for '​.*'​ !
-            Error: Webserver: Failed authentication attempt, ignoring client request ​\(remote addresses: <​HOST>​\+            Error: Webserver: Failed authentication attempt, ignoring client request (remote addresses: <​HOST>​) 
-            Error: ​\[web\:.*\] Failed authentication attempt, ignoring client request ​\(remote address: <​HOST>​\)+            Error: [web:.*] Failed authentication attempt, ignoring client request (remote address: <​HOST>​)
  
 #First line is for 'Login Page' authentication mode of Domoticz #First line is for 'Login Page' authentication mode of Domoticz
Linea 82: Linea 92:
 # Values: ​ TEXT # Values: ​ TEXT
 # #
-ignoreregex =</​code>​+ignoreregex = 
 +</​code>​
  
- +==== 1.1.4 Aggiunta di un IP a whitelist (Facoltativo) ====
- +
-==== 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. 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.
Linea 92: Linea 101:
 Per fare ciò editiamo il file jail.conf: Per fare ciò editiamo il file jail.conf:
  
-<​code>​sudo nano /​etc/​fail2ban/​jail.conf</​code>​+<​code>​ 
 +sudo nano /​etc/​fail2ban/​jail.conf 
 +</​code>​
  
 Cercate la riga '​ignoreip = 127.0.0.1/​8'​. 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: Se gli indirizzi della vostra rete locale sono del tipo 192.168.1.x modificate la riga come di seguito:
-<​code>​ignoreip = 127.0.0.1/8 192.168.1.0/​24</​code>​ 
  
-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. +<​code>​ 
-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. +ignoreip = 127.0.0.1/8 192.168.1.0/24 
-Per approfondimenti:​ http://​www.fail2ban.org/wiki/​index.php/Whitelist+</code>
  
-==== 2.5 Abilitare fail2ban per accessi ​ssh, http e https (facoltativo====+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|http://​www.fail2ban.org/​wiki/​index.php/​Whitelist]]
  
 +==== 1.1.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. 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.
Linea 110: Linea 122:
 Per fare ciò editiamo il file jail.conf e controlliamo che le seguenti sezioni siano abilitate come di seguito: Per fare ciò editiamo il file jail.conf e controlliamo che le seguenti sezioni siano abilitate come di seguito:
  
-<​code>​sudo nano /​etc/​fail2ban/​jail.conf</​code>​+<​code>​ 
 +sudo nano /​etc/​fail2ban/​jail.conf 
 +</​code>​
  
-<​code>​[ssh]+<​code>​ 
 +[ssh]
  
 enabled ​ = true enabled ​ = true
Linea 118: Linea 133:
 filter ​  = sshd filter ​  = sshd
 logpath ​ = /​var/​log/​auth.log logpath ​ = /​var/​log/​auth.log
-maxretry = 6</​code>​+maxretry = 6 
 +</​code>​
  
 Il webserver utilizzato sulla Solarjessie è apache pertanto dovremmo verificare la relativa sezione. Il webserver utilizzato sulla Solarjessie è apache pertanto dovremmo verificare la relativa sezione.
  
-<​code>#​+<​code>​ 
 +#
 # HTTP servers # HTTP servers
 # #
Linea 132: Linea 149:
 filter ​  = apache-auth filter ​  = apache-auth
 logpath ​ = /​var/​log/​apache*/​*error.log logpath ​ = /​var/​log/​apache*/​*error.log
-maxretry = 6</​code>​+maxretry = 6 
 +</​code>​
  
-in particolare controllate che le righe enabled siano impostate =true e non false. +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.
-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. 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 ====+==== 1.1.6 Riavviare fail2ban ====
  
 Per applicare le nuove impostazioni è necessario riavviare fail2ban Per applicare le nuove impostazioni è necessario riavviare fail2ban
  
-<​code>​sudo ​/​etc/​init.d/​fail2ban ​restart</​code>​+<​code>​ 
 +sudo systemctl ​restart ​fail2ban 
 +</​code>​
  
- +==== 1.1.7 Verifica controlli attivi ====
-==== 2.7 Verifica controlli attivi ====+
  
 A questo punto, se tutto è stato eseguito correttamente,​ lanciando il comando: A questo punto, se tutto è stato eseguito correttamente,​ lanciando il comando:
-<​code>​iptables -L</​code>​+ 
 +<​code>​ 
 +sudo iptables -L 
 +</​code>​
  
 dovreste vedere le nuove chain relative a fail2ban per il servizio apache, domoticz e ssh come di seguito: dovreste vedere le nuove chain relative a fail2ban per il servizio apache, domoticz e ssh come di seguito:
  
-{{ :​img_domoticz:​fail2ban.png?​nolink&​600 ​|}}+{{  :​img_domoticz:​fail2ban.png?​nolink&​600 ​ }} 
  
  • domoticz-sj-sicurezza.1504558260.txt.gz
  • Ultima modifica: 2017/09/04 22:51
  • da 94.198.103.44