Archivi categoria: Open Source

Inerente a software a codice aperto (open source)

Configurazione dei computer per tutticonnessi

Dall’inizio della diffusione del Corona virus e della conseguente maggiore adozione della didattica digitale integrata, ho partecipato all’associazione tutticonnessi che raccoglie, aggiusta, aggiorna e distribuisce strumenti per seguire le lezioni a distanza.

Provo qui a descrivere il procedimento completo per l’aggiornamento di computer portatili che arrivano con vecchie versioni di Windows. Il sistema operativo Windows viene mantenuto solo se ha la licenza in regola, altrimenti in teoria si passerebbe a quello Linux, ma nella realtà non sono stati trovati computer senza licenza in regola. A proposito della licenza ricordo che questa è a volte legata all’hardware (e viene chiamata OEM), mentre altre è stata comprata a parte. In entrambi i casi la licenza viene ceduta con l’hardware dall’azienda che fa la donazione a tutticonnessi.

La prima cosa da fare è capire di che computer si tratta, quindi vanno controllati marca, modello, CPU, memoria RAM, chiave di attivazione di Windows, versione del BIOS e versione di Windows. Per alcune di queste informazione riporto alcuni comandi che vanno eseguito dal prompt di Windows eseguito come amministratore:

  • Numero di serie: wmic bios get SerialNumber
  • Versione del BIOS: wmic bios get SMBIOSBIOSVersion
  • Chiave di Windows: wmic path softwarelicensingservice get OA3xOriginalProductKey

La chiave di Windows a volte si trova stampata su un’etichetta presente sul retro del portatile o nel vano della batteria. Più di recente si è diffusa quella digitale, riconoscibile da un adesivo viola quadrato con l’emblema di Windows, anchìesso spesso sul retro del portatile.

Per l’aggiornamento vanno prima tolti tutti i programmi che non ci interessano. Spesso i computer che riceviamo sono di aziende che li riformattano prima di consegnarli, ma capita che questa riformattazione sia fatta con qualche immagine di Windows già preconfezionata dell’azienda stessa. A volte quindi ci sono applicazioni e configurazioni particolari. L’elenco del software già installato è quello presente nel pannello di controllo.

Installazione di browser. Vengono installati sia Google Chrome che Mozilla Firefox. Con entrambi ci si collega a duckduckgo e si installa l’estensione che viene subito proposta, cosicché le ricerche verranno fatte su un motore di ricerca meno invasivo di quello predefinito. Il browser predefinito viene impostato come Firefox. Con Chrome, dopo aver installato dukduckgo, va fatta una prima ricerca durante la quale il browser propone di ripristinare il motore di ricerca Google, ma ovviamente si deve dire di no.

Pubblicità e altri accessi ad Internet. Windows presenta a schermo vari annunci, inoltre fa ricerche su Internet, spesso non richieste, come quando si apre il menu «Start», cioè quello principale di Windows, e si comincia a scrivere l’inizio del comando, vengono mostrati i risultati della ricerca tra i menu e di una ricerca ulteriore su Internet, magari per proporre un programma non ancora installato. Un altra occasione è quella della schermata di blocco, che ogni tanto contiene informazioni aggiuntive e annunci.

  • Per eliminare la ricerca del menu «Start» bisogna agire su 3 policy di gruppo. Partire dall’editor delle policy di gruppo (gpedit.msc) e selezionare: Criteri Computer Locale > Configurazione Computer > Modelli amministrativi > Componenti di Windows > Certa. Qui abilitare i tre criteri «Non consentire le ricerche Web», «Non cercare nel Web o visualizzare risultati Web per la ricerca» e «Non cercare nel Web o visualizzare risultati Web per la ricerca con connessioni a consumo».
  • Per le pubblicità nella schermata di blocco, usare Impostazioni> Personalizzazione > Schermata di blocco e impostare lo sfondo su «Immagine». Inoltre disattivare «Visualizza informazioni, suggerimenti e altro da Windows e Cortana nella schermata di blocco».
  • Per togliere quelle dal menu «Start» andare in Impostazioni > Personalizzazione > Start e cambiare in «Mostra occasionalmente suggerimenti in Start» e impostarlo su «Disattivato».
  • Per toglierle dalla barra delle applicazioni, andare su Impostazioni > Sistema > Notifiche e azioni e disattivare l’opzione «Ottieni suggerimenti durante l’uso di Windows».
  • Per ultimo, gli annunci ai nuovi utenti: aprire Impostazioni > Sistema > Notifiche e disattivare «Mostra l’esperienza di benvenuto di Windows quando eseguo l’accesso per evidenziare le novità»; oppure «Mostra configurazione e personalizzazione di Windows dopo gli aggiornamenti e occasionalmente quando eseguo l’accesso per segnalare le novità e i suggerimenti».

Riduzione del menu Start. Il menu di Windows 10 contiene, oltre ai programmi che vengono mostrai a sinistra, delle aree chiamate «Produttività», «Esplora» e altre, che vengono mostrate sulla destra. Per toglierle, posizionarsi sulla doppia linea sulla destra del nome dell’area, una alla volta, e col menu contestuale scegliere «Rimuovi gruppo da Start».

Pulizia disco. Una volta completati gli aggiornamenti all’ultima versione di Windows 10, attualmente è la 21H2, si deve avviare il programma di pulizia del disco, come amministratore. Dopo aver scelto il disco, normalmente è C:, da pulire, si dovranno attendere alcuni minuti mentre viene fatto l’elenco delle cose che si possono cancellare e la valutazione dello spazio che si libererebbe. Vanno selezionati, in questo elenco, anche le voci più corpose: «File di ottimizzazione recapito», «Installazioni di Windows precedenti». Questa cancellazione libera dai 20 ai 35Gb, che non sono pochi!

Installazione programmi. Oltre ai due browser Firefox e Chrome, vanno installati l’ultima versione di LibreOffice (con la guida in italiano), Microsoft Teams, SumatraPDF (o Adobe Reader).

Avvio automatico. All’acceso a Windows vengono avviati automaticamente alcuni programmi. Non sono tutti necessari, soprattutto se il computer è vecchiotto e non ha tante risorse. Per disattivare quelli in eccesso, avviare «Gestione attività» dal menu contestuale sulla barra di Windows, selezionare «Più dettagli» nella parte bassa della finestra e poi «Avvio» nella parte alta. Disabilitare: Cortana, Microsoft OneDrive.

Deframmentazione. Dopo aver liberato decine di gigabyte è utile ottimizzare il file system. Avviare l’utility di deframmentazione disco, selezionare il disco di sistema C: e premere il bottone «Analizza», prima, e dopo «Ottimizza». Armarsi di tanta pazienza e aspettare il termine dell’attività.

Analisi di problemi su squid

Quando c’è un problema con squid, io non so mai che pesci pigliare. Per evitare di fare sempre le stesse ricerche e trovare le stesse risposte, nonché per delineare una modalità di indagine, aggiornerò questo articolo ad ogni nuova occasione.

squid impiega parecchio tempo per avviarsi, ma a volte, se si fanno solo modifiche alla configurazione, si può evitare di riavviarlo mandando il segnale per la rilettura del file di configurazione.

# systemctl restart squid # riavvio completo
# squid -k reconfigure # rilegge la configurazione

Access log

Il principale file di log è quello che mostra tutte le richieste che ha ricevuto e la risposta che ha dato. Il file è /var/log/squid/access.log e contiene righe fatte così:

1611652062.938 1 192.168.215.45 TCP_DENIED/403 4044 CONNECT cdn-gl.imrworldwide.com:443 - HIER_NONE/- text/html
1611652065.142 63192 192.168.215.45 TCP_TUNNEL/200 1671 CONNECT outlook.office365.com:443 - HIER_DIRECT/40.101.137.66 -

Il primo numero è una marca temporale non formattata. Per sapere veramente a che ora si riferisca si può usare il comando date così

# date --date @1611652073.326
mar 26 gen 2021, 10.07.53, CET

il secondo numero è il tempo, in millisecondi, impiegato da squid per rispondere al client dopo aver svolto l’operazione

il terzo campo è l’IP del client

il quarto campo è l’esito. Gli esiti maggiormente diffusi sono:

  • TCP_DENIED/403, indica che la richiesta è stata rifiutata con codice HTTP 403
  • TCP_TUNNEL/200, indica che la richiesta di apertura di un tunnel è stata accetta con codice HTTP 200
  • TAG_NONE/503, indica un errore interno di quid, ad esempio che non riesce a risolvere il nome con il DNS

il quinto campo è il metodo HTTP richiesto dal client: GET, POST, HEAD, CONNECT

il sesto campo è la coppia nome host e porta da contattare.

Cache log

Questo secondo file di log è /var/log/squid/cache.log e contiene informazioni aggiuntive. Ci sono le informazioni di debug che vengono scritte in base alla direttiva debug_options. Normalmente contiene solo le segnalazioni di problemi. Per avere un po’ più di informazioni, aggiungere:

debug_options ALL,2

al file di configurazione /etc/squid/squid.conf e farlo rileggere a squid. Ci si possono trovare informazioni come questa:

2021/01/26 09:43:04.511 kid1| 85,2| client_side_request.cc(744) clientAccessCheckDone: The request CONNECT mail.google.com:443 is ALLOWED; last ACL checked: localnet
 2021/01/26 09:43:04.511 kid1| 85,2| client_side_request.cc(720) clientAccessCheck2: No adapted_http_access configuration. default: ALLOW
 2021/01/26 09:43:04.511 kid1| 85,2| client_side_request.cc(744) clientAccessCheckDone: The request CONNECT mail.google.com:443 is ALLOWED; last ACL checked: localnet
 2021/01/26 09:43:04.511 kid1| 44,2| peer_select.cc(258) peerSelectDnsPaths: Find IP destination for: mail.google.com:443' via mail.google.com
 2021/01/26 09:43:04.511 kid1| 44,2| peer_select.cc(280) peerSelectDnsPaths: Failed to select source for 'mail.google.com:443'
 2021/01/26 09:43:04.511 kid1| 44,2| peer_select.cc(281) peerSelectDnsPaths:   always_direct = DENIED
 2021/01/26 09:43:04.511 kid1| 44,2| peer_select.cc(282) peerSelectDnsPaths:    never_direct = DENIED
 2021/01/26 09:43:04.511 kid1| 44,2| peer_select.cc(295) peerSelectDnsPaths:        timedout = 0
 2021/01/26 09:43:04.511 kid1| 4,2| errorpage.cc(1261) BuildContent: No existing error page language negotiated for ERR_DNS_FAIL. Using default error file.

che indicano una richiesta di apertura di un tunnel verso mail.google.com che viene inizialmente accettata tramite le ACL, ma poi rifiutata per un problema del DNS usato da squid.

Aggiornamento di Jitsi: sala d’attesa e co-moderatori

Quest’anno ho messo un server Jitsi a disposizione di chiunque lo voglia usare. Si tratta di un sistema per le video chiamate che ho attivato nell’ambito del progetto iorestoacasa.work che, nell’ottica di affrontare meglio la pandemia di Covid-19 del 2020, offre servizi di video chiamata gratuiti a tutti. Lo potete usare qui, con un semplice browser o con l’app Jitsi Meet che potete scaricare dalla pagina principale del sito.

A inizio dicembre ho aggiornato la macchina, passando dalla versione stabile (rilasciata il 14 ottobre 2020, non molto tempo prima) a quella in via di sviluppo. Come il nome fa già capire, questa versione ha funzionalità più nuove, ma è stata sottoposta a controlli minori; ma pare che funzioni a dovere e ha, tra le altre, due nuove funzionalità importanti:

  • la parte del moderatore non è solo di chi apre la stanza, ma può essere assegnata anche ad altri. Un moderatore può selezionare il riquadro del video di un partecipante e aprire il menu contestuale. Lì si trova l’opzione per dare il diritto di moderatore al partecipante;
  • c’è la sala d’attesa. Per proteggere l’accesso alle stanze era già possibile impostare una password (ed è tuttora possibile), ma se un partecipante spiritoso la comunica ad altri meno divertenti, questi si potrebbero collegare alla stanza per disturbare. La sala d’attesa è un posto nel quale finiscono tutti i nuovi arrivati, che vanno ammessi da uno dei moderatori, manualmente. In questo modo è possibile controllare chi si collega (c’è un nome e, eventualmente anche l’email).

Video chiamate libere

In quest’epoca di confinamento a casa alcune persone legate ad un istituto scolastico di Fabriano hanno lanciato l’iniziativa iorestoacasa.work. Si tratta di una rete di server che ospitano due diversi applicativi per le video chiamate. Tutti i server offrono un punto d’accesso centralizzato al quale collegarsi per avviare una video chiamata, la quale viene poi «trasferita» ad uno dei server disponibili. L’iniziativa ha lo scopo di aiutare le scuole a fare lezione senza affollare i server principali. Questo è reso possibile, da una parte, da vari enti, singoli privati e aziende che hanno collegato i loro server a iorestoacasa.work e offrono gratuitamente il servizio sostenendone i costi di hardware, connettivià e gestione; e dall’altra parte dall’esistenza di due prodotti open source per le video conferenze.

I due diversi applicativi sono Jitsi Meet e Multiparty Meeting. Il primo è più vecchio e offre maggiori funzionalità, come ad esempio la possibilità di moderare la chiamata, il secondo è più nuovo. Dal punto di vista tecnico entrambi utilizzano WebRTC per la trasmissione dati e richiedono quindi abbastanza potenza di calcolo sia abbastanza banda. Difficile seguire una video chiamata se si ha un computer più vecchio del 2010-2012 o se si una una ADSL lenta. L’utilizzo delle video chiamate senza connessione ad Internet via cavo è una esperienza poco gradevole. Fatelo da casa, con la connessione via cavo, magari con il Wi-Fi del computer o del tablet, ma collegati al router con l’ADSL o la fibra. Potendo scegliere, non fatelo con la connessione 3g o anche 4g del telefono.

La tecnologia WebRTC non è nuovissima, ma comunque non è implementata da tutti i browser allo stesso modo e quindi ci sono differenze di prestazioni e di usabilità. La migliore implementazione è al momento quella di Google Chrome, seguita da Safari (ma solo su Mac OS Catalina). Firefox è attualmente escluso perché ha parecchi bug che non solo ne sconsigliano l’utilizzo, ma che addirittura peggiorano il funzionamento degli altri partecipanti alla video chiamata, qualsiasi sia il browser che essi utilizzano.

Per l’utilizzo da Android e iOS, se si usa Jitsi, è necessario scaricare l’app Jitsi Meet. Altrimenti è sufficiente il browser.

Utilizzo

L’utilizzo è aperto a tutti: non è necessario registrarsi, non si è tracciati, non si è su server di proprietà di grandi multinazionali straniere. Sul sito iorestoacasa.work c’è anche la clausola di utilizzo che descrive le implicazioni con il GDPR.

A differenza di altri prodotti, non è possibile prenotare una stanza per un certo orario, o stabilire chi debba essere il moderatore.

Chi inizia stabilisce il nome della stanza, possibilmente in modo che sia univoco, ad esempio «kh34jlkzf» oppure «TerzaE_ITIS_Avogadro_20200521» e immette questo nome nell’unica casella di testo della pagina iorestoacasa.work. Poi sceglie se usare Jitsi Meet o Multiparty Meeting, e entra nella stanza. Il sito sceglie a quale server assegnare la video chiamata e vi dirotta su quella macchina. A quel punto aggiungete una password alla stanza, copiate negli appunti l’URL mostrato in cima al browser e mandatelo a tutti gli invitati, con annessa la password.

Durante la chiamata sarà possibile vedersi e parlare, condividere lo schermo di uno qualsiasi dei partecipanti (ma di norma è l’insegnante/moderatore) per mostrare video o documenti, scriversi. In alcuni casi (ma non tutti i server di iorestoacasa.work lo permettono) è presente una lavagna condivisa, sulla quale scrivere.

La stanza creata verrà chiusa quando tutti ne usciranno, ma solo quello che l’ha aperta potrà esserne il moderatore. Moderare significa avere il controllo della stanza, ad esempio si può accendere o spegnere il microfono agli invitati, oppure cacciarli dalla stanza (ma su Jitsi Meet potrebbero riusare l’URL e ricollegarsi, mentre su Multiparty Meeting si può bloccare l’accesso una volta che tutti sono dentro).

Alla fine della chiamata tutto viene perso. Se avete usato la chat non potrete recuperarne il contenuto. Potrebbe essere attiva la possibilità di registrare la video chiamata, ma si tratta di una opzione dell’applicativo Jitsi Meet che non ho ancora visto su nessuno dei server di questa federazione.

Lo stesso URL può essere usato anche per video chiamate successive, ma una volta che tutti escono dalla stanza, si perde traccia di chi ne è il moderatore, quindi al riutilizzo verrà assegnato il diritto di moderare al primo collegato. Per questo motivo è sempre bene, da parte di un insegnante, non usare lo stesso nome, ma uno nuovo ogni volta, comunicandolo agli studenti via email solo qualche minuto prima di iniziare la lezione.

Connessione fai da te in fibra ottica

I provider, da un po’ di tempo, offrono connessioni in fibra ottica. In questa pagina cerco di descrivere brevemente come funziona e come configurare il router (o un semplice PC).

La connessione in fibra è costituita da un fascio luminoso che viene trasmesso dentro un cavo. Alla centrale del provider c’è un apparato «server» chiamato OLT che comunica con parecchi apparati «client» chiamati ONT. Il fascio di luce parte dall’OLT e attraversa una serie di splitter per arrivare a tutti gli ONT ad esso collegati. Si tratta di una specie di «broadcasting» nel quale l’OLT non può comunicare con un solo client, ma manda tutto a tutti. Nella direzione contraria, i vari ONT si mettono d’accordo e usano il fascio di luce in «timesharing» vale a dire uno alla volta, secondo una divisione temporale statica. In pratica, se l’OLT è connesso a 100 ONT, allora ogni ONT ha 1/100 della banda.

La velocità di upload è quindi statica: 1/100 della banda riservato ad ogni ONT permette di avere una velocità costante. Invece la velocità in download è variabile: se ad esempio, due persone collegate a due diversi ONT richiedono due pagine web in contemporanea, poiché l’OLT trasmette tutto a tutti, le pagine verranno trasmesse dall’OLT una alla volta: la prima pagina avrà come destinatario l’ONT della prima persona, ma il fascio di luce arriverà anche alla seconda, che dovrà ignorarlo, mentre la seconda pagina avrà come destinatario il secondo ONT ma andrà anche al primo, che dovrà ignorarlo. In questo senso, se a scaricare dati da Internet sono in pochi, allora la velocità sarà maggiore, mentre se sono in tanti, la veclocità sarà minore.

Oltre al traffico Internet, nelle connessioni in fibra ci sono il traffico televisivo e quello voce della fonia. Il primo e il terzo sono bidirezionali, il secondo funziona solo nella direzione dall’OLT all’ONT.

In casa, quando viene tirato il cavo della fibra, vengono messi una borchia e poi l’ONT. Il primo è una scatoletta non alimentata dalla corrente, il secondo richiede invece l’alimentazione e ha anche una porta RJ45 per la connessione Ethernet.

Questi terminali ONT sono in genere dei piccoli apparati con Linux o altri semplice sistemi embedded. Spesso hanno un indirizzo IP fisso sulla porta RJ45 e rispondono al telnet oppure via HTTP. A volte, ci si può collegare a rilevare i dati sulla qualità del segnale ottico.

All’ONT, dicono i vari provider, va collegato un router, di quelli da comprare in negozio, specifico per le connessioni in fibra. Ma vediamo a cosa serve esattamente il router.

Il router va collegato all’ONT con un cavo ethernet e ha di norma anche una serie di porte RJ45 per potervi collegare i computer, oppure le antenne per la connessione Wi-Fi. Se + un computer per la fibra allora ha anche una o due porte per i telefoni PSTN, cioè quelli normali, non quelli VoIP. Non ci sono attacchi speciali per la televisione.

Il router va configurato in modo che si colleghi al provider attraverso l’ONT. Di norma la connessione avviene con il protocollo PPPoE, cioè la classica connessione PPP che anziché usare un segnale seriale (tipico dei tempi del modem PSTN o anche delle linee ADSL), utilizza una connessione a pacchetti ethernet. La connessione richiedere quindi di inserire delle credebziali (login e password) e di norma anche un codice VLAN. Il codice VLAN si usa per fare passare via ethernet varie informazioni, nel nostro caso voce, tv e Internet, semplificandone la separazione. Il router deve accedere ad Internet, quindi deve usare la VLAN di Internet, altrimenti l’ONT lo ignorerà. TIM usa la VLAN 835, altri provider usano altre VLAN per Internet.

Le credenziali permettono al provider di riconoscere chi si collega e applicare le varie configurazioni. Ad esempio, TIM mette sulla sua pagina web le informazioni per la configurazione standard, che offre la connessione con IP dinamico, ma si possono richiedere le credenziali corrette, ad esempio, per avere l’IP statico legato al proprio contratto.

Il router, se ha la porta RJ41 per il telefono, dovrà essere configurato per il VoIP. I parametri sono forniti dal provider e, sostanzialmente, permettono al router di collegarsi, tramite una diversa VLAN, al provider e ottenere la linea telefonica VoIP. Il VoIP, su linea in fibra, ha la priorità sul traffico Internet e quindi funziona bene. Personalmente ho collegato un FAX PSTN alla porta RJ41 del router e ha funzionato bene anche con trasmissioni alla massima velocità.

Il router, per permette alla televisione di ricevere le trasmissioni, fa da proxy IGMP. Quando si accende la TV, collegata alla rete LAN del router, questa cerca un proxy IGMP e si registra tra quelli interessati a ricevere le trasmissioni. Le tramissioni sono inviate dall’OLT a tutti gli ONT secondo la modalità «multicast», il router le riceve e le inotra a quei dispositivi che ne hanno fatto richiesta.

Se si prende un computer qualsiasi e vi si installa GNU/Linux, è facile poi configurarlo come router. Si dovrebbe avere un computer con due schede di rete moderne, che vadano alla velocità della connessione in fibra, quindi in genere gigabit. Ad un interfaccia di rete si attacca il cavo che lo collega all’ONT, all’altra interfaccia si collega lo switch.

Sul computer vanno installati i pacchetti per la connessione pppoe e per il proxy igmp. La parte delle VLAN si configura con il pacchetto iproute2, che normalmente è già installato.

La configurazione può essere fatta a mano, oppure si possono utilizzare progetti come il debian-v9-router che si trova qui.