Michele Agostinelli Blog

sicurezza

Pare che la vicenda degli spazzolini elettrici WiFi usati per un attacco informatico non sia reale, ma piuttosto si tratta di uno scenario ipotetico. (https://www.hwupgrade.it/news/sicurezza-software/tre-milioni-di-spazzolini-elettrici-smart-utilizzati-come-rete-botnet-per-un-attacco-ddos_124149.html)

Certo non molto distante dalla realtà, visto che ormai tutti gli elettrodomestici hanno connettività WiFi.

A mio avviso il problema è il come è stata implementata la connettività degli apparecchi. Infatti molti di questi richiedono obbligatoriamente una connessione internet funzionante.

A parte eventuali problematiche legate alla sicurezza, questo comporta anche una dipendenza dal sito del produttore. Cioè se per qualsiasi motivo (economico e non) quest'ultimo decide di chiudere il servizio, il nostro apparecchio perderà queste funzionalità.

Facciamo un esempio concreto: in casa ho un impianto di #domotica personale con #homeassistant, ho anche l'impianto di condizionamento collegato in WiFi. Dato che gli apparecchi hanno qualche anno, ho dovuto acquistare una scheda aggiuntiva (WiFi) da inserire al loro interno. Dopo un po' di ricerche e approfondimenti, ho scoperto che ne esistevano due versioni, una più vecchia, ma che esponeva direttamente in rete locale delle #api, e una più moderna che funzionava solo se è attivo un collegamento internet (e il server del produttore è funzionante). Ho faticato un po', ma alla fine sono riuscito a trovare la prima versione della scheda presso un venditore on line, ne aveva ancora disponibili anche se ormai fuori produzione (per mia fortuna). In questo modo riesco a comandarli (e interrogare lo stato) anche se la connessione internet di casa dovesse non funzionare o se il produttore decidesse di interrompere il servizio.

Concludendo, quando acquistate un apparecchio, nella scelta fate attenzione anche a questo aspetto!

#domotica #sicurezza #wifi #informatica #spazzolini

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

Definizione

WireGuard è un programma open source che implementa una connessione VPN per creare connessioni sicure punto-punto

Wireguard Logo

A cosa serve?

Sicuramente avrete già sentito parlare di vpn, qualora ne siate a digiuno provo a scriverlo brevemente. Attivando questa connessione tra due dispositivi, collegati entrambi alla rete internet, permette loro, in modo sixuro, di comunicare tra di loro.

Vantaggi

Wireguard si distingue da altri programmi simili per la sua leggerezza, occupa pochissime risorse, e per le prestazioni. Se lo provate, con una buona connessione da ambo i lati, vi sembrerà davvero di essere in rete locale. La connessione tra i due punti è cifrata e quindi sicura.

Perché usarlo

  • Collegarsi alla propria rete domestica da fuori casa (senza esporre pubblicamente i servizi, ma solo la porta della vpn)
  • Amministrare / gestire dispositivi di: amici / parenti / clienti
  • Condividere risorse locali solo con chi si vuole
  • Anonimato (navigare sul web come se fisicamente si ci trovasse nella rete del server vpn)
  • Sicurezza: se si è connessi ad una rete pubblica il nostro traffico sarà comunque cifrato
  • blocco pubblicità su smartphone se usato in accoppiata a #pihole (seguirà articolo dedicato)
  • Supporto dello split tunnel

Caratteristiche

  • Si basa su protocollo udp, e non tcp per avere prestazioni migliori
  • Disponibile per svariati sistemi operativi
  • Funziona su tutti i dispositivi mobili
  • Risorse richieste quasi nulle, funziona benissimo su vecchi pc o su #raspberrypi
  • Configurazione facile con un file unico (portatile)
  • Configurazione tramite qr code
  • Possibilità di avere più vpn attive contemporaneamente

Wireguard Connections

Creare una nuova connessione

  1. Installare il software
  2. Scgliere una porta udp dedicata
  3. Abllitare il forwarding della porta sul nostro router
  4. Scelta di una subnet (dedicata)
  5. Abilitare il forwarding dei pacchetti ip
  6. Creare la configurazione

Configurazione manuale (da riga di comando)

Di seguito vari comandi, divisi per argomento, che permettono di attivare la nostra prima vpn. La preshared key non è obbligatoria ma se la si usa si renderà la connessione ancora piuù sicura. Negli esempi sottostanti abbiamo scelto 92.168.20.0/24 come subnet per la nostra vpn.

Installazione (debian)

sudo apt update
sudo apt install wireguard
sudo vi /etc/sysctl.conf
	net.ipv4.ip_forward=1
sudo sysctl -p

Generazione chiavi

Le chiavi generate vanno sia per una configurazione come server che come client

umask 077
wg genkey > privatekey
wg pubkey < privatekey > publickey
wg genpsk > preshared.keys

Esempio di file conf del server

/etc/wireguard/wg0.conf
[Interface]
PrivateKey = chiave_privata_server
Address = 192.168.20.1/24
ListenPort = 52001
SaveConfig = true
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = chiave_pub_client_1
PresharedKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AllowedIPs = 192.168.20.2/32

Esempio di file conf del client

[Interface]
PrivateKey = chiave_priv_client1
Address = 192.168.20.2/24

[Peer]
PublicKey = chiave_pub_server
PresharedKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = hostname_pubblico_server:52001

Comandi per la connessione

sudo wg-quick up wg1
sudo wg-quick down wg1
sudo wh show

Avvio automatico con systemd

sudo systemctl enable wg-quick@wg0.service
sudo systemctl start wg-quick@wg0.service
sudo systemctl status wg-quick@wg0.service

Generare Qr code

Installare il software qrencode

qrencode -t ansiutf8 < /etc/wireguard/clients/client1.conf

Wireguard Command Line

Aggiunta nuovi client

Per aggiungere un nuovo client, conviene spengere la vpn del server (wg down), aggiungere le nuove righe al file di configurazione, e riattivare la connessione (wg up)

Configurazione guidata

Vedi i due frontend web suggeriti sotto per la parte server. Per la configurazione come client è sufficiente importare il file conf generato o in alternativa il qr code. Per la connessione è sufficiente utilizzare un client; – Su linux è possibile usare li strumenti integrati nel desktop in uso attraverso NetworkManager (kde, gnome, ecc) – Su windows è sufficiente scaricare il client dal sito ufficiale (https://www.wireguard.com) – Android Play store: https://play.google.com/store/apps/details?id=com.wireguard.android – Apple store: https://apps.apple.com/it/app/wireguard/id1441195209

Programmi accessori (frontend)

Funzioni avanzate

Dns

Nella configurazione del client è anche possibile indicare quale server dns utilizzare

Firewall per i client

Nalle configurazione server è possibile aggiungere più righe di PostUp con iptables, e quindi configurare il firewall con assoluta personalizzazione: è possibile, quindi, limitare la risorse da accedere a specifici indirizzi

Limitare la banda

Sempre grazie ai comandi postup è possibile anche limitare, qualora si voglia, la banda passante per i client (sia in upload che ion download), ad esempio:

PostUp = tc qdisc add dev wg0 ingress; tc filter add dev wg1 protocol ip ingress prio 2 u32 match ip dst 0.0.0.0/0 action police
rate 10mbit burst 10mbit; tc filter add dev wg0 protocol ip ingress prio 2 u32 match ip src 0.0.0.0/0 action police rate 10mbit burst 10mbit
PostUp = tc qdisc add dev wg0 parent root handle 1: hfsc default 1; tc class add dev wg0 parent 1: classid 1:1 hfsc sc rate 10mbit ul rate 10mbit

Wireguard Network #vpn #wireguard #wg #tunnel #sicurezza

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA