Group: LibrePlanet Italia/miniguida-freenode

From LibrePlanet
Jump to: navigation, search

Le informazioni contenute in questa miniguida sono aggiornate al: 27/10/2020.

Il testo di questa pagina è stato modificato l'ultima volta il: 27/10/2020.

Introduzione

Il network freenode ospita numerosi canali IRC (Internet Relay Chat) dedicati al software libero: #gnu, #fsf, #libreplanet e tanti altri.

Gli utenti possono autenticarsi su freenode utilizzando un identificativo (nickname) anonimo oppure utilizzando un account NickServ registrato e verificato.[1]

I client IRC possono collegarsi a freenode utilizzando le comuni modalità:

  • plain–text (in chiaro, sulle porte 6665-6667 e 8000-8002, con o senza un account registrato)[2]
  • TLS–encrypted (canale crittografato, sulle porte 6697, 7000 e 7070, con o senza un account registrato)[3]

Utilizzando un account registrato, è inoltre possibile:

  • autenticarsi su freenode via SASL.[4]
    L'autenticazione SASL consente agli account registrati di autenticarsi ai servizi (NickServ) durante il processo di collegamento, eliminando la necessità di identificarsi successivamente (mediante il comando IRC: /msg NickServ identify <password>)
  • collegarsi a freenode via Tor con autenticazione SASL EXTERNAL via TLS basata su certificato.[5]
    Questa modalità (introdotta nel maggio 2019) si avvale del protocollo Next Gen Onion[6] e assicura un grado di sicurezza e privacy molto maggiore

Di seguito, sono sommariamente illustrate le procedure di configurazione del client IRC HexChat per le diverse modalità di collegamento a freenode.

HexChat è un fork di XChat (da molti anni non più attivamente sviluppato) ed è rilasciato con licenza GPL2.

Prerequisiti

  • Una distribuzione GNU/Linux :-)
  • Il pacchetto HexChat correttamente installato nel sistema (le configurazioni descritte in questa guida sono state testate sulla versione 2.14.2)
    Nota - Nelle distribuzioni che usano pacchetti deb, HexChat si installa con il comando:
    $ sudo apt-get install hexchat
  • Per verificare i certificati del server quando si effettua la connessione con il protocollo TLS, occorre che il sistema disponga di un insieme aggiornato di root CA certificates (in caso contrario, il certificato radice si scarica da LetsEncrypt).
    Nota - Nelle distribuzioni che usano pacchetti deb, dovrebbe essere sufficiente installare il pacchetto denominato ca-certificates o simile.
  • Per utilizzare l'autenticazione via SASL con un account NickServ di freenode registrato e verificato, occorre che nel sistema sia presente il supporto a TLS (installare il pacchetto openssl) e le relative librerie per la crittografia.
    Attenzione - I pacchetti necessari per il supporto a TLS possono differire a seconda del sistema in uso.
  • Per utilizzare la modalità di collegamento a freenode via Tor+SASL, occorre che Tor sia correttamente installato e che il relativo servizio sia in esecuzione.
    Attenzione - È fortemente consigliato installare una versione aggiornata di Tor (si vedano i repository ufficiali del progetto Tor). È richiesto almeno Tor >=0.3.5.
    Nota - Per l'installazione e la configurazione di Tor si veda la relativa guida ufficiale.

HexChat: Collegamento plain–text o TSL-encrypted

  1. Dal menù HexChat di HexChat, aprire la finestra Elenco Reti (Ctrl+S)
    Nota - in questa finestra è possibile inserire le informazioni utente "globali" che potranno eventualmente essere utilizzate per tutte le reti dell'elenco (Soprannome, Seconda scelta, Nome Reale, Nome Utente)
  2. Cliccare sul bottone Aggiungi così da creare una nuova rete (network) attribuendole un idoneo identificativo (p. es. FreeNode)
  3. Selezionare la rete FreeNode appena creata e cliccare sul bottone Modifica…
    • selezionare la scheda Server
    • cliccare sul bottone Aggiungi e impostare come server:[2]
      chat.freenode.net
  4. Impostare i parametri di connessione:
    • Connettere solo al server selezionato: NON SPUNTARE
    • Connettere automaticamente a questa rete: impostare a piacere
    • Scavalcare il server proxy: SPUNTARE
      Nota - A seconda della configurazione di rete locale in uso potrebbe invece essere necessario NON SPUNTARE
    • Usa SSL per tutti i server di questa rete: SPUNTARE
      Nota - In questo modo viene impostata la modalità TSL-encrypted[3] (raccomandata) anziché quella plain–text
    • Accettare certificati SSL non validi: NON SPUNTARE
  5. Inserire le informazioni utente specifiche per questa connessione
    (oppure SPUNTARE la casella Usare informazioni utente globali per utilizzare le informazioni utente "globali" eventualmente definite nella finestra Elenco Reti)
  6. Inserire i parametri per l'autenticazione:
    • — per accedere con un nickname generico (senza un account registrato):
      • Metodo di accesso: Default
      • Password: lasciare vuoto
    • — per accedere con un account NickServ registrato:
      • Metodo di accesso: NickServ (/MSG NickServ + password)
      • Password: impostare con la password corrispondente al Nome Utente dell'account NickServ registrato
    • — per accedere via SASL con un account NickServ registrato[4]:
      • Metodo di accesso: SASL (username + password)
      • Password: impostare la password corrispondente al Nome Utente dell'account NickServ registrato
  7. Impostare il set di caratteri da utilizzare:
      • Set di caratteri: UTF-8
  8. Selezionando la sezione Canali a cui accedere automaticamente è anche possibile aggiungere un elenco di canali a cui si accederà automaticamente una volta effettuato il collegamento.


Una volta chiusa la finestra Elenco Reti, ci si può connettere alla rete FreeNode appena creata.

La configurazione del nuovo network FreeNode comparirà all'interno del file ~/.config/hexchat/servlist.conf e risulterà essere del tipo:

  • modalità TSL-encrypted senza autenticazione (senza un account registrato):
    N=FreeNode
    I=mynickname
    i=mynickname_secondary
    U=myusername
    R=myrealname
    E=UTF-8 (Unicode)
    F=6
    D=0
    S=chat.freenode.net
  • modalità TSL-encrypted con autenticazione NickServ:
    N=FreeNode
    I=mynickname
    i=mynickname_secondary
    U=myusername
    R=myrealname
    P=mypassword
    L=1
    E=UTF-8 (Unicode)
    F=6
    D=0
    S=chat.freenode.net
  • modalità TSL-encrypted con autenticazione SASL:
    N=FreeNode
    I=mynickname
    i=mynickname_secondary
    U=myusername
    R=myrealname
    P=mypassword
    L=6
    E=UTF-8 (Unicode)
    F=71
    D=1
    S=chat.freenode.net

HexChat: Collegamento via Tor+SASL

Il collegamento a freenode via Tor+SASL avviene attraverso un hidden service Tor (che utilizza il recente protocollo Next Gen Onion):
ajnvpgl6prmkb7yktvue6im5wiedlz2w32uhcwaamdiecdrfpwwgnlqd.onion

Per evitare eventuali abusi, il servizio offerto da freenode richiede obbligatoriamente un account NickServ registrato e verificato, che si deve autenticare in modalità SASL EXTERNAL (o ECDSA-NIST256P-CHALLENGE) via TLS–encrypted mediante un apposito certificato associato allo stesso account.[5]

Per poter effettuare il collegamento a freenode via Tor+SASL occorre quindi il soddisfacimento di alcuni ulteriori prerequisiti:

  1. disporre di un account NickServ di freenode registrato e verificato[1]
  2. associare allo stesso account un apposito certificato TLS[7]


Un modo conveniente per predisporre e associare il certificato è costituito dalla procedura descritta di seguito[7]:

  • Creare il certificato e visualizzarne l'impronta, eseguendo da terminale i comandi:
    $ openssl req -x509 -new -newkey rsa:4096 -sha256 -days 1096 -nodes -out freenode.pem -keyout freenode.pem
    $ openssl x509 -in freenode.pem -outform der | sha1sum -b | cut -d' ' -f1
Attenzione - Il certificato ha validit&a per circa 3 anni. Dovrà quindi essere rigenerato alla scadenza.
  • Rendere disponibile il certificato a HexChat, eseguendo da terminale i comandi:
    $ mkdir ~/.config/hexchat/certs/
    $ mv freenode.pem ~/.config/hexchat/certs/freenode.pem
  • Accedere a freenode utilizzando la modalità TSL-encrypted descritta sopra
  • Associare il certificato all'account registrato eseguendo il comando IRC:
    /msg NickServ CERT ADD <fingerprint>
dove occorre sostituire a <fingerprint> l'impronta del certificato come prima visualizzata.


Ovviamente, occorre anche configurare opportunamente HexChat (si noti che, in questo caso, si deve configurare il client per l'utilizzo del proxy Tor locale):

  1. Dal menù HexChat di HexChat, aprire la finestra Elenco Reti (Ctrl+S)
    Nota -; in questa finestra è possibile inserire le informazioni utente "globali" che potranno eventualmente essere utilizzate per tutte le reti dell'elenco (Soprannome, Seconda scelta, Nome Reale, Nome Utente)
  2. Cliccare sul bottone Aggiungi così da creare una nuova rete (network) attribuendole un idoneo identificativo (p. es. FreeNode-Tor)
  3. Selezionare la rete FreeNode-Tor appena creata, cliccare sul bottone Modifica…
    • selezionare la scheda Server
    • cliccare sul bottone Aggiungi e impostare come server:
      ajnvpgl6prmkb7yktvue6im5wiedlz2w32uhcwaamdiecdrfpwwgnlqd.onion
  4. Impostare i parametri di connessione:
    • Connettere solo al server selezionato: SPUNTARE
    • Connettere automaticamente a questa rete: impostare a piacere
    • Scavalcare il server proxy: NON SPUNTARE (in modo da utilizzare il proxy Tor locale)
    • Usa SSL per tutti i server di questa rete: SPUNTARE (per impostare la modalità TSL-encrypted)
    • Accettare certificati SSL non validi: NON SPUNTARE
  5. Inserire le informazioni utente specifiche per questa connessione
    (oppure SPUNTARE la casella Usare informazioni utente globali per utilizzare le informazioni utente "globali" eventualmente definite nella finestra Elenco Reti)
    Attenzione - Il Nome Utente risultante dovrà essere quello dell'account NickServ registrato!
  6. Inserire i parametri per l'autenticazione:
    • Metodo di accesso: SASL EXTERNAL (cert)
    • Password: n/a (campo disabilitato: sarà usato il certificato associato all'account NickServ registrato)
  7. Impostare il set di caratteri da utilizzare:
    • Set di caratteri: UTF-8
  8. Selezionando la sezione Canali a cui accedere automaticamente è anche possibile aggiungere un elenco di canali a cui si accederà automaticamente una volta effettuato il collegamento.


La configurazione del nuovo network FreeNode comparirà all'interno del file ~/.config/hexchat/servlist.conf e risulterà essere del tipo:

    N=FreeNode-Tor
    I=mynickname
    i=mynickname_secondary
    U=myusername
    R=myrealname
    L=10
    E=UTF-8 (Unicode)
    F=118
    D=0
    S=ajnvpgl6prmkb7yktvue6im5wiedlz2w32uhcwaamdiecdrfpwwgnlqd.onion

Ci si può ora connettere via Tor+SASL alla rete FreeNode-Tor appena creata.

Riferimenti



[ Documento a cura di: alexus ]