Michele Agostinelli Blog

La casa delle mie passioni

Beh, chi mi conosce saprà già che la mia risposta è decisamente si!

Non c'è giorno in cui non lo utilizzi. Molte operazioni sono molto più veloci se fatte da terminale, come ad esempio quelle che si possono effettuare su molti file in un colpo solo! Bisogna ammettere che, iniziando da zero, la strada è in salita, c'è molto da imparare, ma una volta acquisita una certa padronanza, velocizzerete moltissimo il vostro flusso di lavoro e non solo ci sono delle operazioni che si possono effettuare solo in questo modo.. Pensate, ad esempio, alla modifica solo di alcuni file in mezzo a migliaia, oppure spostare solo quelli che rispettano alcuni criteri.

Nel mio caso terminale è sinonimo di #bash, la shell più usata in ambito #linux.

Bash

Esempi

Quelli che seguono sono alcuni esempi dei miei utilizzi più comuni.

Resize massivo di immagini

find /home/yunohost.app/nextcloud/data/__groupfolders/3/prove -type f -iname "*.jpg" -exec mogrify -define preserve-timestamp=true -verbose -resize "2048x2048>" -quality 90 {} \;

Resize massivo di video

mencoder panettone.mov -vf rotate=1 -oac pcm -ovc lavc -lavcopts ffmpeg -i input.file -c:v mpeg4 -q:v 5 -tag:v DIVX -vf scale=w=720:h=576:force_original_aspect_ratio=decrease -c:a libmp3lame -q:a 3 -ac 2 -ar 44100 output.avi
find /opt/mypath/ -xtype l

Rinomina di massa file

for i in File*.txt; do j=`echo $i | sed 's/questo/quello/g'`; mv "$i" "$j"; done

Ottimizzazione file pdf

Se vogliamo ridurre le dimensioni di alcuni file pdf in un certo path, rinunciando alla qualità delle immmagini.

for file in $(ls suffisso_*.pdf); do gs -sOutputFile="${resize_file%%.*}".pdf -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dDownsampleColorImages=true -dDownsampleGrayImages=true $file; done

sincronizzazione di file e directory

Questo comando si può usare sia tra due directory dello stesso computer, sia nel caso uno dei due sia remoto, l'enorme vantaggio sta nella seconda volta in cui viene lanciato, solo le differenze tra il primo e il secondo saranno trasferite, ottimizzando, quindi, i tempi del trasferimento. (saranno riportati anche i permessi dei singoli file)

rsync -auvx /orgine/ /destinazione/

Conversioni di formato (audio, video, ma non solo)

Flac (diversi metodi)

sox track_01.wav track_01.flac

for myfile in $(ls *.wav); do flac --verify --replay-gain --best --delete-input-file $myfile; done

ffmpeg -i in.wav -af aformat=s16:44100 out.flac

Ssh

Spesso la shell (= riga di comando) va a braccetto con il software ssh, che permette di collegarsi su un sistema remoto. Grazie alla combinazione dei due, è possibile amministrare server remoti (cioé diversi dal pc che stiamo usando) o headless, cioé privi dell'interfaccia grafica (che consuma solo risorse aggiuntive), come il famoso #raspberrypi.

curl

Come non citare curl il coltellino svizzero della riga di comando, specializzando in richieste remote via http e trasferimento di file. Su questo strumento (#curl) farò un articolo apposito, perché è uno strumento molto potente, in continuo sviluppo e con numerosi casi d'uso.

Vim

E' il mio editor per eccellenza, quando uso il terminale uso lui per editare i file di testo (e non solo).

Installazione pacchetti

Tutte le varie distribuzioni linux hanno degli appositi software (rigorosamente da riga di comando) per installare i pacchetti e le loro dipendenze, alcuni esempi: – apt (Debian/Ubuntu) – dnf (Fedora, redhat) – pacman (Arclinux) – apk (Alpine)

Ansible

Oltre a bash, di cui sopra abbiamo ampiamente parlato, #ansible merita una mensione d'onore (è probabile che in futuro farò un articolo dedicato a questo strumento). Ansible è un tool (open source) di automazione, con cui effettuare il provisioning, la gestione della configurazione, il deploy delle applicazioni e moltissimi altri processi IT, in modo semplice, organizzato e automatizzato. Il suo utilizzo è libero, e in rete è possibile trovare migliaia di playbook (script), condivisi da altri utenti che permettono di automatizzare i compiti più disparati.

Software di Backup

Da sempre Linux (ma non solo) offre molti software per gestire il backup da riga di comando. Alcuni esempi – borg – duplicity – restic – rsync – rclone

Powershell

Infine una piccola digressione/informazione, anche Microsoft è stata costretta ad ammettere la superiorità della riga di comando, infatti dopo anni in cui ha puntato esclusivamente a rendere le interfacce sempre più accattivanti, da qualche anno fornisce insieme ai suoi sistemi operativi la #powershell. Con questo software, di fatto, non ha voluto rimanere indietro rispetto al competitor #linux. In pratica è un ammissione circa il fatto che alcune cose si fanno meglio e più velocemente con la riga di comando! Nel corso del tempo sono nate estenzioni per questa shell, e ormai è possibile effettuare moltissime operazioni, purtroppo ha una propria sintassi, quindi sarà necessario studiare un po'.

Per motivi spazio e tempi di lettura l'articolo finisce qui, ma ci sarebbe materiale a sufficienza per scrivere libri su libri o riempire di articoli giornalieri un blog. Spero di avervi un po' incuriosito a provare, e con che i miei appunti su qualche comando che uso vi siano di aiuto.

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

Cos'è?

Amazon S3 è un tipo di storage in grado di memorizzare vari tipi di oggetti, è usato per applicazioni internet, backup, disaster receovery, archiviazione dati e per memorizzare grandissime quantità di dati per poi essere analizzate. Questo servizio è stato lanciato negli usa nel 2006 ed in Europa è arrivato, invece, l'anno successivo.

Come abbiamo visto, è nato come un servizio del cloud Amazon, ma poi moltissimi altri vendor (o software) hanno implementato le stesse Api, e quindi è diventato uno standard usato da molti altri fornitori (o software). S3 storage

Vantaggi

  • Costo ridotto
  • Possibilità di usarlo come repository per i nostri backup (a buon mercato).
  • Se hostiamo un servizio, possiamo optare per una VPS con disco ridotto (magari del tipo NVME), per poi usare s3 per memorizzare i dati di grandi dimensioni, in questo modo massimizziamo prestazioni e conteniamo i costi.
  • Funzionalità avanzate: cifratura dei dati, immutabilità del dato, snapshot, regole sul ciclo di vita dei dati, ecc.

Svantaggi

Vendor locking, diventa fondamentale prevedere un backup (magari incrementale) su un altro provider, ma non ovviamente avremo un raddoppio dei costi. Impossibilità di accedere ai dati in modo tradizionale: non c'è una directory con i dati organizzati in modo gerarchico.

Bucket

Un bucket è un container per gli oggetti archiviati in S3, si possono avere più bucket con uno stesso account, può essere utile per separare ambiti diversi e anche per creare chiavi di accesso seperate per ciascun bucket, cosi da segregare le applicazioni. S3 bucket

Provider suggeriti

Software server

Se vogliamo self-hostare il servizio esistono dei software tramite i quali noi stessi possiamo diventare fornitori del servizio. È consigliabile avere più vps, magari di provider diversi, che formino un cluster, in modo da garantire la disponibilità del dato anche nel caso di un crash singolo. Alcuni di questi software sono: – miniogarageseeweedFS

Backup

Software client backup

rclone

E'un software da riga di comando che è in grado di gestire files che si trova su cloud storage, tra questi quelli di tipo s3. Detto in parole povere, è #rsync con supporto #s3. Quindi possiamo usarlo per spostare i dati da un bucket ad un altro, sincronizzare due bucket, ecc ecc.

Vendor backup

Alcuni fornitori offrono un proprio servizio di backup (e ripristino) dei dati, in questo caso bisogna fidarsi del fornitore scelto.

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

Questo #blog è realizzato con il software #writefreely, la più semplice piattaforma per scrivere contenuti permanenti sul web. Writefreely Logo

Caratteristiche

Si tratta di un software minimalista con cui creare un Blog, o anche un'intera comunità di più blog.

Tra le funzionalità, abbiamo l'autosaving, un editor lineare, senza distrazioni, con il supporto di #markup language. Quella che può sembrare una limitazione, invece è un vantaggio: ci si concentra sul contenuto, e non sull'apparenza.

Ci sono sia il supporto per il feed rss che la federazione con il #fediverso. Rss Fediverso

Federazione

I vostri post saranno federati con il fediverso, per cui, ad esempio, chiunque abbiamo un account su #mastodon potrà seguire il vostro blog. Se non sapete cos'è il #fediverso, potete approfondire qui: https://fediverso.it

Installazione e configurazione

Software leggerissimo, occupa pochissime risorse ed è un solo semplice eseguibile, con l'unico requisito di un database #mysql, che \e dove saranno salvati i contenuti.

Se volete cimentarvi nell'installazione e configurazione, seguita la guida ufficiale, davvero molto semplice, ma esaustiva: https://writefreely.org/start

Gestione Immagini

Dopo averlo provato, l'unica cose di cui sentivo la mancanza era una gestione delle #immagini, ma ho risolto in maniera molto semplice e utile, vi lascio all'articolo che avevo scritto a tal proposito (basterà cliccare sul tag #immagini).

##Personalizzazione E' possibile configurarlo per gestire più blog o uno soltanto (il sito sui cui vi trovato è in modalità mono).

Pubblicazione post

Ciascun blog, può essere configurato i 3 modalità: 1. Pubblico: tutti leggono i vostri articoli. 2. Privato: accessibile solo agli utenti registrati 3. Protetto da password: unica per tutti per poter leggere

Riguardo al punto 1, starà poi a voi decidere se renderlo indicizzabile dai motori di ricerca oppure no, semplicemente configurando il file #robots.txt

Esistono 3 modalità di visualizzazione dei post: 1. Blog: vengono mostrate le data degli articoli che saranno visualizzati dal più recente. 2. Novel: nessuna data degli articoli, ordinamento dal primo post in poi 3. Notebook: nessuna data degli articoli, ordinamento dal post più recente.

Display post

Infine è disponibile un campo per la firma da personalizzare, questo “pezzetto” di testo, o codice, sarà presente in calce a tutti gli articoli.

Css

Le uniche personalizzazioni grafiche realizzabili sono tramite il #css, è possibile trovare in rete dei temi giù pronti da cui partire, tramite i quali personalizzare colori, stili, dimensioni e distanze della pagina, in pieno spirito minimalista.

Conclusioni

Personalmente trovo sia davvero piacevole aprire la schermata di nuovo articolo e trovare un schermo pulito, vuoto, in cui concentrarsi sulla scrittura e quindi sul contenuto, less is more!

Ho scelto questo software perché non avevo bisogno di fare chissà quale cose strabilianti, ma appunto la necessità era quella di scrivere qualcosa utile per gli altri, ma anche per me (scrivere mi rilassa).

Costa aspettate a provarlo? Per chi non si vuol sbattere (o non ha dove farlo) nell'installazione, consiglio questo sito dove potete aprire il vostro blog writefreely: https://noblogo.org

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

Introduzione

Scambiare file tra dispositivi diversi (o persone diverse), si dà per scontato che sia sempre facile, veloce e alla portata di tutti, ma quasi mai è così! Nel 2024.ha senso fare un'articolo sull'argomento? Decisamente sì! Di soluzioni ce ne sono moltissime, ma qui ne vedremo solo 3, che poi sono quelle che uso io, con le quali riesco a coprire tutte le esigenze che ho mai avuto.

Pairdrop

Ispirato all'app AirDrop di Apple, questo software offre un servizio semplice, ma allo stesso geniale! Non serve installare alcuna app sul dispositivo, basta un browser! Funziona con tutti i dispositivi e sistemi operativi. E' possibile associare i dispositivi in modo permanente e creare delle stanze in cui scambiare i file. Lo scambio dei file avviene in maniera sicura, il server viene usato solo per mettere in comunicazione i dispositivi, nessun file verrà depositato, anche temporaneamente, sul server.

Vi lascio un'istanza se volete provarlo: https://pairdrop.devol.it/

Pairdrop

Nextcloud

Funziona in modo asincrono, cioè i due dispositivi non devono essere usati (e disponibili) contemporaneamente. Consente varie opzioni di condivisione, come ad esempio la possibilità di avere una cartella condivisa permanente e aggiornata in tempo reale (gli utenti devono avere account sul sistema (o federati). Nextcloud Logo

Ho parlato su questo blog di #nextcloud con un articolo dedicato, clicca sul nome se vuoi approfondire.

Bitwarden (Vaultwarden)

Il famoso password manager Bitwarden (e la sua controparte open Vaultwarden) oltre che per gestire le nostre password, può essere usato anche per inviare file e testi, e non si tratta di una funzione di ripiego, ma è molto bene implementata! Abbiamo la possibilità di proteggere il file con una password, impostare la scadenza del link e addirittura può la modalità usa e getta (il file si autodistrugge dopo lo scaricamento) ! Se volete un'istanza da usare liberamente vi suggerisco questa: https://vaultwarden.devol.it Bitwarden send

E voi cosa usate?

#sharing #filesharing #pairdrop #airdrop #bitwarden #vaultwarden

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

RetroPie è un software gratuito che è possibile installare su Raspberry Pi, Odroid e sistemi x86 e permette di emulare i videogiochi del passato!

Retropie logo

Si basa su retroarch, che è un frontend per vari emulatori, uno dei suoi punti di forza è la possibilità di avere una configurazione unificata per tutte le piattaforme.

RetroArch/Libretro è un progetto di frontend e backend che si propone di creare un proprio ecosistema software che giri come codice dinamico.

cadillac mortal kombat street fighter

Guida brevissima

Perché una guida brevissima? Il web è pieno di guide per installare retropie, non ha senso scriverne un'altra, quindi, fate una ricerca: installare retropie. In breve: si scarica immagine della scheda SE, con un software come balena etcher (o dd) la si scrive sulla scheda, si copiano i giochi in nostro possesso, e, infine, si inserisce e via!

Come si gioca

E' possibile collegare joypad usb o bluetooth, o usare una tastiera (magari meccanica) per navigare tra i menù e giocare. Date un'occhiata ai joypad della 8bitdo.

Essendo un sistema estremamente portatile, è l'ideale da portare ad una cena tra amici e trascorrere la serata a ricordare i giochi che hanno caratterizzato la nostra adolescenza! Sarà sufficiente trovare un tv dotato di porta HDMI, una presa di alimentazione e il divertimento è assicurato.

Se emulate giochi “pesanti” potrebbe essere necessario montare una ventola e dei buoi dissipatori sul vostro raspberry.

Raspberry e Retropie

Configurazione

Le personalizzazioni alla configurazione e il caricamento di nuovi file può essere effettuato in due modi: 1. Collegando direttamente la scheda sd ad un altro computer 2. Configurare il sistema per collegarsi alla rete (wifi, ethernet), in modo da poter accedere alle cartelle condivise (già configurate di default).

Il secondo metodo è molto utile anche per applicare aggiornamenti o per fare lo scraping delle copertine.

EmulationStation

Si tratta del frontend (menù) che ci accoglie dopo aver acceso il sistema. Da qui si fanno partire i vari giochi (e programmi), è altamente personalizzabile, sia come temi che come immagini.

Retroarch

Trattandosi di un unico frontend per i vari emulatori, è possibile accedere al menu e cambiare le configurazioni (es mappatura tasti) per il singolo gioco o come globali e quindi per tutti i giochi che andremo a provare successivamente

Retroarch

Sistemi emulati

  • 3do
  • Amiga
  • Amstrad CPC
  • Apple II
  • Atari 2600
  • Atari 5200
  • Arari 7800
  • Atari Jaguar
  • Atari Lynx
  • Atari ST, STE, TT, Falcon
  • Coco
  • Colevovision
  • Commodore 64, Vic-20
  • Daphne
  • Dragon 32
  • Dreamcast
  • FinalBurn Neo
  • Famicon Disk System
  • GameCube
  • Game & Watch
  • Game Gear
  • Game Boy
  • Game Boy Color
  • Game Boy Advance
  • Intellivision
  • Macintosh
  • MAME
  • Master System
  • Mega-Cd/Sega Cd
  • Megadrive / Genesis
  • MESS
  • MSX
  • Neo Geo
  • Neo Geo Pocket
  • Neo Geo Pocket Color
  • Nintendo 64
  • Nintendo DS
  • Nintendo Entertainment System
  • Oriuc/Armos
  • PC
  • PC-8800
  • PC-9800
  • PC Engine
  • PC Engine 2
  • Playstation 1
  • Playstation 2
  • Pokemon Mini
  • PSP
  • ResidualVM
  • SAM Coupé
  • Saturn
  • ScummVM
  • Sega 32x
  • Sega SG-1000
  • Sharp X1
  • Sharp X68000
  • Super Nintendo Entertainment System
  • TI-99
  • TRS-80
  • Vectrex
  • Videopac
  • Virtual Boy
  • Wii
  • WonderSwan
  • WonderSwan Color
  • ZX-81
  • ZX Spectrum

Rom e licenze (disclaimer)

Attenzione al fatto che molte delle rom anche ancora il copyright in vigore, per cui è necessario possedere una copia acquistata dei giochi che andrete a caricare sul vostro sistema. Usare copie pirata dei giochi è un reato

Approfondimenti

Se ne volete sapere ancora di più vi lascio qualche sito: – https://retropie.org.uk (sito ufficiale) – https://www.retropie.it (sito italiano non ufficiale) – https://t.me/retropie_it (gruppo telegram in italiano) – https://mastodon.uno/tags/retropie (mastodon)

Per veri nerd

Se ho incuriosito, lo avete provato, vi siete divertiti il passo successivo è quello di costruire un cabinet personalizzato!

Vi lascio a qualche immagine presa in giro sul web, giusto per farvi un'idea. cabinet1 cabinet2 cabinet3 cabinet4

Nes Case

Io ho questo come case per il raspberry che uso con retropie. Il disco ssd si trova in quella che era la cartuccia del videogioco!

nespi4 nespi42

#retropie #retrogaming #raspberrypi #case #gaming

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

Nota Introduttiva: questo articolo sarà solo un'introduzione, seguiranno approfondimenti sui singoli componenti.

Cos'è nextcloud

Software open source che permette di realizzare un servizio Cloud personale per i propri dati. Ambiente collaborativo e può anche essere federato con altre installazioni. È possibile installarlo su un proprio dispositivo o usare quello messo a disposizione da alcune aziende o associazioni. L'architettura è modulare, questo ci permette di attivare solo le funzionalità che ci servono e se ne possono aggiungere di nuove (via via che gli sviluppatori le rilasciano). C'è un plugin per ogni esigenza!

Nextcloud Logo

Caratteristiche

Il suo punto di forza è la condivisione e la sincronizzazione dei file, che può avvenire tramite semplice browser web o utilizzando l'applicazione disponibile per tutti i sistemi operativi. Possiamo considerarlo un'alternativa a Dropbox, Google drive o onedrive. Ci sono anche numerosi servizi aggiuntivi, che coprono diverse esigenze, come ad esenpio: – calendario – contatti – webmail – attività (task) – note (markup language) – chat interna – suite per l'ufficio (via web, basata su libreoffice) – galleria immagini – ebook reader – password manager – gestione bookmark (con possibilità di sync con plugin per il browser) – podcast – libro di ricette – ricerca – forms

Questi servizi possono essere usati via web, o con i vari client, con il vantaggio di avere tutto sincronizzato tra più dispositivi. Nextcloud diventa così il proprio hub personale dove ci sono tutti i propri dati e le proprie attività.

Nextcloud Dashboard

Vantaggi

  • self hosting: possiamo installarlo su un nostro pc o su una #vps in modo che i nostri dati siano sempre sotto il nostro controllo.
  • nel caso si voglia affidarsi al lavoro di altri, possiamo scegliere il provider che vogliamo e cambiarlo in qualsiasi momento (esportando i dati)
  • tra utenti dello stesso server (o federati) è possibile collaborare
  • condivisione di file (e immagini) avendo sempre tutto sotto controllo, vedi paragrafo dedicato sotto.
  • ricerca globale: usando la casella di ricerca, questa verrà effettuata ovunque: file, note, contatti, calendario, ecc. ecc.

Nextcloud Dashboard

Backup

Come abbiamo visto nextcloud è la nostra casa personale di tutti i dati e attività, diventa quindi fondentale prevedere un sistema di backup affidabile, a cui far ricorso in caso di problemi.

Cosa salvare

  1. Database: dipende da quello che avete scelto, ma solitamente si tratta di Mysql (o MariaDB). Le procedure di salvataggio sono quelle consuete (mysqldump), che potete trovare in rete o in questo blog (in futuro).
  2. File: salvataggio della directory nextcloud ospitata dal webserver, che contiene sia il software che i nostri dati
  3. Se non siamo gli unici utilizzatori dell'istanza, è consigliabile impostare l'istanza in modalità manutenzione durante le operazioni di salvataggio, in modo da avere la consistenza dei dati.

Vi consiglio di usare un sistema come #borg, il quale può essere usato in modalità incrementale così vi garantisce di poter recuperare sempre una certa versione dei vostri documenti e ha il vantaggio che, dopo la prima esecuzione, i backup successivi trasferiranno solo le nuove modifiche sul backup, saranno così molto veloci e occuperanno solo lo spazio strettamente necessario!

Condivisione di file

  • cartelle (e file) in sola lettura per utenti anonimi anche protetti da password
  • possibilità di poter ricevere file da altri (upload)
  • galleria foto
  • cartelle collaborative con altri utenti del server (o istanze federate)
  • supporto nativo a #webdav
  • applicazione desktop per sincronizzazione automatica dei file.
  • supporto al versionamento

Calendario e contatti

  • configurando un app come #davx5 vi permette di sincronizzare contatti e calendario del vostro smartphone
  • È possibile sincronizzare anche i client desktop, sfruttando i protocolli standard #caldav e #carddav
  • import e export da e verso altri sistemi

App mobile

  • accesso a tutti i propri file in mobilità
  • auto upload delle foto scattate

Task

  • gestione categorie
  • sotto task
  • date di inizio e scadenza
  • percentuale avanzamento

Note

  • accesso web
  • markup language
  • categorie
  • app mobile

Nota personale

Io sto usando tantissimo le note, per segnarmi di tutto: appunti, comandi, persino le bozze che scrivo per il blog. Trovo che sia la vera killer application, ritrovo sempre tutto e l'impaginazione è semplice e funzionale.

Nextcloud Note Nextcloud PostIt

Suite ufficio

E' possibile editare i documenti office anche via interfaccia web:

  • Software basato sul diffuso libreoffice
  • Editing collaborativo real time (è necessario installare Collabora office)

Utenti di mastodon.uno

Se vi ho incuriosito e volete provare ad usarlo, vi segnalo che gli utenti di mastodon.uno posso richiedere un account da qui: https://cloud.mastodon.uno/apps/forms/s/YSCoCC37D9omTN8iXSKkQqz9 (sul server sono già preinstallati diversi software aggiuntivi)

Nextcloud Photos Nextcloud Cookbook

#nextcloud #collabora #condivisione #file #contatti #selfhosting

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

Aggiornamento 14/02/2024: aggiungo in fondo all'articolo le modifiche necessarie per la parte server.

Questo metodo lo utilizzo ormai da svariati mesi e funziona benissimo!

Premetto subito che non è una semplice soluzione adatta per tutti, poiché richiede un server #wireguard e un'installazione di #pihole. Però se avete un amico che ha già configurato tutto per se, sarà molto semplice farlo usare anche a voi! E' complessa la configurazione server, mentre la parte client è semplicissima: scaricare un'app e scansionare un qr code.

Abbiamo visto la configurazione di entrambi su questo blog (cliccate sui due hashtag per le leggere le guide).

Con questo metodo non solo bloccherete le pubblicità invasive sul browser, ma su tutte le app! Inoltre oltre al blocco pubblicità avrete anche il blocco dei siti malevoli (in base alle liste che avete deciso di aggiungere a pihole).

Il trucco è usare la vpn per fare in modo che lo smartphone navighi nello stessa modalità che avviene da casa, cioè protetto da pihole!

Abbiamo due diverse modalità di uso per la vpn: – usarla solo per la risoluzione dns – usarla per tutto il traffico

L'una non esclude l'altra, cioè possiamo fare due profili diversi e passare da uno all'altro in base alle necessità (ad esempio se ci connettiamo un WiFi pubblico non protetto, conviene usare la seconda opzione). La prima soluzione ha il vantaggio di consumare pochissima banda per il server, solo lo stretto necessario per le risoluzioni dns.

Esempio di configurazione solo dns:

[Interface]
PrivateKey = chiave_priv_client1
Address = 192.168.20.2/24
Dns = ip_vpn_privato_server
[Peer]
PublicKey = chiave_pub_server
PresharedKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AllowedIPs = ip_vpn_privato_server/32
Endpoint = hostname_pubblico_server:porta

Esempio di configurazione traffico completo:

[Interface]
PrivateKey = chiave_priv_client1
Address = 192.168.20.2/24
Dns = ip_vpn_privato_server
[Peer]
PublicKey = chiave_pub_server
PresharedKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AllowedIPs  = 0.0.0.0/0, ::/0
Endpoint = hostname_pubblico_server:porta

Vi consiglio di usare questo client per wireguard wg-tunnel, perché ha una funzionalità fondamentale per il nostro scopo: è in grado di attivare automaticamente la vpn quando ci disconnettiamo dalla nostra wifi (è possibile scegliere più reti fidate).

Wg tunnel Logo

Wg tunnel Screen 1 Wg tunnel Screen 2

Non ho provato questa soluzione su iPhone, ma presumo che possa funzionare anche lì.

Infine vi consiglio anche un'ottimo client #android per gestire pihole: Pi-hole Droid.

Aggiornamento 14/12/2024

Modifiche configurazione server

Affinchè il server sia in grado di ruotare i pacchetti ricevuti dalla VPN è necessaria qualche configurazione in più, dei comandi “standard” #iptables per gli addetti ai lavori. (su iptables trovate ampia documentazione on line) Ma veniamo al dunque

Esempio di righe in aggiunta alla parte server:

...
PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -A FORWARD -o %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# DNS - sostituire 192.168.1.x con ip del proprio pihole
PostUp = iptables -I FORWARD -i %i -p udp -m udp -d 192.168.1.x/32 --dport 53 -j ACCEPT
PostUp = iptables -I FORWARD -i %i -p tcp -m tcp -d 192.168.1.x/32 --dport 53 -j ACCEPT

# Blocco rete locale per tutti (nell'esempio è con subnet 192.168.1.0)
PostUp = iptables -I FORWARD -i %i -d 192.168.1.0/24 -j REJECT

# Apertura rete locale ad un singolo ip
PostUp = iptables -I FORWARD -i %i -s 172.16.2.2/32 -d 192.168.1.0/24 -j ACCEPT

PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -D FORWARD -o %i -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
...

#pubblicità #blocco #pi-hole #vpn #wireguard

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA

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

In questo brevvisimo articolo vedremo uno #script che preleva il brano attualmente in riproduzione su moOde e lo pubblica (come toot) su #mastodon. (se non sapete cos'è #moodeaudio trovate articolo dedicato cliccando sul tag)

Io lancio lo script di seguito manualmente per non pubblicare troppi toot (ad ogni cambio brano), ma potete integrarlo facilmente in vari automatismi (ad esempio usando #homeassistant).

Dato che lei formazioni vengono recuperate via rete, potete eseguirlo da un qualsiasi pc della vostra rete casalinga.

Prerequisiti

  • Curl: di solito è già installato, qualora non lo fosse potete farlo semplicemente usando l'utility di gestione del software della vostra distribuzione (apt, dnf, pacman)
  • Toot: client da riga di comando per mastodon (trovate tutti i dettagli e le istruzioni per installarlo sul sito qui indicato, anche se come sopra probabilmente sarà già incluso nella distribuzione che usate)
  • Jq: utility, da riga di comando, in grado di processare (e visualizzare) file json

Script

Di seguito lo script che ho realizzato in linguaggio bash:

#!/bin/bash
testo="Sto ascoltando: "
testo+=$(curl -s "http://moode.local/command/?cmd=get_currentsong" | jq -r '.artist + " - " + .title')
testo+=" #musica #moodeaudio #hifi #raspberrypi"
toot post "$testo"

Seguimi su mastodon: @magostinelli@mastodon.uno

Articolo pubblicato con licenza CC BY-NC-SA