Archivi categoria: Debian

Debian è il sistema operativo universale: una tre le prime distribuzioni di Linux, che continua ad essere ai massimi livelli e che non ha una azienda privata alle spalle.

Linux Day 2022 a Torino

Il 22 ottobre 2022 sono stato al Linux Day di Torino, dove ho tenuto un intervento su come vengono memorizzati i dati (file, directory, device, raid, LVM). Non ho avuto modo di seguire molti altri interventi perché è stata un’occasione per rivedere di persona alcune persone che bene o male gravitano attorno al mondo Linux e all’open source in genere.

Lascio qui la presentazione in formato PDF; qui la presentazione HTML.

Opzioni di barman per il ripristino di un database PostgreSQL

La documentazione di barman non è sempre semplice da consultare, quindi aggioungo qui alcune note relative al comando di ripristino.

Creazione del file system per il ripristino, su macchina nomehost, aggiornato con tutti i WAL: barman recover --remote-ssh-command 'ssh postgres@nomehost' nome-master backup-id /path/destinazione/su/nomehost

Creazione del file system per il ripristino, su macchina nomehost, che verrà aggiornato con tutti i WAL scaricati all’avvio di postgres. Il comando per scaricare i WAL dal server barman è nel file recovery.conf: barman recover --remote-ssh-command 'ssh postgres@nomehost' --get-wal nome-master backup-id /path/destinazione/su/nomehost

Creazione del file system per il ripristino, su macchina nomehost, che verrà configurato come standby (che rimarrà sempre in recovery, attendendo sempre nuovi WAL). Il comando per la configurazione è nel file recovery.conf: barman recover --remote-ssh-command 'ssh postgres@nomehost' --standby-mode nome-master backup-id /path/destinazione/su/nomehost

Creazione del file system per il ripristino, su macchina nomehost, che verrà configurato come standby e messo in attesa per potervvi accedere. Il comando per la configurazione è nel file configurato come standby. Il comando per la configurazione è nel file recovery.conf: barman recover --remote-ssh-command 'ssh postgres@nomehost' --standby-mode --target-action pause nome-master backup-id /path/destinazione/su/nomehost

Creazione del file system per il ripristino, su macchina nomehost, aggiornato con tutti i WAL fino a data e orario specifico. La directory barman_wal conterrà i WAL necessari, il file recovery.conf i comandi necessari per il PITR: barman recover --remote-ssh-command 'ssh postgres@nomehost' --target-time '2022-06-15 16:58' nome-master backup-id /path/destinazione/su/nomehost

Per fare poi ripartire il database in modalità standby, nel caso che la versione di postgresql sia 12 o superiore, il file recovery.conf non viene usato e, anzi, blocca l’avvio di postgresql. I comandi vanni presi da quel file e integrati nel file postgresql.conf principale (dettagli qui).

Altra cosa importante: per fare ripartire postgresql (12 o superiore) in modalità recovery deve esistere il file chiamato standby.signal. In caso negativo, il cluster non partirà in maniera recovery, ma si aprirà normalmente alle connessioni in lettura e scrittura.

Appunti su come creare una CA e un certificato server con il KeyTool di Java

Queste sono note veloci da sistemare, ma possono già aiutare eventualmente altri, quindi le pubblico qui. Per semplicità la password dei keystore e delle chiavi è sempre la stessa, ma in alcuni casi deve essere veramente la stessa, ad esempio quando si deve usare il keystore generato in un connettore di Apache Tomcat.

Le cose importanti da notare sono: il certificato della CA deve avere il BasicConstraint che indica che è una CA. Non si tratta di un vincolo tecnico, ma i browser potrebbero poi non accettarlo come affidabile. Il certificato del server deve avere il KeyUsage corretto, altrimenti anche lui potrebbe essere scartato. Il comando per la generazione del certificato iniziale del server avrà quindi varie -ext .... per aggiungere le estensioni, che dovranno essere ricopiate identiche nel punto dell’emissione del certificato per il server da parte della CA.

  • Creazione di chiave privata e certificato radice per l’autorità, valido 7350 giorni (circa 20 anni). Questo viene messo nel keystore predefinito di java, nella home dell’utente, in un file chiamato .keystore e protetto da una password relativamente semplice. Il comando è: keytool -alias root -dname "CN=RootCA, OU=La mia unità organizzativa, O=La mia società, L=La mia località, ST=La mia provincia, C=IT" -genkeypair -storetype PKCS12 -storepass fs35623_WE -keypass fs35623_WE -keyalg RSA -keysize 4096 -validity 7350 -ext BasicConstraints=ca:true,PathLen:2 -ext KeyUsage=digitalSignature,keyEncipherment,keyCertSign -ext ExtendedKeyUsage=serverAuth,clientAuth
  • Creazione di chiave privata e certificato radice per il server, valido 7350 giorni (circa 20 anni). Questo viene messo nel keystore chiamato server.pfx e protetto da una password relativamente semplice. Il comando è: keytool -alias server -dname "cn=server.example.com, OU=La mia unità organizzativa, O=La mia società, L=La mia località, ST=La mia provincia, C=IT" -genkeypair -storetype PKCS12 -storepass fs35623_WE -keystore server.pfx -keypass fs35623_WE -keyalg RSA -keysize 4096 -validity 7300 -ext SAN=DNS:server.example.com -ext ExtendedKeyUsage=serverAuth -ext KeyUsage=digitalSignature,keyEncipherment
  • Copia temporanea del certificato della CA dal keystore predefinito di java a quello nel quale c’è il certificato del server. Il comando è: keytool -export -alias root -storetype PKCS12 -storepass fs35623_WE | keytool -import -alias root -storetype PKCS12 -keystore server.pfx -storepass fs35623_WE -noprompt -trustcacerts
  • Generazione della richiesta di firma del serve del certificato, che viene poi passata al comando per l’emissione del certificato da parte della CA, che viene poi passato al keystore origiario per essere memorizzato. Il comando è: keytool -alias server -certreq -storetype PKCS12 -storepass fs35623_WE -keyalg RSA -keystore server.pfx | keytool -alias root -gencert -storetype PKCS12 -storepass fs35623_WE -keyalg RSA -ext SAN=DNS:server.example.com -ext ExtendedKeyUsage=serverAuth -ext KeyUsage=digitalSignature,keyEncipherment -validity 7300 | keytool -alias server -importcert -storetype PKCS12 -storepass fs35623_WE -keyalg RSA -keystore server.pfx -noprompt -trustcacerts
  • Rimozione del certificato della CA dal keystore del server. Il comando è: keytool -delete -alias root -storetype PKCS12 -keystore server.pfx -storepass fs35623_WE
  • Esportazione del certificato della CA in un file, da importare nei sistemi che dovranno considerarlo affidabile. Il comando è: keytool -export -alias root -storetype PKCS12 -storepass fs35623_WE -rfc > root.pem

Cable Matters — Adattatore da USB a Ethernet 2,5G

Ho un computer ASUS ZenBook 14″ che non ha una scheda di rete cablata. Ha ovviamente il Wi-Fi (802.11ac), ma pur connesso ad un buon access point, non raggiunge le prestazioni che uno si aspetterebbe. Il portatile è fornito di un adattatore da USB a Ethernet da 1000mbit/s, che funziona bene ma volevo cambiarlo in previsione del passaggio alla connessione Internet da 2,5Gbit/s. L’ASUS ha varie porte USB, delle quali le due sulla sinistra sono 3.2 Gen 2, che dovrebbero raggiungere la stratosferica velocità di 10gbit/s. Ho quindi acquistato un adattatore da USB a Ethernet, e già che c’ero, ho preso quello che supporta i 2,5gbit/s che si stanno diffondendo nelle case grazie alla connessione in fibra FTTH. Quello che ho preso è della Cable Matters, con attacco Type-A e Type-C, entrambi presenti sul portatile. Ho collegato l’adattatore e l’ho provato sia con Debian GNU/Linux 11 che con Microsoft Windows 11, arrivando alle stesse prestazioni.

Continua a leggere

Linux e chip audio ALC294 su Asus ZenBook 14 UM433DA / UX434DA

Un po’ più di anno fa ho acquistato uno ZenBook 14 UX434DA per un ragazzino che doveva usarlo per la scuola. Gil ho ho montato, oltre al Windows preinstallato, Linux Debian sul quale ho avuto molte difficoltà con l’audio: a volte funzionava, altre volte era completamente muto, altre volte si sentivano rumoracci. Chiaramente con questi problemi non era possibile partecipare alle lezioni a distanza con Google Meet.

Ho fatto parecchi aggiornamenti, passando dalla Debian 10 alla 11, ho spulciato decine (centinaia?) di forum, ho studiato il chipset e il driver linux. Ci sono molte indicazioni su: lo stato del chip viene lasciato inadeguato da Windows quando questo viene sospeso e poi si passa a Linux, il volume ha solo le possibilità spento e massimo, il modulo del kernel richiede un parametro per far riconoscere esattamente quale chipset c’è su questo portatile, eccetera. Tutto vano.

Questo fine settimana ho ripreso in mano il portatile deciso ad averla vinta su lui.

Continua a leggere