<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://wiki.eigenlab.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kiba</id>
	<title>EigenWiki - Contributi dell&amp;#039;utente [it]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eigenlab.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kiba"/>
	<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/Speciale:Contributi/Kiba"/>
	<updated>2026-06-02T15:55:27Z</updated>
	<subtitle>Contributi dell&amp;#039;utente</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4655</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4655"/>
		<updated>2017-03-16T16:00:25Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; è un protocollo di chat federato: questo significa che se hai un&#039;utenza registrata su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce una chat singola o di gruppo (detto anche &#039;&#039;&amp;quot;stanza&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039;) ed ha una rubrica per i contatti; inoltre è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. In questa pagina troverete le istruzioni per [[XMPP#Gajim|Gajim]] (PC) e [[XMPP#Conversations|Conversations]] (Android).&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però 2 restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
===OTR===&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre con [[XMPP#Gajim]] (desktop) e [[XMPP#Conversations]] (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che ancora poco supportato da altri client. &lt;br /&gt;
&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
===OMEMO===&lt;br /&gt;
[[File:Omemo-fish.png|miniatura|destra|l&#039;icona a fesciolino di OMEMO]]&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Gajim ==&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.&lt;br /&gt;
&lt;br /&gt;
=== Installazione ===&lt;br /&gt;
====Arch====&lt;br /&gt;
Bisogna avere l&#039;AUR abilitato e installare i pacchetti con&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo gajim-plugin-httpupload python2-qrcode python2-future&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Su alcuni laptop Gajim si inchioda all&#039;uscita dal programma e questo problema sembra risolversi installando il pacchetto &amp;lt;code&amp;gt;python2-dbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Debian====&lt;br /&gt;
Bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: apri &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungi al file la riga:&lt;br /&gt;
&amp;lt;pre&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poi salvarlo e chiuderlo. Dare i comandi&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo aptitude update&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configurazione ===&lt;br /&gt;
====Account====&lt;br /&gt;
Aprendolo per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;.&lt;br /&gt;
C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
====Contatti====&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt; per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un&#039;altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot; (e anche un&#039;altra opzione più criptica &amp;quot;rendi metacontatti&amp;quot; che non so a cosa serva.)&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====MUC (Multi User Chat)====&lt;br /&gt;
Si può entrare in una MUC dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;.&lt;br /&gt;
Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot;, Gajim entrerà nella stanza al momento del login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella stanza: &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Chiamate e videochiamate====&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. &lt;br /&gt;
&lt;br /&gt;
In Arch installare &amp;lt;code&amp;gt;farstream&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
In Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Plugin ===&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Di seguito alcuni plugin particolarmente utili:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Client icons&#039;&#039;&#039;: Mostra una icona che rapresenta il client usato, nell&#039;elenco dei contatti.&lt;br /&gt;
* &#039;&#039;&#039;Emoticons pack&#039;&#039;&#039;: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
* &#039;&#039;&#039;Httpupload&#039;&#039;&#039;: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;Url image preview&#039;&#039;&#039;: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Olugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Riavviare Gajim dopo aver abilitato i plugin.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Se avete seguito questa guida avrete installato anche OMEMO, che però andrà attivato come un qualsiasi altro plugin, seguite il punto precedente.&lt;br /&gt;
&lt;br /&gt;
Dopo aver abilitato il plugin, Gajim si impallerà qualche secondo per generare le chiavi: non impanicatevi, è normale. Quando avrà finito sarete a un passo dal chattare in sicurezza.&lt;br /&gt;
&lt;br /&gt;
Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce [[File:OmemoGajimFish LowRes.png|inline|baseline]] da cui si può abilitare OMEMO nella chat. &lt;br /&gt;
&lt;br /&gt;
Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. &lt;br /&gt;
&lt;br /&gt;
Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. uno smartphone con Conversations, più un pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt; dove è presente anche il QR-code utilizzato nella verifica da Conversations.&lt;br /&gt;
&lt;br /&gt;
=== Problemi ===&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conversations== &lt;br /&gt;
Il migliore client per Android per numero di XEP integrate. &lt;br /&gt;
Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]]; c&#039;è anche nel PlayStore, ma a pagamento.&lt;br /&gt;
&lt;br /&gt;
===Account===&lt;br /&gt;
[[File:ConversationUserPass.jpg|miniatura|sinistra|Inserisci l&#039;ID Jabber e la password e inizia a chattare!]]&lt;br /&gt;
&lt;br /&gt;
Per aggiungere un account devi andare in &amp;lt;code&amp;gt;Menu → Gestisci utenti&amp;lt;/code&amp;gt;: qui troverai un tastino con un omino stilizzato e un più [[File:AddAccount Conversation.jpg|22px|inline|baseline]]. Cliccaci e otterrai una schermata che ti chiede jabberID e password, inseriscili e sei prontu a chattare!&lt;br /&gt;
&lt;br /&gt;
Dal menu &amp;quot;Gestisci utenti&amp;quot; puoi fare una serie di altre opreazioni utili che riguardano il tuo account, come &lt;br /&gt;
* Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
* Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
===Contatti, chat e MUC (Multi User Chat)===&lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, cliccaci sopra per aprirle, swipe a destra o sinistra per chiuderle.&lt;br /&gt;
&lt;br /&gt;
Se dovessi farlo per errore non preoccuparti: &#039;&#039;&#039;non&#039;&#039;&#039; hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
====Aggiungere contatti e MUC====&lt;br /&gt;
In alto a destra c&#039;è una icona con un grosso &amp;quot;più&amp;quot;: [[File:ConversationContacts.jpg|22px|inline|baseline]]&lt;br /&gt;
Cliccandoci troverai l&#039;elenco dei contatti e delle MUC; in alto a destra ci sono, nelle rispettive schede, i tasti per aggiungere contatti [[File:AddAccount Conversation.jpg|22px|inline|baseline]] e MUC [[File:ConversationJoinMUC.jpg|22px|inline|baseline]].&lt;br /&gt;
&lt;br /&gt;
====Random settings====&lt;br /&gt;
Conversations di default non mostra se i contatti sono online o meno, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile, rosso=occupato, arancione=assente, grigio=offline.&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
In una chat di gruppo, cliccando su &amp;quot;Dettagli conferenza&amp;quot; è possibile visualizzare l&#039;elenco degli iscritti.&lt;br /&gt;
&lt;br /&gt;
=== OMEMO ===&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. &lt;br /&gt;
&lt;br /&gt;
È buona norma verificare questa fingerprint tramite altro mezzo, tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
====Verifica delle chiavi====&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;. A questo punto si aprirà l&#039;app per fotografare il QR.&amp;lt;ref&amp;gt;I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio. Per aiutare la messa a fuoco può essere anche utile mettersi un po&#039; a giocare con la luminosità dello schermo.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per visualizzare il QR della propria fingerprint clicca sul tuo avatar oppure vai in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot;, sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. &lt;br /&gt;
&lt;br /&gt;
È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Integrazione in Sailfish OS ===&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. &lt;br /&gt;
&lt;br /&gt;
Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da [http://openrepos.net Warehouse] e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Conversations;chat,chat_exists&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
&lt;br /&gt;
Per rimanere sempre online e ricevere notifiche anche dopo aver chiuso la finestra di Conversation (in modo simile a quanto succede in android), bisogna consentire all&#039;applicazione di eseguire servizi in backgroud all&#039;avvio, in &amp;lt;code&amp;gt;Impostazioni → Applicazioni → Conversations&amp;lt;/code&amp;gt; e poi selezionare &amp;quot;Mantieni il servizio in primo piano&amp;quot; nelle impostazioni avanzate di Conversations.&lt;br /&gt;
&lt;br /&gt;
==Altri Client==&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin.&lt;br /&gt;
===XabberDev===&lt;br /&gt;
XabberDev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4622</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4622"/>
		<updated>2017-01-21T18:34:15Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; è un protocollo di chat federato: questo significa che se hai un&#039;utenza registrata su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce una chat singola o di gruppo (detto anche &#039;&#039;&amp;quot;stanza&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039;) ed ha una rubrica per i contatti; inoltre è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però 2 restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre con [[XMPP#Gajim]] (desktop) e [[XMPP#Conversations]] (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che ancora poco supportato da altri client. &lt;br /&gt;
&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
[[File:Omemo-fish.png|bottom]] Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. Ad oggi abbiamo preparato qui sotto le istruzioni per [[XMPP#Gajim|Gajim]] (per PC) e [[XMPP#Conversations|Conversations]] (per Android).&lt;br /&gt;
&lt;br /&gt;
=== Gajim ===&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.&lt;br /&gt;
&lt;br /&gt;
==== Installazione ====&lt;br /&gt;
In Arch bisogna avere l&#039;AUR abilitato e installare i pacchetti con: &lt;br /&gt;
&amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo python2-qrcode python2-future&amp;lt;/code&amp;gt;. Su alcuni laptop Gajim si inchioda all&#039;uscita dal programma e questo problema sembra risolversi installando il pacchetto &amp;lt;code&amp;gt;python2-dbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In Debian stable bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungere la riga &amp;lt;code&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/code&amp;gt; nel file; poi salvarlo e chiuderlo e dare i comandi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo aptitude update&lt;br /&gt;
&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&lt;br /&gt;
&lt;br /&gt;
sudo aptitude install python-qrcode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configurazione ====&lt;br /&gt;
Aprendolo per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;. C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare. Finito. &lt;br /&gt;
&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt; per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un&#039;altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot; (e anche un&#039;altra opzione più criptica &amp;quot;rendi metacontatti&amp;quot; che non so a cosa serva.)&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si può entrare in una MUC dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt;&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;. Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot; gajim entrerà nella stanza al login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella MUC &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare &amp;lt;code&amp;gt;farstream-0.1&amp;lt;/code&amp;gt; mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Plugin ====&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Client icons: Mostra una icona che rapresenta il client usato, nell&#039;elenco dei contatti.&lt;br /&gt;
* Emoticons pack: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
* Httpupload: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* Url image preview: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Olugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Riavviare Gajim dopo aver abilitato i plugin.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Dopo aver abilitato il plugin, Gajim si impallerà qualche secondo per generare le chiavi. Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce, da cui si può abilitare omemo nella chat. Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. uno smartphone con Conversations, più un pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt;, dove è presente anche il QR-code utilizzato nella verifica da Conversations.&lt;br /&gt;
&lt;br /&gt;
==== Problemi ====&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
=== Conversations=== &lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
Il migliore client per Android per numero di XEP integrate. Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]]; c&#039;è anche nel PlayStore, ma a pagamento.&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, lo swipe su una di queste consente di terminare una chat. Se dovessi farlo per errore non preoccuparti, non hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
Il tasto&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; mostra l&#039;elenco dei contatti e delle MUC (chatroom / chat di gruppo). Nelle rispettive schede si possono aggiungere amici e chat di gruppo.&lt;br /&gt;
&lt;br /&gt;
Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
Conversations di default non mostra se i contatti sono online oppure offline, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile rosso=occupato arancione=assente grigio=offline&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
In una chat di gruppo, cliccando su &amp;quot;Dettagli conferenza&amp;quot; è possibile visualizzare l&#039;elenco degli iscritti.&lt;br /&gt;
&lt;br /&gt;
===== OMEMO =====&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. È buona norma verificare questa fingerprint tramite altro mezzo. Tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, poi tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt; A questo punto si aprirà l&#039;app per fotografare il QR. I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio.&lt;br /&gt;
&lt;br /&gt;
Si visualizza il QR della propria fingerprint cliccando sul proprio avatar oppure andando in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot; sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Integrazione in Sailfish OS =====&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da Warehouse (openrepos.net) e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Conversations;chat,chat_exists&lt;br /&gt;
&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
&lt;br /&gt;
Per rimanere sempre online e ricevere notifiche anche dopo aver chiuso la finestra di Conversation (in modo simile a quanto succede in android), bisogna consentire all&#039;applicazione di eseguire servizi in backgroud all&#039;avvio, in &amp;lt;code&amp;gt;Impostazioni → Applicazioni → Conversations&amp;lt;/code&amp;gt; e poi&lt;br /&gt;
selezionare &amp;quot;Mantieni il servizio in primo piano&amp;quot; nelle impostazioni avanzate di Conversations.&lt;br /&gt;
&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin.&lt;br /&gt;
===XabberDev===&lt;br /&gt;
XabberDev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4621</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4621"/>
		<updated>2017-01-18T21:39:58Z</updated>

		<summary type="html">&lt;p&gt;Kiba: /* OMEMO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; è un protocollo di chat federato: questo significa che se hai un&#039;utenza registrata su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce una chat singola o di gruppo (detto anche &#039;&#039;&amp;quot;stanza&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039;) ed ha una rubrica per i contatti; inoltre è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però 2 restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre con [[XMPP#Gajim]] (desktop) e [[XMPP#Conversations]] (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che ancora poco supportato da altri client. &lt;br /&gt;
&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
[[File:Omemo-fish.png|bottom]] Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. Ad oggi abbiamo preparato qui sotto le istruzioni per [[XMPP#Gajim|Gajim]] (per PC) e [[XMPP#Conversations|Conversations]] (per Android).&lt;br /&gt;
&lt;br /&gt;
=== Gajim ===&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.&lt;br /&gt;
&lt;br /&gt;
==== Installazione ====&lt;br /&gt;
In Arch bisogna avere l&#039;AUR abilitato e installare i pacchetti con: &lt;br /&gt;
&amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo python2-qrcode python2-future&amp;lt;/code&amp;gt;. Su alcuni laptop Gajim si inchioda all&#039;uscita dal programma e questo problema sembra risolversi installando il pacchetto &amp;lt;code&amp;gt;python2-dbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In Debian stable bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungere la riga &amp;lt;code&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/code&amp;gt; nel file; poi salvarlo e chiuderlo e dare i comandi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo aptitude update&lt;br /&gt;
&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&lt;br /&gt;
&lt;br /&gt;
sudo aptitude install python-qrcode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configurazione ====&lt;br /&gt;
Aprendolo per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;. C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare. Finito. &lt;br /&gt;
&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt; per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un&#039;altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot; (e anche un&#039;altra opzione più criptica &amp;quot;rendi metacontatti&amp;quot; che non so a cosa serva.)&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si può entrare in una MUC dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt;&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;. Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot; gajim entrerà nella stanza al login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella MUC &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare &amp;lt;code&amp;gt;farstream-0.1&amp;lt;/code&amp;gt; mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Plugin ====&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Client icons: Mostra una icona che rapresenta il client usato, nell&#039;elenco dei contatti.&lt;br /&gt;
* Emoticons pack: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
* Httpupload: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* Url image preview: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Olugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Riavviare Gajim dopo aver abilitato i plugin.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Dopo aver abilitato il plugin, Gajim si impallerà qualche secondo per generare le chiavi. Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce, da cui si può abilitare omemo nella chat. Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. uno smartphone con Conversations, più un pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt;, dove è presente anche il QR-code utilizzato nella verifica da Conversations.&lt;br /&gt;
&lt;br /&gt;
==== Problemi ====&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
=== Conversations=== &lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
Il migliore client per Android per numero di XEP integrate. Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]]; c&#039;è anche nel PlayStore, ma a pagamento.&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, lo swipe su una di queste consente di terminare una chat. Se dovessi farlo per errore non preoccuparti, non hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
Il tasto&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; mostra l&#039;elenco dei contatti e delle MUC (chatroom / chat di gruppo). Nelle rispettive schede si possono aggiungere amici e chat di gruppo.&lt;br /&gt;
&lt;br /&gt;
Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
Conversations di default non mostra se i contatti sono online oppure offline, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile rosso=occupato arancione=assente grigio=offline&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
===== OMEMO =====&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. È buona norma verificare questa fingerprint tramite altro mezzo. Tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, poi tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt; A questo punto si aprirà l&#039;app per fotografare il QR. I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio.&lt;br /&gt;
&lt;br /&gt;
Si visualizza il QR della propria fingerprint cliccando sul proprio avatar oppure andando in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot; sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Integrazione in Sailfish OS =====&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da Warehouse (openrepos.net) e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Conversations;chat,chat_exists&lt;br /&gt;
&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
&lt;br /&gt;
Per rimanere sempre online e ricevere notifiche anche dopo aver chiuso la finestra di Conversation (in modo simile a quanto succede in android), bisogna consentire all&#039;applicazione di eseguire servizi in backgroud all&#039;avvio, in &amp;lt;code&amp;gt;Impostazioni → Applicazioni → Conversations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin.&lt;br /&gt;
===XabberDev===&lt;br /&gt;
XabberDev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4620</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4620"/>
		<updated>2017-01-15T12:44:50Z</updated>

		<summary type="html">&lt;p&gt;Kiba: /* Integrazione in Sailfish OS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; è un protocollo di chat federato: questo significa che se hai un&#039;utenza registrata su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce una chat singola o di gruppo (detto anche &#039;&#039;&amp;quot;stanza&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039;) ed ha una rubrica per i contatti; inoltre è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però 2 restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre con [[XMPP#Gajim]] (desktop) e [[XMPP#Conversations]] (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che ancora poco supportato da altri client. &lt;br /&gt;
&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
[[File:Omemo-fish.png|bottom]] Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
Esistono molti programmi per usare XMPP (client) per diverse piattaforme: [http://xmpp.org/software/clients.html qui] trovi una lista di client per Linux, Windows, OSX, iOS (iPhone), Android, Nokia Symbian e perfino da browser e da console. Ad oggi abbiamo preparato qui sotto le istruzioni per [[XMPP#Gajim|Gajim]] (per PC) e [[XMPP#Conversations|Conversations]] (per Android).&lt;br /&gt;
&lt;br /&gt;
=== Gajim ===&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.&lt;br /&gt;
&lt;br /&gt;
==== Installazione ====&lt;br /&gt;
In Arch bisogna avere l&#039;AUR abilitato e installare i pacchetti con: &lt;br /&gt;
&amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo python2-qrcode python2-future&amp;lt;/code&amp;gt;. Su alcuni laptop Gajim si inchioda all&#039;uscita dal programma e questo problema sembra risolversi installando il pacchetto &amp;lt;code&amp;gt;python2-dbus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In Debian stable bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungere la riga &amp;lt;code&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/code&amp;gt; nel file; poi salvarlo e chiuderlo e dare i comandi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo aptitude update&lt;br /&gt;
&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&lt;br /&gt;
&lt;br /&gt;
sudo aptitude install python-qrcode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configurazione ====&lt;br /&gt;
Aprendolo per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;. C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare. Finito. &lt;br /&gt;
&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt; per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un&#039;altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot; (e anche un&#039;altra opzione più criptica &amp;quot;rendi metacontatti&amp;quot; che non so a cosa serva.)&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si può entrare in una MUC dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt;&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;. Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot; gajim entrerà nella stanza al login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella MUC &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzatu, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare &amp;lt;code&amp;gt;farstream-0.1&amp;lt;/code&amp;gt; mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Plugin ====&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Xmpp-file-image-http-upload-gatti.png|miniatura|Per sparare gattini in una chat (anche di gruppo) puoi usare &#039;&#039;send image via http upload&#039;&#039; (tasto celeste). Puoi inviare file di qualsiasi tipo con &#039;&#039;send file via http upload&#039;&#039; (tasto con la freccia verde).]]&lt;br /&gt;
&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Client icons: Mostra una icona che rapresenta il client usato, nell&#039;elenco dei contatti.&lt;br /&gt;
* Emoticons pack: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
* Httpupload: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* Url image preview: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Olugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Riavviare Gajim dopo aver abilitato i plugin.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Può darsi che il plugin updater di Gajim chieda di aggiornare il plugin OMEMO, perchè è stato installato tramite il gestore di pacchetti e non internamente: in tal caso va risposto sempre di no.&lt;br /&gt;
&lt;br /&gt;
Dopo aver abilitato il plugin, Gajim si impallerà qualche secondo per generare le chiavi. Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce, da cui si può abilitare omemo nella chat. Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. uno smartphone con Conversations, più un pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt;, dove è presente anche il QR-code utilizzato nella verifica da Conversations.&lt;br /&gt;
&lt;br /&gt;
==== Problemi ====&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
=== Conversations=== &lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
Il migliore client per Android per numero di XEP integrate. Puoi installarlo con [[Installare_F-droid#Conversations|F-droid]]; c&#039;è anche nel PlayStore, ma a pagamento.&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, lo swipe su una di queste consente di terminare una chat. Se dovessi farlo per errore non preoccuparti, non hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
Il tasto&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; mostra l&#039;elenco dei contatti e delle MUC (chatroom / chat di gruppo). Nelle rispettive schede si possono aggiungere amici e chat di gruppo.&lt;br /&gt;
&lt;br /&gt;
Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar.&lt;br /&gt;
&lt;br /&gt;
Conversations di default non mostra se i contatti sono online oppure offline, ma si può in parte porre rimedio nelle impostazioni: &lt;br /&gt;
* il pulsante &amp;quot;invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto&amp;lt;ref&amp;gt;verde=disponibile rosso=occupato arancione=assente grigio=offline&amp;lt;/ref&amp;gt;, &lt;br /&gt;
* &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
===== OMEMO =====&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. È buona norma verificare questa fingerprint tramite altro mezzo. Tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, poi tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt; A questo punto si aprirà l&#039;app per fotografare il QR. I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio.&lt;br /&gt;
&lt;br /&gt;
Si visualizza il QR della propria fingerprint cliccando sul proprio avatar oppure andando in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot; sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Integrazione in Sailfish OS =====&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da Warehouse (openrepos.net) e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Conversations;chat,chat_exists&lt;br /&gt;
&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da [[Installare_F-droid|F-droid]] (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
&lt;br /&gt;
Per rimanere sempre online e ricevere notifiche anche dopo aver chiuso la finestra di Conversation (in modo simile a quanto succede in android), bisogna consentire all&#039;applicazione di eseguire servizi in backgroud all&#039;avvio, in &amp;lt;code&amp;gt;Impostazioni → Applicazioni → Conversations&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin.&lt;br /&gt;
===XabberDev===&lt;br /&gt;
XabberDev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=4616</id>
		<title>KVM</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=4616"/>
		<updated>2016-12-23T22:33:39Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KVM è un&#039;infrastruttura di virtualizzazione del kernel Linux. KVM attualmente supporta una completa virtualizzazione usando Intel VT o AMD-V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configurazione =&lt;br /&gt;
20GB disco qcow2 e 1GB swap, rete bridge breig0, server VNC (non interferisce con le regole di iptables in basso), dispositivo RNG /dev/random, processore opteron_g3, &amp;lt;emulator&amp;gt; /usr/bin/kvm&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tasksel==&lt;br /&gt;
--- ambiente desktop, --- server di stampa, +++ server ssh&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
aptitude install htop iotop jnettop git p7zip lynis colordiff tmux wipe netcat-openbsd tcpdump iperf w3m pv nmap zerofree iputils-tracepath parted mosh rsync mtr-tiny curl command-not-found checksecurity debsums rkhunter clamav build-essential checkinstall cmake dpkg-dev diffutils monkeysphere iptables-persistent vim fdupes ssmtp console-data debian-goodies ntp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Software per log e sicurezza==&lt;br /&gt;
Possono essere configurati per mandare mail, per ora scrivono in /var/log/ e in /var/mail/eigen&lt;br /&gt;
* checksecurity: fa una serie di controlli su problemi di sicurezza comuni&lt;br /&gt;
* tiger: controlla la configurazione del sistema alla ricerca di problemi&lt;br /&gt;
* rkhunter: cerca rootkit sul sitema&lt;br /&gt;
* unhide: cerca processi nascosti&lt;br /&gt;
* debsums: controlla gli hash di tutti i pacchetti installati (binari e file di configurazione)&lt;br /&gt;
* clamav: antivirus&lt;br /&gt;
&lt;br /&gt;
Alcuni sono pesanti ed è inutile farli girare sempre&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
chmod -x /etc/cron.daily/tripwire&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aggiornare i pacchetti==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
aptitude update &amp;amp;&amp;amp; aptitude full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per aggiornare la cache di apt-file e command-not-found&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
apt-file update&lt;br /&gt;
update-command-not-found&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Dopo aver clonato =&lt;br /&gt;
&#039;&#039;&#039;bisogna modificare questi file&#039;&#039;&#039;&lt;br /&gt;
* /etc/network/interfaces &#039;&#039;(cambiare ip)&#039;&#039;&lt;br /&gt;
* /etc/hostname	 &#039;&#039;(aggiornare hostname)&#039;&#039;&lt;br /&gt;
* /etc/hosts&lt;br /&gt;
e per evitare che tutte le chiavi del server ssh siano uguali&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
rm /etc/ssh/ssh_host_* &amp;amp;&amp;amp; dpkg-reconfigure openssh-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installare monkeysphere==&lt;br /&gt;
Inserire, uno per riga, gli id delle chiavi [[PGP]] da autorizzare (es. &#039;&#039;Tizio &amp;lt;tizio@eigenlab.org&amp;gt;&#039;&#039;).&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
mkdir .monkeysphere&lt;br /&gt;
nano .monkeysphere/authorized_user_ids&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Impostare il certificatore, ovvero la chiave che deve firmare tutte le chiavi in &#039;&#039;authorized_user_ids&#039;&#039; affinchè queste possano accedere. È necessario inserire la fingerprint completa (senza spazi) e non l&#039;ID composto da 8 cifre.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
monkeysphere-authentication c+ CHIAVE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aggiornare la lista delle chiavi autorizzate in modo che gli utenti inseriti possano accedere al server&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
monkeysphere-authentication update-users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Iptables==&lt;br /&gt;
Iptables è configurato in modo da droppare tutto il traffico in ingresso ad eccezione di ssh. Le regole caricate all&#039;avvio del sistema si trovano in /etc/iptables/rules.v4 per ipv4 e /etc/iptables/rules.v6 per ipv6.&lt;br /&gt;
&lt;br /&gt;
Per aprire un&#039;altra porta si usano i comandi&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
iptables -A INPUT -p tcp -m tcp --dport PORTA -m state --state NEW -j ACCEPT&lt;br /&gt;
ip6tables -A INPUT -p tcp -m tcp --dport PORTA -m state --state NEW -j ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E per rendere permanenti le regole impostate&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
iptables-save &amp;gt; /etc/iptables/rules.v4&lt;br /&gt;
ip6tables-save &amp;gt; /etc/iptables/rules.v6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Modifiche ai file di configurazione nelle VM =&lt;br /&gt;
&lt;br /&gt;
====/etc/rkhunter.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#DISABLE_TESTS=suspscan hidden_procs deleted_files packet_cap_apps apps&lt;br /&gt;
DISABLE_TESTS=suspscan deleted_files packet_cap_apps apps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====.bashrc====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
export LS_OPTIONS=&#039;--color=auto&#039;&lt;br /&gt;
eval &amp;quot;`dircolors`&amp;quot;&lt;br /&gt;
alias ls=&#039;ls $LS_OPTIONS&#039;&lt;br /&gt;
alias ll=&#039;ls $LS_OPTIONS -l&#039;&lt;br /&gt;
alias l=&#039;ls $LS_OPTIONS -lA&#039;&lt;br /&gt;
&lt;br /&gt;
HISTSIZE=500000&lt;br /&gt;
HISTFILESIZE=500000000&lt;br /&gt;
&lt;br /&gt;
force_color_prompt=yes&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$force_color_prompt&amp;quot; ]; then&lt;br /&gt;
    if [ -x /usr/bin/tput ] &amp;amp;&amp;amp; tput setaf 1 &amp;gt;&amp;amp;/dev/null; then&lt;br /&gt;
        # We have color support; assume it&#039;s compliant with Ecma-48&lt;br /&gt;
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such&lt;br /&gt;
        # a case would tend to support setf rather than setaf.)&lt;br /&gt;
        color_prompt=yes&lt;br /&gt;
    else&lt;br /&gt;
        color_prompt=&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$color_prompt&amp;quot; = yes ]; then&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &#039;&lt;br /&gt;
else&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\u@\h:\w\$ &#039;&lt;br /&gt;
fi&lt;br /&gt;
unset color_prompt force_color_prompt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/ssh/sshd_config====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
AuthorizedKeysFile /var/lib/monkeysphere/authorized_keys/%u&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Per adesso c&#039;è la chiave dei nodi. è da rimuovere dopo aver configurato monkeysphere (aggiungere i certificatori con &amp;quot;monkeysphere-authentication add-identity-certifier $fingerprint&amp;quot; e gli id autorizzati in .monkeysphere/authorized_user_ids)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/root/.ssh/authorized_keys====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCr+J+hhlUnYhKLOnW55aZhJrdHHSQU9XXoP0DcMuvIQ3+SYV6ZZJLMvcdN7puSdkcKiK9DEpsN8uCWfIsxu8LkWJfq6Q/DUBkwvXgKlpbisFaj82ucy7ioiZ1aEc6LMQ/VxG4iHCnGXjWqNLA9sB9lgVDXD29lm8n/i99DHNI8TLHzV9aXz3uR39IqvD4zFBZPSsoDvZ9BsOC6TIUl+Ua0lx1olJxwGawK9he52G55RHhMI+NYj5/wMp80kOhtzRN5F0wRt08Yv2Wu0Kx9akRJBOmI+CcfxxEk7Fcg/kCHG8evS4i4chSMBbBLjOhTk/+Q6nbT3TNIeG2LAtUpml2f node_key@eigenlab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/monkeysphere/monkeysphere-authentication.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
LOG_LEVEL=DEBUG&lt;br /&gt;
RAW_AUTHORIZED_KEYS=&amp;quot;%h/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/crontab====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
0  *    * * *   root    /usr/sbin/monkeysphere-authentication update-users &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/iptables/rules.v4====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [0:0]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [1:176]&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -m conntrack --ctstate INVALID -j DROP&lt;br /&gt;
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type source-quench -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
COMMIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/iptables/rules.v6====&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [0:0]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [0:0]&lt;br /&gt;
&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -m rt --rt-type 0 -j DROP&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type neighbor-advertisement -m hl --hl-eq 255 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -s fe80::/10 -p icmpv6 --icmpv6-type echo-reply -j ACCEPT&lt;br /&gt;
-A INPUT -m conntrack --ctstate INVALID -j DROP&lt;br /&gt;
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
COMMIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/resolv.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
domain eigenlab.org&lt;br /&gt;
search eigenlab.org &lt;br /&gt;
nameserver 10.174.0.100&lt;br /&gt;
nameserver 10.174.0.101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====/etc/network/interfaces====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
#iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 10.175.1.33&lt;br /&gt;
        netmask 255.254.0.0&lt;br /&gt;
        gateway 10.175.0.1&lt;br /&gt;
&lt;br /&gt;
iface eth0 inet6 static&lt;br /&gt;
        address 2a00:1508:1:f010::1:33&lt;br /&gt;
        netmask 64&lt;br /&gt;
        gateway 2a00:1508:1:f010::1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/pam.d/su====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
auth       required   pam_wheel.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/ssmtp/ssmtp.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Config file for sSMTP sendmail&lt;br /&gt;
#&lt;br /&gt;
# The person who gets all mail for userids &amp;lt; 1000&lt;br /&gt;
# Make this empty to disable rewriting.&lt;br /&gt;
root=tuttisuitetti@eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# The place where the mail goes. The actual machine name is required no &lt;br /&gt;
# MX records are consulted. Commonly mailhosts are named mail.domain.com&lt;br /&gt;
mailhub=mail.gandi.net:587&lt;br /&gt;
&lt;br /&gt;
# Where will the mail seem to come from?&lt;br /&gt;
#rewriteDomain=&lt;br /&gt;
&lt;br /&gt;
# The full hostname&lt;br /&gt;
hostname=eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# Are users allowed to set their own From: address?&lt;br /&gt;
# YES - Allow the user to specify their own From: address&lt;br /&gt;
# NO - Use the system generated From: address&lt;br /&gt;
#FromLineOverride=YES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UseTLS=YES&lt;br /&gt;
UseSTARTTLS=YES&lt;br /&gt;
rewriteDomain=eigenlab.org&lt;br /&gt;
AuthUser=tuttisuitetti@eigenlab.org&lt;br /&gt;
AuthPass=Passw0rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=4615</id>
		<title>KVM</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=4615"/>
		<updated>2016-12-23T22:21:27Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KVM è un&#039;infrastruttura di virtualizzazione del kernel Linux. KVM attualmente supporta una completa virtualizzazione usando Intel VT o AMD-V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configurazione =&lt;br /&gt;
20GB disco qcow2 e 1GB swap, rete bridge breig0, server VNC (non interferisce con le regole di iptables in basso), dispositivo RNG /dev/random, processore opteron_g3, &amp;lt;emulator&amp;gt; /usr/bin/kvm&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==tasksel==&lt;br /&gt;
--- ambiente desktop, --- server di stampa, +++ server ssh&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
aptitude install htop iotop jnettop git p7zip lynis colordiff tmux wipe netcat-openbsd tcpdump iperf w3m pv nmap zerofree iputils-tracepath parted mosh rsync mtr-tiny curl command-not-found checksecurity debsums rkhunter clamav build-essential checkinstall cmake dpkg-dev diffutils monkeysphere iptables-persistent vim fdupes ssmtp console-data debian-goodies ntp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==software per log e sicurezza==&lt;br /&gt;
Possono essere configurati per mandare mail, per ora scrivono in /var/log/ e in /var/mail/eigen&lt;br /&gt;
* checksecurity: fa una serie di controlli su problemi di sicurezza comuni&lt;br /&gt;
* tiger: controlla la configurazione del sistema alla ricerca di problemi&lt;br /&gt;
* rkhunter: cerca rootkit sul sitema&lt;br /&gt;
* unhide: cerca processi nascosti&lt;br /&gt;
* debsums: controlla gli hash di tutti i pacchetti installati (binari e file di configurazione)&lt;br /&gt;
* clamav: antivirus&lt;br /&gt;
&lt;br /&gt;
Alcuni sono pesanti ed è inutile farli girare sempre&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
chmod -x /etc/cron.daily/tripwire&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==aggiornare i pacchetti==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
aptitude update &amp;amp;&amp;amp; aptitude full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per aggiornare la cache di apt-file e command-not-found&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
apt-file update&lt;br /&gt;
update-command-not-found&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Dopo aver clonato =&lt;br /&gt;
&#039;&#039;&#039;bisogna modificare questi file&#039;&#039;&#039;&lt;br /&gt;
* /etc/network/interfaces &#039;&#039;(cambiare ip)&#039;&#039;&lt;br /&gt;
* /etc/hostname	 &#039;&#039;(aggiornare hostname)&#039;&#039;&lt;br /&gt;
* /etc/hosts&lt;br /&gt;
e per evitare che tutte le chiavi del server ssh siano uguali&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
rm /etc/ssh/ssh_host_* &amp;amp;&amp;amp; dpkg-reconfigure openssh-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==installare monkeysphere==&lt;br /&gt;
Inserire, uno per riga, gli id delle chiavi [[PGP]] da autorizzare (es. &#039;&#039;Tizio &amp;lt;tizio@eigenlab.org&amp;gt;&#039;&#039;).&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
mkdir .monkeysphere&lt;br /&gt;
nano .monkeysphere/authorized_user_ids&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Impostare il certificatore, ovvero la chiave che deve firmare tutte le chiavi in &#039;&#039;authorized_user_ids&#039;&#039; affinchè queste possano accedere. È necessario inserire la fingerprint completa (senza spazi) e non l&#039;ID composto da 8 cifre.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
monkeysphere-authentication c+ chiave&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aggiornare la lista delle chiavi autorizzate in modo che gli utenti inseriti possano accedere al server&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
monkeysphere-authentication update-users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Modifiche ai file di configurazione nelle VM =&lt;br /&gt;
&lt;br /&gt;
====/etc/rkhunter.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#DISABLE_TESTS=suspscan hidden_procs deleted_files packet_cap_apps apps&lt;br /&gt;
DISABLE_TESTS=suspscan deleted_files packet_cap_apps apps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====.bashrc====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
export LS_OPTIONS=&#039;--color=auto&#039;&lt;br /&gt;
eval &amp;quot;`dircolors`&amp;quot;&lt;br /&gt;
alias ls=&#039;ls $LS_OPTIONS&#039;&lt;br /&gt;
alias ll=&#039;ls $LS_OPTIONS -l&#039;&lt;br /&gt;
alias l=&#039;ls $LS_OPTIONS -lA&#039;&lt;br /&gt;
&lt;br /&gt;
HISTSIZE=500000&lt;br /&gt;
HISTFILESIZE=500000000&lt;br /&gt;
&lt;br /&gt;
force_color_prompt=yes&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$force_color_prompt&amp;quot; ]; then&lt;br /&gt;
    if [ -x /usr/bin/tput ] &amp;amp;&amp;amp; tput setaf 1 &amp;gt;&amp;amp;/dev/null; then&lt;br /&gt;
        # We have color support; assume it&#039;s compliant with Ecma-48&lt;br /&gt;
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such&lt;br /&gt;
        # a case would tend to support setf rather than setaf.)&lt;br /&gt;
        color_prompt=yes&lt;br /&gt;
    else&lt;br /&gt;
        color_prompt=&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$color_prompt&amp;quot; = yes ]; then&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &#039;&lt;br /&gt;
else&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\u@\h:\w\$ &#039;&lt;br /&gt;
fi&lt;br /&gt;
unset color_prompt force_color_prompt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/ssh/sshd_config====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
AuthorizedKeysFile /var/lib/monkeysphere/authorized_keys/%u&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Per adesso c&#039;è la chiave dei nodi. è da rimuovere dopo aver configurato monkeysphere (aggiungere i certificatori con &amp;quot;monkeysphere-authentication add-identity-certifier $fingerprint&amp;quot; e gli id autorizzati in .monkeysphere/authorized_user_ids)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/root/.ssh/authorized_keys====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCr+J+hhlUnYhKLOnW55aZhJrdHHSQU9XXoP0DcMuvIQ3+SYV6ZZJLMvcdN7puSdkcKiK9DEpsN8uCWfIsxu8LkWJfq6Q/DUBkwvXgKlpbisFaj82ucy7ioiZ1aEc6LMQ/VxG4iHCnGXjWqNLA9sB9lgVDXD29lm8n/i99DHNI8TLHzV9aXz3uR39IqvD4zFBZPSsoDvZ9BsOC6TIUl+Ua0lx1olJxwGawK9he52G55RHhMI+NYj5/wMp80kOhtzRN5F0wRt08Yv2Wu0Kx9akRJBOmI+CcfxxEk7Fcg/kCHG8evS4i4chSMBbBLjOhTk/+Q6nbT3TNIeG2LAtUpml2f node_key@eigenlab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/monkeysphere/monkeysphere-authentication.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
LOG_LEVEL=DEBUG&lt;br /&gt;
RAW_AUTHORIZED_KEYS=&amp;quot;%h/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/crontab====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
0  *    * * *   root    /usr/sbin/monkeysphere-authentication update-users &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/iptables/rules.v4====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [0:0]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [1:176]&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -m conntrack --ctstate INVALID -j DROP&lt;br /&gt;
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type source-quench -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
COMMIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/iptables/rules.v6====&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [0:0]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [0:0]&lt;br /&gt;
&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -m rt --rt-type 0 -j DROP&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type neighbor-advertisement -m hl --hl-eq 255 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -s fe80::/10 -p icmpv6 --icmpv6-type echo-reply -j ACCEPT&lt;br /&gt;
-A INPUT -m conntrack --ctstate INVALID -j DROP&lt;br /&gt;
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
COMMIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/resolv.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
domain eigenlab.org&lt;br /&gt;
search eigenlab.org &lt;br /&gt;
nameserver 10.174.0.100&lt;br /&gt;
nameserver 10.174.0.101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====/etc/network/interfaces====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
#iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 10.175.1.33&lt;br /&gt;
        netmask 255.254.0.0&lt;br /&gt;
        gateway 10.175.0.1&lt;br /&gt;
&lt;br /&gt;
iface eth0 inet6 static&lt;br /&gt;
        address 2a00:1508:1:f010::1:33&lt;br /&gt;
        netmask 64&lt;br /&gt;
        gateway 2a00:1508:1:f010::1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/pam.d/su====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
auth       required   pam_wheel.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/ssmtp/ssmtp.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Config file for sSMTP sendmail&lt;br /&gt;
#&lt;br /&gt;
# The person who gets all mail for userids &amp;lt; 1000&lt;br /&gt;
# Make this empty to disable rewriting.&lt;br /&gt;
root=tuttisuitetti@eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# The place where the mail goes. The actual machine name is required no &lt;br /&gt;
# MX records are consulted. Commonly mailhosts are named mail.domain.com&lt;br /&gt;
mailhub=mail.gandi.net:587&lt;br /&gt;
&lt;br /&gt;
# Where will the mail seem to come from?&lt;br /&gt;
#rewriteDomain=&lt;br /&gt;
&lt;br /&gt;
# The full hostname&lt;br /&gt;
hostname=eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# Are users allowed to set their own From: address?&lt;br /&gt;
# YES - Allow the user to specify their own From: address&lt;br /&gt;
# NO - Use the system generated From: address&lt;br /&gt;
#FromLineOverride=YES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UseTLS=YES&lt;br /&gt;
UseSTARTTLS=YES&lt;br /&gt;
rewriteDomain=eigenlab.org&lt;br /&gt;
AuthUser=tuttisuitetti@eigenlab.org&lt;br /&gt;
AuthPass=Passw0rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=4614</id>
		<title>KVM</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=4614"/>
		<updated>2016-12-23T22:20:29Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KVM è un&#039;infrastruttura di virtualizzazione del kernel Linux. KVM attualmente supporta una completa virtualizzazione usando Intel VT o AMD-V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configurazione =&lt;br /&gt;
100GB disco qcow2 e 1GB swap, rete bridge breig0, server VNC (non interferisce con le regole di iptables in basso), dispositivo RNG /dev/random, processore opteron_g3, &amp;lt;emulator&amp;gt; /usr/bin/kvm&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==tasksel==&lt;br /&gt;
--- ambiente desktop, --- server di stampa, +++ server ssh&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
aptitude install htop iotop jnettop git p7zip lynis colordiff tmux wipe netcat-openbsd tcpdump iperf w3m pv nmap zerofree iputils-tracepath parted mosh rsync mtr-tiny curl command-not-found checksecurity debsums rkhunter clamav build-essential checkinstall cmake dpkg-dev diffutils monkeysphere iptables-persistent vim fdupes ssmtp console-data debian-goodies ntp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==software per log e sicurezza==&lt;br /&gt;
Possono essere configurati per mandare mail, per ora scrivono in /var/log/ e in /var/mail/eigen&lt;br /&gt;
* checksecurity: fa una serie di controlli su problemi di sicurezza comuni&lt;br /&gt;
* tiger: controlla la configurazione del sistema alla ricerca di problemi&lt;br /&gt;
* rkhunter: cerca rootkit sul sitema&lt;br /&gt;
* unhide: cerca processi nascosti&lt;br /&gt;
* debsums: controlla gli hash di tutti i pacchetti installati (binari e file di configurazione)&lt;br /&gt;
* clamav: antivirus&lt;br /&gt;
&lt;br /&gt;
Alcuni sono pesanti ed è inutile farli girare sempre&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
chmod -x /etc/cron.daily/tripwire&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==aggiornare i pacchetti==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
aptitude update &amp;amp;&amp;amp; aptitude full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per aggiornare la cache di apt-file e command-not-found&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
apt-file update&lt;br /&gt;
update-command-not-found&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Dopo aver clonato =&lt;br /&gt;
&#039;&#039;&#039;bisogna modificare questi file&#039;&#039;&#039;&lt;br /&gt;
* /etc/network/interfaces &#039;&#039;(cambiare ip)&#039;&#039;&lt;br /&gt;
* /etc/hostname	 &#039;&#039;(aggiornare hostname)&#039;&#039;&lt;br /&gt;
* /etc/hosts&lt;br /&gt;
e per evitare che tutte le chiavi del server ssh siano uguali&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
rm /etc/ssh/ssh_host_* &amp;amp;&amp;amp; dpkg-reconfigure openssh-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==installare monkeysphere==&lt;br /&gt;
Inserire, uno per riga, gli id delle chiavi [[PGP]] da autorizzare (es. &#039;&#039;Tizio &amp;lt;tizio@eigenlab.org&amp;gt;&#039;&#039;).&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
mkdir .monkeysphere&lt;br /&gt;
nano .monkeysphere/authorized_user_ids&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Impostare il certificatore, ovvero la chiave che deve firmare tutte le chiavi in &#039;&#039;authorized_user_ids&#039;&#039; affinchè queste possano accedere. È necessario inserire la fingerprint completa (senza spazi) e non l&#039;ID composto da 8 cifre.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
monkeysphere-authentication c+ chiave&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aggiornare la lista delle chiavi autorizzate in modo che gli utenti inseriti possano accedere al server&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
monkeysphere-authentication update-users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Modifiche ai file di configurazione nelle VM =&lt;br /&gt;
&lt;br /&gt;
====/etc/rkhunter.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#DISABLE_TESTS=suspscan hidden_procs deleted_files packet_cap_apps apps&lt;br /&gt;
DISABLE_TESTS=suspscan deleted_files packet_cap_apps apps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====.bashrc====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
export LS_OPTIONS=&#039;--color=auto&#039;&lt;br /&gt;
eval &amp;quot;`dircolors`&amp;quot;&lt;br /&gt;
alias ls=&#039;ls $LS_OPTIONS&#039;&lt;br /&gt;
alias ll=&#039;ls $LS_OPTIONS -l&#039;&lt;br /&gt;
alias l=&#039;ls $LS_OPTIONS -lA&#039;&lt;br /&gt;
&lt;br /&gt;
HISTSIZE=500000&lt;br /&gt;
HISTFILESIZE=500000000&lt;br /&gt;
&lt;br /&gt;
force_color_prompt=yes&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$force_color_prompt&amp;quot; ]; then&lt;br /&gt;
    if [ -x /usr/bin/tput ] &amp;amp;&amp;amp; tput setaf 1 &amp;gt;&amp;amp;/dev/null; then&lt;br /&gt;
        # We have color support; assume it&#039;s compliant with Ecma-48&lt;br /&gt;
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such&lt;br /&gt;
        # a case would tend to support setf rather than setaf.)&lt;br /&gt;
        color_prompt=yes&lt;br /&gt;
    else&lt;br /&gt;
        color_prompt=&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$color_prompt&amp;quot; = yes ]; then&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &#039;&lt;br /&gt;
else&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\u@\h:\w\$ &#039;&lt;br /&gt;
fi&lt;br /&gt;
unset color_prompt force_color_prompt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/ssh/sshd_config====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
AuthorizedKeysFile /var/lib/monkeysphere/authorized_keys/%u&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Per adesso c&#039;è la chiave dei nodi. è da rimuovere dopo aver configurato monkeysphere (aggiungere i certificatori con &amp;quot;monkeysphere-authentication add-identity-certifier $fingerprint&amp;quot; e gli id autorizzati in .monkeysphere/authorized_user_ids)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/root/.ssh/authorized_keys====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCr+J+hhlUnYhKLOnW55aZhJrdHHSQU9XXoP0DcMuvIQ3+SYV6ZZJLMvcdN7puSdkcKiK9DEpsN8uCWfIsxu8LkWJfq6Q/DUBkwvXgKlpbisFaj82ucy7ioiZ1aEc6LMQ/VxG4iHCnGXjWqNLA9sB9lgVDXD29lm8n/i99DHNI8TLHzV9aXz3uR39IqvD4zFBZPSsoDvZ9BsOC6TIUl+Ua0lx1olJxwGawK9he52G55RHhMI+NYj5/wMp80kOhtzRN5F0wRt08Yv2Wu0Kx9akRJBOmI+CcfxxEk7Fcg/kCHG8evS4i4chSMBbBLjOhTk/+Q6nbT3TNIeG2LAtUpml2f node_key@eigenlab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/monkeysphere/monkeysphere-authentication.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
LOG_LEVEL=DEBUG&lt;br /&gt;
RAW_AUTHORIZED_KEYS=&amp;quot;%h/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/crontab====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
0  *    * * *   root    /usr/sbin/monkeysphere-authentication update-users &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/iptables/rules.v4====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [0:0]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [1:176]&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -m conntrack --ctstate INVALID -j DROP&lt;br /&gt;
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type source-quench -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
COMMIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/iptables/rules.v6====&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [0:0]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [0:0]&lt;br /&gt;
&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -m rt --rt-type 0 -j DROP&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type neighbor-advertisement -m hl --hl-eq 255 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -s fe80::/10 -p icmpv6 --icmpv6-type echo-reply -j ACCEPT&lt;br /&gt;
-A INPUT -m conntrack --ctstate INVALID -j DROP&lt;br /&gt;
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT&lt;br /&gt;
-A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A INPUT -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
COMMIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/resolv.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
domain eigenlab.org&lt;br /&gt;
search eigenlab.org &lt;br /&gt;
nameserver 10.174.0.100&lt;br /&gt;
nameserver 10.174.0.101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====/etc/network/interfaces====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
#iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 10.175.1.33&lt;br /&gt;
        netmask 255.254.0.0&lt;br /&gt;
        gateway 10.175.0.1&lt;br /&gt;
&lt;br /&gt;
iface eth0 inet6 static&lt;br /&gt;
        address 2a00:1508:1:f010::1:33&lt;br /&gt;
        netmask 64&lt;br /&gt;
        gateway 2a00:1508:1:f010::1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/pam.d/su====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
auth       required   pam_wheel.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/ssmtp/ssmtp.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Config file for sSMTP sendmail&lt;br /&gt;
#&lt;br /&gt;
# The person who gets all mail for userids &amp;lt; 1000&lt;br /&gt;
# Make this empty to disable rewriting.&lt;br /&gt;
root=tuttisuitetti@eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# The place where the mail goes. The actual machine name is required no &lt;br /&gt;
# MX records are consulted. Commonly mailhosts are named mail.domain.com&lt;br /&gt;
mailhub=mail.gandi.net:587&lt;br /&gt;
&lt;br /&gt;
# Where will the mail seem to come from?&lt;br /&gt;
#rewriteDomain=&lt;br /&gt;
&lt;br /&gt;
# The full hostname&lt;br /&gt;
hostname=eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# Are users allowed to set their own From: address?&lt;br /&gt;
# YES - Allow the user to specify their own From: address&lt;br /&gt;
# NO - Use the system generated From: address&lt;br /&gt;
#FromLineOverride=YES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UseTLS=YES&lt;br /&gt;
UseSTARTTLS=YES&lt;br /&gt;
rewriteDomain=eigenlab.org&lt;br /&gt;
AuthUser=tuttisuitetti@eigenlab.org&lt;br /&gt;
AuthPass=Passw0rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4564</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4564"/>
		<updated>2016-12-16T23:12:01Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; è un protocollo di chat federato: questo significa che se hai un&#039;utenza registrata su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce una chat singola o di gruppo (detto anche &#039;&#039;&amp;quot;stanza&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039;) ed ha una rubrica per i contatti; inoltre è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però 2 restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre con [https://gajim.org/ Gajim] (desktop) e [https://conversations.im/ Conversations]  (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che ancora poco supportato da altri client. &lt;br /&gt;
&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
Come si fa in generale a:&lt;br /&gt;
* cambiare la password?&lt;br /&gt;
* trovare nuovi contatti / chatroom?&lt;br /&gt;
* gestione sullo smartfono?&lt;br /&gt;
&lt;br /&gt;
=== Gajim ===&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.&lt;br /&gt;
&lt;br /&gt;
==== Installazione ====&lt;br /&gt;
In Arch bisogna avere l&#039;AUR abilitato e installare i pacchetti con: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo python2-qrcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In Debian stable bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungere la riga &amp;lt;code&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/code&amp;gt; nel file; poi salvarlo e chiuderlo e dare i comandi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo aptitude update&lt;br /&gt;
&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&lt;br /&gt;
&lt;br /&gt;
sudo aptitude install python-qrcode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configurazione ====&lt;br /&gt;
Aprendolo per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;. C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare. Finito. &lt;br /&gt;
&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt; per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un&#039;altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot; (e anche un&#039;altra opzione più criptica &amp;quot;rendi metacontatti&amp;quot; che non so a cosa serva.)&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se capita di risultare offline ad un contatto, oppure di vedere offline chi è online, bisogna cliccare con il tasto destro sul contatto nell&#039;elenco dei contatti, e in &amp;lt;code&amp;gt;Gestisci il contatto → Abbonamento&amp;lt;/code&amp;gt; clicca su &amp;lt;code&amp;gt;Permetti al contatto di vedere il mio stato&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;Chiedi al contatto di poter vedere il suo stato&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si può entrare in una MUC dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt;&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;. Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot; gajim entrerà nella stanza al login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella MUC &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzato, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare &amp;lt;code&amp;gt;farstream-0.1&amp;lt;/code&amp;gt; mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Plugin ====&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Client icons: Mostra una icona che rapresenta il client usato, nell&#039;elenco dei contatti.&lt;br /&gt;
* Emoticons pack: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
* Httpupload: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* Url image preview: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Olugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Riavviare Gajim dopo aver abilitato i plugin.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Plugin updater chiederà di aggiornare il plugin OMEMO perchè è stato installato tramite il gestore di pacchetti e non internamente. Va risposto sempre di no.&lt;br /&gt;
&lt;br /&gt;
Dopo aver abilitato il plugin, Gajim si impallerà qualche secondo per generare le chiavi. Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce, da cui si può abilitare omemo nella chat. Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. uno smartphone con Conversations, più un pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt;, dove è presente anche il QR-code utilizzato nella verifica da Conversations.&lt;br /&gt;
&lt;br /&gt;
==== Problemi ====&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
=== Conversations=== &lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
Il migliore client per Android per numero di XEP integrate.&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, lo swipe su una di queste consente di terminare una chat. Se dovessi farlo per errore non preoccuparti, non hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; mostra l&#039;elenco dei contatti e delle MUC. Nelle rispettive schede si possono aggiungere amici e chat di gruppo.&lt;br /&gt;
&lt;br /&gt;
Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar&lt;br /&gt;
&lt;br /&gt;
Conversations di default non mostra se i contatti sono online oppure offline, ma si può in parte porre rimedio nelle impostazioni: &amp;quot;il pulsante invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto (verde-disponibile rosso-occupato arancione-assente grigio-offline), &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
===== OMEMO =====&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. È buona norma verificare questa fingerprint tramite altro mezzo. Tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, poi tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt; A questo punto si aprirà l&#039;app per fotografare il QR. I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio.&lt;br /&gt;
&lt;br /&gt;
Si visualizza il QR della propria fingerprint cliccando sul proprio avatar oppure andando in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot; sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Integrazione in Sailfish OS =====&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da Warehouse (openrepos.net) e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Conversations;chat,chat_exists&lt;br /&gt;
&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da F-droid (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin.&lt;br /&gt;
===XabberDev===&lt;br /&gt;
XabberDev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Cloud&amp;diff=4563</id>
		<title>Cloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Cloud&amp;diff=4563"/>
		<updated>2016-12-16T21:55:03Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:NextCloudLogin.jpg|miniatura|Giovannina cerca di ricordarsi la password.]]&lt;br /&gt;
Abbiamo organizzato la nostra [https://cloud.eigenlab.org &#039;&#039;&#039;Cloud&#039;&#039;&#039;] autogestita, così da rimanere in possesso dei dati che condividiamo e decidere insieme le policy da adottare.&lt;br /&gt;
Praticamente un servizio come [https://www.dropbox.com/ Dropbox], ma molto più bello.&lt;br /&gt;
&lt;br /&gt;
È sufficiente passarsi un link per condividere un file o una cartella sul cloud; la condivisione può essere pubblica oppure ristretta a certi gruppi, imponendo permessi etc.&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
Il cloud gira su [[BitArno]] ed è raggiungibile all&#039;indirizzo &amp;lt;code&amp;gt;https://cloud.eigenlab.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
Una volta che i/le mantainer ti avranno creato un&#039;utenza puoi accedere al cloud tramite un browser web inserendo le tue credenziali.&lt;br /&gt;
[[File:CloudSharedFiles.jpg|miniatura|Vista di alcuni file condivisi.]]&lt;br /&gt;
&lt;br /&gt;
Di norma la prima pagina mostrata è un elenco di file condivisi; un sistema di permessi ti consente di caricare file e modificarli solo nelle cartelle condivise in cui hai i permessi &#039;&#039;di scrittura&#039;&#039;, e di vedere e scaricare file nella cartelle condivise in cui hai i permessi &#039;&#039;di lettura&#039;&#039;. Facile.&lt;br /&gt;
&lt;br /&gt;
In alto a sinistra c&#039;è un menu da cui si può selezionare la pagina da utilizzare: file condivisi, calendari, contatti, il player audio, etc.&lt;br /&gt;
&lt;br /&gt;
=== Calendario ===&lt;br /&gt;
Chi ha la mania dell&#039;ordine trarrà grande giovamento dall&#039;uso del calendario condiviso: si può tenere traccia degli appuntamenti e chiunque abbia accesso ad un dato calendario può aggiungere appuntamenti e accolli, segnando (facoltativamente): data, ora, luogo, durata, descrizione, etc.&lt;br /&gt;
&lt;br /&gt;
Ovviamente i veri &#039;&#039;pro&#039;&#039; non usano soltanto [https://cloud.eigenlab.org/apps/calendar l&#039;interfaccia web] del calendario, ma lo sincronizzano con una applicazione&amp;lt;ref&amp;gt;ce ne sono miliardi&amp;lt;/ref&amp;gt; sullo smartfone e/o con il client di posta elettronica; in questo modo sono sempre al corrente di tutte le cose da fare e all&#039;erta grazie agli allarmi che suonano con anticipo programmato. Nervi in poltiglia per un&#039;efficienza &#039;&#039;&#039;massima&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
# Apri quindi il tuo programma o la tua app e dille che vuoi aggiungere un nuovo calendario.&lt;br /&gt;
# &#039;&#039;&#039;Se&#039;&#039;&#039; ti propone &amp;quot;locale&amp;quot;, &amp;quot;su questo dispositivo&amp;quot;, &amp;quot;privato&amp;quot; (o cose simili) in alternativa a &amp;quot;condiviso&amp;quot;, &amp;quot;in rete&amp;quot; (o cose simili), scegli la seconda alternativa.&lt;br /&gt;
# &#039;&#039;&#039;Se&#039;&#039;&#039; ti chiede di scegliere il &amp;quot;formato&amp;quot; o il &amp;quot;protocollo&amp;quot; scegli &#039;&#039;&#039;CalDAV&#039;&#039;&#039;.&lt;br /&gt;
# Laddove ti chiede l&#039;&#039;&#039;indirizzo&#039;&#039; del calendario inserisci quello che compare cliccando su &amp;quot;Settings&amp;quot; in basso a sinistra, scegliendo tra &#039;&#039;Primary CalDAV Address&#039;&#039; e  &#039;&#039;iOS/OS X CalDAV Address&#039;&#039; a seconda di dove ti porta il cuore.&lt;br /&gt;
# Prima o poi ti verranno chieste le credenziali per l&#039;accesso al cloud.&lt;br /&gt;
# Gòditi la tua nuova ansia tecnologica.&lt;br /&gt;
&lt;br /&gt;
[[HowToOCsync|Qui]] una guida passo passo per DavDroid, un app open source che può essere scaricata da F-Droid, funziona su piattaforma Android&lt;br /&gt;
&lt;br /&gt;
== nextCloud ==&lt;br /&gt;
[http://cloud.eigenlab.org nextCloud] è l&#039;implementazione di cloud computing che abbiamo scelto. Nativamente supporta lo web-storage una rubrica sincronizzabile tramite CardDav con tutti i dispositivi che supportano tale protocollo, un calendario sicronizzabile tramite CalDav, un riproduttore musicale integrato che legge dalla collezione locale. È estensibile grazie alle applicazioni [apps.owncloud.com] che possono essere installate facilmente.&lt;br /&gt;
&lt;br /&gt;
=== Collegamenti esterni ===&lt;br /&gt;
* [https://nextcloud.com/support/ Guide e manuali]&lt;br /&gt;
* [https://nextcloud.com Sito del progetto]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:eigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowToOCsync&amp;diff=4562</id>
		<title>HowToOCsync</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowToOCsync&amp;diff=4562"/>
		<updated>2016-12-16T21:54:40Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Abbiamo un istanza di [https://owncloud.org/ Owncloud] su un server della rete, ottimo, mo che ci facciamo? Oltre a poterlo usare per caricare i files e condividerli con gruppi/utenti/tiziaccasosuinternet lo possiamo pure usare per evitare di sincronizzare la nostra rubrica e i nostri calendari con Google.&lt;br /&gt;
=Il problema=&lt;br /&gt;
Di default da una certa versione di Android i contatti vengono automaticamente sincronizzati coi server di Google, se non si desidera bisogna esplicitamente dirgli di non farlo ed usare un account locale. &lt;br /&gt;
Da Android 6 invece non è più possibile (almeno sui telefoni sui quali ho messo le mani) avere account locali e quindi i contatti e calendari sono *forzatamente* caricati su  google.&lt;br /&gt;
=La svolta=&lt;br /&gt;
La nostra istanza di owncloud ha abilitato il modulo per i contatti, quello per il calendario ed anche un modulo per le todolist, vediamo come usarli:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039; Caricando i tuoi dati ti stai fidando del proprietario del server e di chi ha accesso alla macchina, chiunque con un accesso alla macchina potrà leggere i dati caricati&lt;br /&gt;
&lt;br /&gt;
==Contatti==&lt;br /&gt;
La tecnologia che OC usa per syncronizzare il contatti è [https://en.wikipedia.org/wiki/CardDAV carddav], il nostro server forza l&#039;uso di HTTPS (connessioni cifrate fra dispositivo e server verificate da StarCom) quindi i dati non viaggiano mai in &amp;quot;chiaro&amp;quot; sulla rete, nè Internet ne eigenNet. &lt;br /&gt;
====Cosa ci serve:====&lt;br /&gt;
* Uno smartphone/computer/tablet o qualsiasi cosa che possa usare carddav e abbia una rubrica&lt;br /&gt;
* Per Android l&#039;app [https://f-droid.org/repository/browse/?fdfilter=davdroid&amp;amp;fdid=at.bitfire.davdroid Davdroid] installabile da [https://f-droid.org/about/ F-droid] (Un repository aggiuntivo per applicazioni OpenSource per android)&lt;br /&gt;
* Un account sul nostro [https://cloud.eigenlab.org/owncloud/ Owncloud]&lt;br /&gt;
* Internet/eigenNet&lt;br /&gt;
&lt;br /&gt;
E ora con ordine:&lt;br /&gt;
# [[Installare F-droid]]&lt;br /&gt;
# Cerca l&#039;app &#039;Davdroid ed installala&lt;br /&gt;
# Apri Davdroid&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Davdroid.png| Pigia sulla chiave col + &lt;br /&gt;
File:DavdroidLogin.png&lt;br /&gt;
File:DavLogin.png                                                                                                                                                                              &lt;br /&gt;
File:DavNext.png|L&#039;indirizzo da inserire è cloud.eigenlab.org e le credenziali personali&lt;br /&gt;
File:DavContacts.png|Seleziona le rubriche che vuoi sincronizzare, ce ne possono essere più di una&lt;br /&gt;
File:DavFinal.png &lt;br /&gt;
File:Accounts.png&lt;br /&gt;
File:DavDatails.png&lt;br /&gt;
File:DavAccountDetails.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Calendario==&lt;br /&gt;
Tutto uguale ma seleziona&lt;br /&gt;
[[File:DavCal.png|miniatura|none]]&lt;br /&gt;
==Note==&lt;br /&gt;
Tutto uguale ma selezionanone&lt;br /&gt;
[[File:DavNotes.png    |miniatura|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:HowTo]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Foxtrot&amp;diff=4561</id>
		<title>Foxtrot</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Foxtrot&amp;diff=4561"/>
		<updated>2016-12-16T21:51:56Z</updated>

		<summary type="html">&lt;p&gt;Kiba: Redirect alla pagina KVM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[KVM]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Lista_dei_server_di_eigenNet&amp;diff=4560</id>
		<title>Lista dei server di eigenNet</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Lista_dei_server_di_eigenNet&amp;diff=4560"/>
		<updated>2016-12-16T21:51:41Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa è la lista dei [[server]] e dei relativi servizi attivi sulla rete [[eigenNet]].&lt;br /&gt;
Ogni server è raggiungibile internamente come $(nomeserver).eigenlab.org, esternamente solo i server con IP pubblico.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Server autogestiti&lt;br /&gt;
|- &lt;br /&gt;
! Host !! Virtuale !! Utilizzo&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[Foxtrot]]&lt;br /&gt;
| Hypervisor [[KVM]].&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;|[[Foxtrot]]&lt;br /&gt;
|[[Curry]]&lt;br /&gt;
|Webserver che ospita i siti di [https://exploitpisa.org/ exploit] e di [http://eigenlab.org eigenlab], questa wiki e il [[Pad|pad]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Prezzemolo]]&lt;br /&gt;
|Database.&lt;br /&gt;
|-&lt;br /&gt;
|[[Zenzero]]&lt;br /&gt;
|Chat con [[XMPP]] e [[IRC]]; [[Email|mailserver]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Cannella]]&lt;br /&gt;
| Server [[DNS]]&lt;br /&gt;
|-&lt;br /&gt;
|whiteroom&lt;br /&gt;
|N/A&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[Bamboo]]&lt;br /&gt;
|Calcoli e simulazioni, [[compilazione]], home e [[Bamboo#Sito_web_personale|homepage degli utenti]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Bamboo]]&lt;br /&gt;
|[[GitLab]]&lt;br /&gt;
|Piattaforma di sviluppo collettivo con [[Git]].&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[Eolo]]&lt;br /&gt;
|[[Routing EigenNet|Routing]], [[VPN]].&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[BitArno]]&lt;br /&gt;
|[[Cloud]], streaming, bitTorrent.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[[Moca]]&lt;br /&gt;
|[[DNS]], DHCP, infrastruttura in Gagno.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|AM2-PC&lt;br /&gt;
|PC comune situato nell&#039;aula studio (AM2) di [[Exploit]]; per navigare, [[Scansione|scansionare]], stampare e [[Rilegatura|rilegare]] libri e appunti, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:eigenNet]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4559</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4559"/>
		<updated>2016-12-15T16:03:12Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; è un protocollo di chat federato: questo significa che se hai un&#039;utenza registrata su un determinato server potrai comunque parlare con gli utenti dell&#039;intera rete XMPP, perché i server si parlano fra loro.&lt;br /&gt;
&lt;br /&gt;
XMPP fornisce una chat singola o di gruppo (detto anche &#039;&#039;&amp;quot;stanza&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;chatroom&amp;quot;&#039;&#039;, &#039;&#039;&amp;quot;conference&amp;quot;&#039;&#039; o &#039;&#039;&amp;quot;MUC&amp;quot;&#039;&#039;) ed ha una rubrica per i contatti; inoltre è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però 2 restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039; (cioè direttamente dal client): se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con [[PGP]] e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza ==&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre con [https://gajim.org/ Gajim] (desktop) e [https://conversations.im/ Conversations]  (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che ancora poco supportato da altri client. &lt;br /&gt;
&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
Come si fa in generale a:&lt;br /&gt;
* cambiare la password?&lt;br /&gt;
* trovare nuovi contatti / chatroom?&lt;br /&gt;
* gestione sullo smartfono?&lt;br /&gt;
&lt;br /&gt;
=== Gajim ===&lt;br /&gt;
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]&lt;br /&gt;
&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.&lt;br /&gt;
&lt;br /&gt;
==== Installazione ====&lt;br /&gt;
In Arch bisogna avere l&#039;AUR abilitato e installare i pacchetti con: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;yaourt -S gajim gajim-plugin-omemo python2-qrcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In Debian stable bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;: &amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungere la riga &amp;lt;code&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/code&amp;gt; nel file; poi salvarlo e chiuderlo e dare i comandi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sudo aptitude update&lt;br /&gt;
&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&lt;br /&gt;
&lt;br /&gt;
sudo aptitude install python-qrcode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configurazione ====&lt;br /&gt;
Aprendolo per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;. C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare. Finito. &lt;br /&gt;
&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt; per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un&#039;altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot; (e anche un&#039;altra opzione più criptica &amp;quot;rendi metacontatti&amp;quot; che non so a cosa serva.)&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si può entrare in una MUC dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt;&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;. Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot; gajim entrerà nella stanza al login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella MUC &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzato, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare &amp;lt;code&amp;gt;farstream-0.1&amp;lt;/code&amp;gt; mentre in Debian e derivate &amp;lt;code&amp;gt;python-farstream&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;gstreamer-plugins-bad&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Plugin ====&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Client icons: Mostra una icona che rapresenta il client usato, nell&#039;elenco dei contatti.&lt;br /&gt;
* Emoticons pack: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
* Httpupload: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* Url image preview: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Olugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Riavviare Gajim dopo aver abilitato i plugin.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== OMEMO ====&lt;br /&gt;
Plugin updater chiederà di aggiornare il plugin OMEMO perchè è stato installato tramite il gestore di pacchetti e non internamente. Va risposto sempre di no.&lt;br /&gt;
&lt;br /&gt;
Dopo aver abilitato il plugin, Gajim si impallerà qualche secondo per generare le chiavi. Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce, da cui si può abilitare omemo nella chat. Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, ad es. uno smartphone con Conversations, più un pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt;, dove è presente anche il QR-code utilizzato nella verifica da Conversations.&lt;br /&gt;
&lt;br /&gt;
==== Problemi ====&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.&lt;br /&gt;
&lt;br /&gt;
=== Conversations=== &lt;br /&gt;
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]&lt;br /&gt;
&lt;br /&gt;
Il migliore client per Android per numero di XEP integrate.&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, lo swipe su una di queste consente di terminare una chat. Se dovessi farlo per errore non preoccuparti, non hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; mostra l&#039;elenco dei contatti e delle MUC. Nelle rispettive schede si possono aggiungere amici e chat di gruppo.&lt;br /&gt;
&lt;br /&gt;
Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar&lt;br /&gt;
&lt;br /&gt;
Conversations di default non mostra se i contatti sono online oppure offline, ma si può in parte porre rimedio nelle impostazioni: &amp;quot;il pulsante invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto (verde-disponibile rosso-occupato arancione-assente grigio-offline), &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
===== OMEMO =====&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. È buona norma verificare questa fingerprint tramite altro mezzo. Tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, poi tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt; A questo punto si aprirà l&#039;app per fotografare il QR. I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio.&lt;br /&gt;
&lt;br /&gt;
Si visualizza il QR della propria fingerprint cliccando sul proprio avatar oppure andando in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot; sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Integrazione in Sailfish OS =====&lt;br /&gt;
Sailfish ha una whitelist di applicazioni che possono mostrare notifiche di sistema. Alla versione attuale (2.0.5 Haapajoki) Conversations non è in questa lista, quindi non mostrerà notifiche, nè vibrazione o led. Per risolvere si può installare &#039;&#039;Android apps notifications&#039;&#039; da Warehouse (openrepos.net) e poi abilitare Conversations nel nuovo menù in Settings, oppure modificare da root il file &amp;lt;code&amp;gt;/usr/share/lipstick/androidnotificationpriorities&amp;lt;/code&amp;gt; e aggiungere le righe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Conversations;chat,chat_exists&lt;br /&gt;
&lt;br /&gt;
package:eu.siacs.conversations;chat,chat_exists&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
È necessario riavviare Home Screen affinchè le modifiche abbiano effetto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La tastiera di sistema non ha il supporto alle emoji, e Dolphin keyboard non sembra funzionare bene con Conversation. Per avere le emoticon si può installare una tastiera android da F-droid (ad esempio &#039;&#039;AnySoftKeyboard&#039;&#039;) e poi abilitare la nuova tastiera in Settings dopo aver installato &#039;&#039;Aliendalvik Control&#039;&#039; da Warehouse.&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin.&lt;br /&gt;
===XabberDev===&lt;br /&gt;
XabberDev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4545</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4545"/>
		<updated>2016-12-06T01:03:20Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; è un protocollo di chat federato: questo vuol dire che chiunque abbia un&#039;istanza di un server XMPP può comunicare con il resto dell&#039;intera rete anche se gli account di chat sono su server diversi. &lt;br /&gt;
&lt;br /&gt;
XMPP permette la messaggistica istantanea (chat) singola o a gruppi, ha una rubrica per i contatti, ed è tanto estensibile da permettere lo scambio di file, comunicazioni criptate, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però 2 restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta.&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039;, se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo (chiamate anche chatroom, conferenze o stanze).&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con PGP e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza: OTR, PGP, OMEMO==&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre con [https://gajim.org/ Gajim] (desktop) e [https://conversations.im/ Conversations]  (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che ancora poco supportato da altri client. &lt;br /&gt;
&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversations lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
Come si fa in generale a:&lt;br /&gt;
* cambiare la password?&lt;br /&gt;
* trovare nuovi contatti / chatroom?&lt;br /&gt;
* gestione sullo smartfono?&lt;br /&gt;
&lt;br /&gt;
=== Gajim ===&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.&lt;br /&gt;
&lt;br /&gt;
===== Installazione =====&lt;br /&gt;
In Arch &amp;lt;code&amp;gt;gajim gajim-omemo python2-qrcode&amp;lt;/code&amp;gt; &#039;&#039;(da controllare)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In debian stable bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungere la riga &amp;lt;code&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poi dare i comandi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo aptitude update&lt;br /&gt;
&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&lt;br /&gt;
&lt;br /&gt;
sudo aptitude install python-qrcode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Configurazione =====&lt;br /&gt;
Aprendolo per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;. C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare. Finito. &lt;br /&gt;
&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt; per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un&#039;altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot; (e anche un&#039;altra opzione più criptica &amp;quot;rendi metacontatti&amp;quot; che non so a cosa serva.)&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si può entrare in una MUC dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt;&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;. Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot; gajim entrerà nella stanza al login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella MUC &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzato, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch &amp;lt;code&amp;gt;farstream-0.1&amp;lt;/code&amp;gt; e in Debian e derivate &amp;lt;code&amp;gt;python-farstream e gstreamer-plugins-bad&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Plugin =====&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Client icons: Mostra una icona che rapresenta il client usato, nell&#039;elenco dei contatti.&lt;br /&gt;
* Emoticons pack: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
* Httpupload: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* Url image preview: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Olugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Riavviare Gajim dopo aver abilitato i plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== OMEMO =====&lt;br /&gt;
Plugin updater chiederà di aggiornare il plugin OMEMO perchè è stato installato tramite il gestore di pacchetti e non internamente. Va risposto sempre di no.&lt;br /&gt;
&lt;br /&gt;
Dopo aver abilitato il plugin, Gajim si impallerà qualche secondo per generare le chiavi. Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce. Lì si può abilitare omemo nella chat. Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, es. smartphone con Conversations. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt;, dove è presente anche il QR-code utilizzato nella verifica da Conversations.&lt;br /&gt;
&lt;br /&gt;
===== Problemi =====&lt;br /&gt;
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]&lt;br /&gt;
&lt;br /&gt;
Mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo  corretto.&lt;br /&gt;
&lt;br /&gt;
=== Conversations=== &lt;br /&gt;
Il migliore client per Android per numero di XEP integrate.&lt;br /&gt;
&lt;br /&gt;
La prima schermata mostra l&#039;elenco delle chat aperte, lo swipe su una di queste consente di terminare una chat. Se dovessi farlo per errore non preoccuparti, non hai eliminato il contatto e puoi riaprire la chat nell&#039;elenco dei contatti.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; mostra l&#039;elenco dei contatti e delle MUC. Nelle rispettive schede si possono aggiungere amici e chat di gruppo.&lt;br /&gt;
&lt;br /&gt;
Cambiare la propria password: &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt; → Menu → Cambia password&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Impostare un avatar:  &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi clicca sull&#039;avatar&lt;br /&gt;
&lt;br /&gt;
Conversations di default non mostra se i contatti sono online oppure offline, ma si può in parte porre rimedio nelle impostazioni: &amp;quot;il pulsante invio indica lo stato&amp;quot; colora il pulsante nella chat a seconda dello stato del contatto (verde-disponibile rosso-occupato arancione-assente grigio-offline), &amp;quot;mostra tag dinamici&amp;quot; mostra queste informazioni nell&#039;elenco dei contatti, e selezionando &amp;lt;code&amp;gt;Menu → Nascondi i contatti offline&amp;lt;/code&amp;gt; saranno visibili solo i contatti online.&lt;br /&gt;
&lt;br /&gt;
===== OMEMO =====&lt;br /&gt;
Alla prima conversazione con un client che supporta OMEMO chiederà di abilitare la chiave del contatto per poter iniziare a chattare. È buona norma verificare questa fingerprint tramite altro mezzo. Tuttavia Conversations considera una chiave abilitata come &amp;quot;non verificata&amp;quot; (perchè non si fida del fatto che gli utenti verificano davvero quella chiave prima di abilitarla) e mostra un lucchetto rosso nella conversazione. La verifica avviene tramite la scansione di un QR code in cui è contenuta la chiave dell&#039;amico.&lt;br /&gt;
&lt;br /&gt;
Per verificare la chiave si può cliccare sull&#039;avatar nella chat oppure andare in &amp;lt;code&amp;gt;Menu → Dettagli del contatto&amp;lt;/code&amp;gt;, poi tenere premuto sulla fingerprint omemo e selezionare &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt; A questo punto si aprirà l&#039;app per fotografare il QR. I dispositivi con una fotocamera vecchia e scarsa potrebbero non riuscire a mettere a fuoco un QR su un piccolo schermo, in quel caso si può inquadrare il QR zoommato sullo schermo di un computer oppure stamparlo su un foglio.&lt;br /&gt;
&lt;br /&gt;
Si visualizza il QR della propria fingerprint cliccando sul proprio avatar oppure andando in &amp;lt;code&amp;gt;Menu → Gestisci utenti → &amp;lt;tuo utente&amp;gt;&amp;lt;/code&amp;gt; e poi &amp;lt;code&amp;gt;Menu → Show 2D Barcode&amp;lt;/code&amp;gt; Nella stessa pagina è possibile visualizzare la propria fingerprint OMEMO in forma esadecimale, e più in basso, sotto &amp;quot;Altri dispositivi&amp;quot; sono presenti le fingerprint dei propri dispositivi, es. pc con Gajim. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione. Allo stesso modo della verifica della fingerprint di un contatto, tenendo premuto apparirà &amp;lt;code&amp;gt;Scan 2D Barcode&amp;lt;/code&amp;gt;.&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin.&lt;br /&gt;
===XabberDev===&lt;br /&gt;
XabberDev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4544</id>
		<title>XMPP</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=XMPP&amp;diff=4544"/>
		<updated>2016-12-05T01:15:54Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPP&#039;&#039;&#039; è un protocollo di chat federato: questo vuol dire che chiunque abbia un&#039;istanza di un server XMPP può comunicare con il resto dell&#039;intera rete anche se gli account di chat sono su server diversi. &lt;br /&gt;
&lt;br /&gt;
XMPP permette la messaggistica istantanea (chat) singola o a gruppi, ha una rubrica per i contatti, ed è tanto estensibile da permettere lo scambio di file, comunicazioni criptate, e molto altro ancora.&lt;br /&gt;
&lt;br /&gt;
== Il nostro servizio XMPP ==&lt;br /&gt;
Abbiamo installato [https://en.wikipedia.org/wiki/Prosody_(software) Prosody] sopra [[Zenzero]].&lt;br /&gt;
Il server che abbiamo installato ha però 2 restrizioni importanti: &lt;br /&gt;
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;&lt;br /&gt;
* I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.&lt;br /&gt;
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta.&lt;br /&gt;
&lt;br /&gt;
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione &#039;in-band&#039;, se vuoi un&#039;account scrivi a &amp;lt;code&amp;gt;info[at]eigenlab[dot]org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Estensioni ===&lt;br /&gt;
Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:&lt;br /&gt;
* MUC [http://xmpp.org/extensions/xep-0045.html  XEP-0045] &amp;lt;code&amp;gt;conference.eigenlab.org&amp;lt;/code&amp;gt; per le chat di gruppo.&lt;br /&gt;
* SMACKS [https://modules.prosody.im/mod_smacks.html XEP-0198] per riesumare una sessione interrotta per la caduta della connessione.&lt;br /&gt;
* MAM [https://modules.prosody.im/mod_mam.html XEP-0313] per l&#039;archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po&#039;. Ogni utente può scegliere la sua configurazione per questo modulo.&lt;br /&gt;
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni. &lt;br /&gt;
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo &#039;&#039;&amp;quot;il contatto sta scrivendo&amp;quot;&#039;&#039; quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...&lt;br /&gt;
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l&#039;upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con PGP e l&#039;oggetto della mail). Consente l&#039;invio di foto e file nelle MUC.&lt;br /&gt;
&lt;br /&gt;
== Sicurezza: OTR, PGP, OMEMO==&lt;br /&gt;
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra &#039;&#039;dispositivi diversi usati dallo stesso account&#039;&#039;, mentre con [https://gajim.org/ Gajim] (desktop) e [https://conversations.im/ Conversations]  (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L&#039;unica pecca è che ancora poco supportato da altri client. &lt;br /&gt;
&lt;br /&gt;
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.&lt;br /&gt;
&lt;br /&gt;
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. &lt;br /&gt;
Conversation lo supporta di default, anche qui bisogna verificare la chiave del contatto.&lt;br /&gt;
&lt;br /&gt;
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.&lt;br /&gt;
&lt;br /&gt;
== Guida ==&lt;br /&gt;
Come si fa in generale a:&lt;br /&gt;
* cambiare la password?&lt;br /&gt;
* trovare nuovi contatti / chatroom?&lt;br /&gt;
* gestione sullo smartfono?&lt;br /&gt;
&lt;br /&gt;
=== Gajim ===&lt;br /&gt;
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.&lt;br /&gt;
&lt;br /&gt;
===== Installazione =====&lt;br /&gt;
In Arch &amp;lt;code&amp;gt;gajim gajim-omemo python2-qrcode&amp;lt;/code&amp;gt; &#039;&#039;(da controllare)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In debian stable bisogna abilitare &#039;&#039;jessie-backports&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt; e aggiungere la riga &amp;lt;code&amp;gt;deb http://ftp.debian.org/debian jessie-backports main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poi dare i comandi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo aptitude update&lt;br /&gt;
&lt;br /&gt;
sudo aptitude -t jessie-backports install gajim-omemo gajim&lt;br /&gt;
&lt;br /&gt;
sudo aptitude install python-qrcode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Configurazione =====&lt;br /&gt;
Aprendolo per la prima volta devi configurare il tuo account dal menu &amp;lt;code&amp;gt;Modifica → account&amp;lt;/code&amp;gt;. C&#039;è sempre un account &#039;Local&#039; ma non so a cosa serva. Tu aggiungi un nuovo account e metti l&#039;ID Jabber seguito da &amp;lt;code&amp;gt;@eigenlab.org&amp;lt;/code&amp;gt; e la password dell&#039;utenza che ti sei fatta creare. Finito. &lt;br /&gt;
&lt;br /&gt;
Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu &amp;lt;code&amp;gt;Azioni → aggiungi un contatto&amp;lt;/code&amp;gt; inserisci l&#039;ID Jabber del tuo amico &amp;lt;code&amp;gt;pippo@eigenlab.org&amp;lt;/code&amp;gt; per &amp;quot;chiedergli l&#039;amicizia&amp;quot; e quando anche lui te l&#039;avrà accordata potrete chattare.&lt;br /&gt;
&lt;br /&gt;
Se trascini un contatto sopra un&#039;altro compare l&#039;utilissima opzione &amp;quot;invia contatto di Beppe a Anna&amp;quot; (e anche un&#039;altra opzione più criptica &amp;quot;rendi metacontatti&amp;quot; che non so a cosa serva.)&lt;br /&gt;
&lt;br /&gt;
Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare &amp;lt;code&amp;gt;Account → Generale → Receive conversations from other resources&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Per cambiare la propria password, dal menu &amp;lt;code&amp;gt;Account -&amp;gt; Operazioni amministrative → cambia la password&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si può entrare in una MUC (chatroom o stanza) dal menu &amp;lt;code&amp;gt;Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta&amp;lt;/code&amp;gt;&lt;br /&gt;
Nella finestra che apparirà conviene selezionare &amp;quot;Aggiungi questa stanza ai segnalibri&amp;quot;, che rende accessibile la stanza dal menu &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo&amp;lt;/code&amp;gt;. Selezionando &amp;quot;Entra automaticamente in questa stanza alla connessione&amp;quot; gajim entrerà nella stanza al login.&lt;br /&gt;
&lt;br /&gt;
Per non vedere i cambiamenti di stato di tutti i contatti nella MUC &amp;lt;code&amp;gt;Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: &amp;quot;nessuno&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Se sei non in linea o desincronizzato, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando &amp;quot;diponibile&amp;quot; tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.&lt;br /&gt;
&lt;br /&gt;
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch &amp;lt;code&amp;gt;farstream-0.1&amp;lt;/code&amp;gt; e in Debian e derivate &amp;lt;code&amp;gt;python-farstream e gstreamer-plugins-bad&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Plugin =====&lt;br /&gt;
I nuovi plugin si installano dal menu &amp;lt;code&amp;gt;Modifica → Plugin → Available&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda &amp;quot;installed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Client icons: Mostra una icona che rapresenta il client usato, nell&#039;elenco dei contatti.&lt;br /&gt;
* Emoticons pack: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra &amp;lt;code&amp;gt;Modifica → plugin → emoticon&amp;lt;/code&amp;gt;, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in &amp;lt;code&amp;gt;Preferenze → emoticon&amp;lt;/code&amp;gt; e seleziona Twemoji resized.&lt;br /&gt;
* Httpupload: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, &amp;quot;send file via http&amp;quot; e &amp;quot;send image via http&amp;quot;. Il vecchio trasferimento da client a client è ancora disponibile con il pulsante &amp;quot;invia dei file&amp;quot;.&lt;br /&gt;
* Url image preview: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in &amp;lt;code&amp;gt;Modifica → Olugin → Url image preview → Configura&amp;lt;/code&amp;gt; sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull&#039;immagine si può aprirla, salvarla o copiare il link originale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Riavviare Gajim dopo aver abilitato i plugin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== OMEMO =====&lt;br /&gt;
Dopo averlo abilitato il plugin si impallerà qualche secondo per generare le chiavi. Nella finestra di chat, se il client del contatto lo supporta, appare l&#039;icona con il pesce. Lì si può abilitare omemo nella chat. Cliccando &amp;quot;fingerprints&amp;quot; si possono verificare le fingerprint del contatto. Nella finestra &amp;quot;own devices&amp;quot; ci sono invece le fingerprint dei propri dispositivi, es. smartphone con conversation. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.&lt;br /&gt;
&lt;br /&gt;
È possibile visualizzare la propria fingerprint da &amp;lt;code&amp;gt;Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org&amp;lt;/code&amp;gt;, dove è presente anche il qr-code utilizzato nella verifica da Conversations.&lt;br /&gt;
&lt;br /&gt;
=== Conversations=== &lt;br /&gt;
Il migliore client per Android per numero di XEP integrate.&lt;br /&gt;
===Telepathy===&lt;br /&gt;
Integrato in KDE, manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.&lt;br /&gt;
===Pidgin===&lt;br /&gt;
Pidgin.&lt;br /&gt;
===XabberDev===&lt;br /&gt;
XabberDev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoria:EigenNet]]&lt;br /&gt;
[[Categoria:Autoformazione]]&lt;br /&gt;
[[Categoria:Comunicazione sicura]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=525</id>
		<title>KVM</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=525"/>
		<updated>2016-02-13T00:11:45Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KVM è un&#039;infrastruttura di virtualizzazione del kernel Linux. KVM attualmente supporta una completa virtualizzazione usando Intel VT o AMD-V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configurazione =&lt;br /&gt;
100GB disco qcow2 e 1GB swap, rete bridge breig0, server VNC (non interferisce con le regole di iptables in basso), dispositivo RNG /dev/random, processore opteron_g3, &amp;lt;emulator&amp;gt; /usr/bin/kvm&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==tasksel==&lt;br /&gt;
--- ambiente desktop, --- server di stampa, +++ server ssh&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
apt-get install htop iotop jnettop git p7zip lynis colordiff tmux wipe netcat-openbsd tcpdump iperf w3m pv nmap zerofree iputils-tracepath parted logcheck mosh rsync mtr-tiny curl command-not-found checksecurity debsums rkhunter clamav snoopy build-essential checkinstall cmake dpkg-dev diffutils monkeysphere iptables-persistent vim fdupes ssmtp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==software per log e sicurezza==&lt;br /&gt;
Possono essere configurati per mandare mail, per ora scrivono in /var/log/ e in /var/mail/eigen&lt;br /&gt;
* logcheck: scrive un riassunto dei log, cercando di eliminare tutte le righe inutili.&lt;br /&gt;
* checksecurity: fa una serie di controlli su problemi di sicurezza comuni&lt;br /&gt;
* tiger: controlla la configurazione del sistema alla ricerca di problemi&lt;br /&gt;
* rkhunter: cerca rootkit sul sitema&lt;br /&gt;
* unhide: cerca processi nascosti&lt;br /&gt;
* debsums: controlla gli hash di tutti i pacchetti installati (binari e file di configurazione)&lt;br /&gt;
* clamav: antivirus&lt;br /&gt;
* snoopy: logga tutte le execve() con syslog VIVA LA PARANOIA!! :D&lt;br /&gt;
&lt;br /&gt;
Alcuni sono pesanti ed è inutile farli girare sempre&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
chmod -x /etc/cron.daily/tripwire&lt;br /&gt;
chmod +x /etc/cron.d/logcheck&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==aggiornare i pacchetti==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
aptitude update &amp;amp;&amp;amp; aptitude full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per aggiornare la cache di apt-file e command-not-found&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
apt-file update&lt;br /&gt;
update-command-not-found&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Modifiche ai file di configurazione: =&lt;br /&gt;
&lt;br /&gt;
====/etc/rkhunter.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#DISABLE_TESTS=suspscan hidden_procs deleted_files packet_cap_apps apps&lt;br /&gt;
DISABLE_TESTS=suspscan deleted_files packet_cap_apps apps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====.bashrc====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
export LS_OPTIONS=&#039;--color=auto&#039;&lt;br /&gt;
eval &amp;quot;`dircolors`&amp;quot;&lt;br /&gt;
alias ls=&#039;ls $LS_OPTIONS&#039;&lt;br /&gt;
alias ll=&#039;ls $LS_OPTIONS -l&#039;&lt;br /&gt;
alias l=&#039;ls $LS_OPTIONS -lA&#039;&lt;br /&gt;
&lt;br /&gt;
HISTSIZE=500000&lt;br /&gt;
HISTFILESIZE=500000000&lt;br /&gt;
&lt;br /&gt;
force_color_prompt=yes&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$force_color_prompt&amp;quot; ]; then&lt;br /&gt;
    if [ -x /usr/bin/tput ] &amp;amp;&amp;amp; tput setaf 1 &amp;gt;&amp;amp;/dev/null; then&lt;br /&gt;
        # We have color support; assume it&#039;s compliant with Ecma-48&lt;br /&gt;
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such&lt;br /&gt;
        # a case would tend to support setf rather than setaf.)&lt;br /&gt;
        color_prompt=yes&lt;br /&gt;
    else&lt;br /&gt;
        color_prompt=&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$color_prompt&amp;quot; = yes ]; then&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &#039;&lt;br /&gt;
else&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\u@\h:\w\$ &#039;&lt;br /&gt;
fi&lt;br /&gt;
unset color_prompt force_color_prompt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/ssh/sshd_config====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
AuthorizedKeysFile /var/lib/monkeysphere/authorized_keys/%u&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Per adesso c&#039;è la chiave dei nodi. è da rimuovere dopo aver configurato monkeysphere (aggiungere i certificatori con &amp;quot;monkeysphere-authentication add-identity-certifier $fingerprint&amp;quot; e gli id autorizzati in .monkeysphere/authorized_user_ids)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/root/.ssh/authorized_keys====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCr+J+hhlUnYhKLOnW55aZhJrdHHSQU9XXoP0DcMuvIQ3+SYV6ZZJLMvcdN7puSdkcKiK9DEpsN8uCWfIsxu8LkWJfq6Q/DUBkwvXgKlpbisFaj82ucy7ioiZ1aEc6LMQ/VxG4iHCnGXjWqNLA9sB9lgVDXD29lm8n/i99DHNI8TLHzV9aXz3uR39IqvD4zFBZPSsoDvZ9BsOC6TIUl+Ua0lx1olJxwGawK9he52G55RHhMI+NYj5/wMp80kOhtzRN5F0wRt08Yv2Wu0Kx9akRJBOmI+CcfxxEk7Fcg/kCHG8evS4i4chSMBbBLjOhTk/+Q6nbT3TNIeG2LAtUpml2f node_key@eigenlab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/monkeysphere/monkeysphere-authentication.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
LOG_LEVEL=DEBUG&lt;br /&gt;
RAW_AUTHORIZED_KEYS=&amp;quot;%h/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/crontab====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
0  *    * * *   root    /usr/sbin/monkeysphere-authentication update-users &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/logcheck/logcheck.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#SENDMAILTO=&amp;quot;logcheck&amp;quot;&lt;br /&gt;
SENDMAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/iptables/rules.v4====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
# Generated by iptables-save v1.4.21 on Sat May  2 23:51:15 2015&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [0:0]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [38:3848]&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp -j ACCEPT&lt;br /&gt;
-A INPUT -j REJECT --reject-with icmp-port-unreachable&lt;br /&gt;
COMMIT&lt;br /&gt;
# Completed on Sat May  2 23:51:15 2015&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/iptables/rules.v6====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
# Generated by ip6tables-save v1.4.21 on Sat May  2 23:51:15 2015&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [2:200]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [1:93]&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp -j ACCEPT&lt;br /&gt;
-A INPUT -j REJECT --reject-with icmp6-port-unreachable&lt;br /&gt;
COMMIT&lt;br /&gt;
# Completed on Sat May  2 23:51:15 2015&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/resolv.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
domain eigenlab.org&lt;br /&gt;
search eigenlab.org &lt;br /&gt;
nameserver 10.174.0.100&lt;br /&gt;
nameserver 10.174.0.101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====/etc/network/interfaces====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
#iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 10.175.1.33&lt;br /&gt;
        netmask 255.254.0.0&lt;br /&gt;
        gateway 10.175.133.1&lt;br /&gt;
&lt;br /&gt;
iface eth0 inet6 static&lt;br /&gt;
        address 2a00:1508:1:f010::1:33&lt;br /&gt;
        netmask 64&lt;br /&gt;
        gateway 2a00:1508:1:f010::101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/pam.d/su====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
auth       required   pam_wheel.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/etc/ssmtp/ssmtp.conf====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Config file for sSMTP sendmail&lt;br /&gt;
#&lt;br /&gt;
# The person who gets all mail for userids &amp;lt; 1000&lt;br /&gt;
# Make this empty to disable rewriting.&lt;br /&gt;
root=tuttisuitetti@eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# The place where the mail goes. The actual machine name is required no &lt;br /&gt;
# MX records are consulted. Commonly mailhosts are named mail.domain.com&lt;br /&gt;
mailhub=mail.gandi.net:587&lt;br /&gt;
&lt;br /&gt;
# Where will the mail seem to come from?&lt;br /&gt;
#rewriteDomain=&lt;br /&gt;
&lt;br /&gt;
# The full hostname&lt;br /&gt;
hostname=eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# Are users allowed to set their own From: address?&lt;br /&gt;
# YES - Allow the user to specify their own From: address&lt;br /&gt;
# NO - Use the system generated From: address&lt;br /&gt;
#FromLineOverride=YES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UseTLS=YES&lt;br /&gt;
UseSTARTTLS=YES&lt;br /&gt;
rewriteDomain=eigenlab.org&lt;br /&gt;
AuthUser=tuttisuitetti@eigenlab.org&lt;br /&gt;
AuthPass=Passw0rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Dopo aver clonato =&lt;br /&gt;
bisogna modificare questi file&lt;br /&gt;
* /etc/network/interfaces &#039;&#039;(cambiare ip)&#039;&#039;&lt;br /&gt;
* /etc/hostname	 &#039;&#039;(aggiornare hostname)&#039;&#039;&lt;br /&gt;
* /etc/hosts&lt;br /&gt;
e per evitare che tutte le chiavi del server ssh siano uguali&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
rm /etc/ssh/ssh_host_* &amp;amp;&amp;amp; dpkg-reconfigure openssh-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=507</id>
		<title>KVM</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=507"/>
		<updated>2015-12-10T14:55:48Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KVM è un&#039;infrastruttura di virtualizzazione del kernel Linux. KVM attualmente supporta una completa virtualizzazione usando Intel VT o AMD-V&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configurazione: ====&lt;br /&gt;
100GB disco qcow2 e 1GB swap, rete bridge breig0, server VNC (non interferisce con le regole di iptables in basso), dispositivo RNG /dev/random, processore opteron_g3, &amp;lt;emulator&amp;gt; /usr/bin/kvm&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;tasksel&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
--- ambiente desktop, --- server di stampa, +++ server ssh&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
apt-get install htop iotop jnettop git p7zip lynis colordiff tmux wipe netcat-openbsd tcpdump iperf w3m pv nmap zerofree iputils-tracepath parted logcheck mosh rsync mtr-tiny curl command-not-found checksecurity debsums rkhunter clamav snoopy build-essential checkinstall cmake dpkg-dev diffutils monkeysphere iptables-persistent vim fdupes ssmtp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;software per log e sicurezza&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Possono essere configurati per mandare mail, per ora scrivono in /var/log/ e in /var/mail/eigen&lt;br /&gt;
* logcheck: scrive un riassunto dei log, cercando di eliminare tutte le righe inutili.&lt;br /&gt;
* checksecurity: fa una serie di controlli su problemi di sicurezza comuni&lt;br /&gt;
* tiger: controlla la configurazione del sistema alla ricerca di problemi&lt;br /&gt;
* rkhunter: cerca rootkit sul sitema&lt;br /&gt;
* unhide: cerca processi nascosti&lt;br /&gt;
* debsums: controlla gli hash di tutti i pacchetti installati (binari e file di configurazione)&lt;br /&gt;
* clamav: antivirus&lt;br /&gt;
* snoopy: logga tutte le execve() con syslog VIVA LA PARANOIA!! :D&lt;br /&gt;
&lt;br /&gt;
Alcuni sono pesanti ed è inutile farli girare sempre&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
chmod -x /etc/cron.daily/tripwire&lt;br /&gt;
chmod +x /etc/cron.d/logcheck&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per &#039;&#039;&#039;aggiornare i pacchetti&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
aptitude update &amp;amp;&amp;amp; aptitude full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per aggiornare la cache di apt-file e command-not-found&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
apt-file update&lt;br /&gt;
update-command-not-found&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modifiche ai file di configurazione: ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/rkhunter.conf&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#DISABLE_TESTS=suspscan hidden_procs deleted_files packet_cap_apps apps&lt;br /&gt;
DISABLE_TESTS=suspscan deleted_files packet_cap_apps apps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;.bashrc&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
export LS_OPTIONS=&#039;--color=auto&#039;&lt;br /&gt;
eval &amp;quot;`dircolors`&amp;quot;&lt;br /&gt;
alias ls=&#039;ls $LS_OPTIONS&#039;&lt;br /&gt;
alias ll=&#039;ls $LS_OPTIONS -l&#039;&lt;br /&gt;
alias l=&#039;ls $LS_OPTIONS -lA&#039;&lt;br /&gt;
&lt;br /&gt;
HISTSIZE=500000&lt;br /&gt;
HISTFILESIZE=500000000&lt;br /&gt;
&lt;br /&gt;
force_color_prompt=yes&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$force_color_prompt&amp;quot; ]; then&lt;br /&gt;
    if [ -x /usr/bin/tput ] &amp;amp;&amp;amp; tput setaf 1 &amp;gt;&amp;amp;/dev/null; then&lt;br /&gt;
        # We have color support; assume it&#039;s compliant with Ecma-48&lt;br /&gt;
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such&lt;br /&gt;
        # a case would tend to support setf rather than setaf.)&lt;br /&gt;
        color_prompt=yes&lt;br /&gt;
    else&lt;br /&gt;
        color_prompt=&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$color_prompt&amp;quot; = yes ]; then&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &#039;&lt;br /&gt;
else&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\u@\h:\w\$ &#039;&lt;br /&gt;
fi&lt;br /&gt;
unset color_prompt force_color_prompt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/ssh/sshd_config&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
AuthorizedKeysFile /var/lib/monkeysphere/authorized_keys/%u&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Per adesso c&#039;è la chiave dei nodi. è da rimuovere dopo aver configurato monkeysphere (aggiungere i certificatori con &amp;quot;monkeysphere-authentication add-identity-certifier $fingerprint&amp;quot; e gli id autorizzati in .monkeysphere/authorized_user_ids)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/root/.ssh/authorized_keys&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCr+J+hhlUnYhKLOnW55aZhJrdHHSQU9XXoP0DcMuvIQ3+SYV6ZZJLMvcdN7puSdkcKiK9DEpsN8uCWfIsxu8LkWJfq6Q/DUBkwvXgKlpbisFaj82ucy7ioiZ1aEc6LMQ/VxG4iHCnGXjWqNLA9sB9lgVDXD29lm8n/i99DHNI8TLHzV9aXz3uR39IqvD4zFBZPSsoDvZ9BsOC6TIUl+Ua0lx1olJxwGawK9he52G55RHhMI+NYj5/wMp80kOhtzRN5F0wRt08Yv2Wu0Kx9akRJBOmI+CcfxxEk7Fcg/kCHG8evS4i4chSMBbBLjOhTk/+Q6nbT3TNIeG2LAtUpml2f node_key@eigenlab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/monkeysphere/monkeysphere-authentication.conf&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
LOG_LEVEL=DEBUG&lt;br /&gt;
RAW_AUTHORIZED_KEYS=&amp;quot;%h/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/crontab&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
0  *    * * *   root    /usr/sbin/monkeysphere-authentication update-users &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/logcheck/logcheck.conf&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#SENDMAILTO=&amp;quot;logcheck&amp;quot;&lt;br /&gt;
SENDMAILTO=&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/iptables/rules.v4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
# Generated by iptables-save v1.4.21 on Sat May  2 23:51:15 2015&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [0:0]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [38:3848]&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp -j ACCEPT&lt;br /&gt;
-A INPUT -j REJECT --reject-with icmp-port-unreachable&lt;br /&gt;
COMMIT&lt;br /&gt;
# Completed on Sat May  2 23:51:15 2015&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/iptables/rules.v6&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
# Generated by ip6tables-save v1.4.21 on Sat May  2 23:51:15 2015&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [2:200]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [1:93]&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp -j ACCEPT&lt;br /&gt;
-A INPUT -j REJECT --reject-with icmp6-port-unreachable&lt;br /&gt;
COMMIT&lt;br /&gt;
# Completed on Sat May  2 23:51:15 2015&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/resolv.conf&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
domain eigenlab.org&lt;br /&gt;
search eigenlab.org &lt;br /&gt;
nameserver 10.174.0.100&lt;br /&gt;
nameserver 10.174.0.101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/network/interfaces&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
#iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 10.175.1.33&lt;br /&gt;
        netmask 255.254.0.0&lt;br /&gt;
        gateway 10.175.133.1&lt;br /&gt;
&lt;br /&gt;
iface eth0 inet6 static&lt;br /&gt;
        address 2a00:1508:1:f010::1:33&lt;br /&gt;
        netmask 64&lt;br /&gt;
        gateway 2a00:1508:1:f010::101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/pam.d/su&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
auth       required   pam_wheel.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/ssmtp/ssmtp.conf&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Config file for sSMTP sendmail&lt;br /&gt;
#&lt;br /&gt;
# The person who gets all mail for userids &amp;lt; 1000&lt;br /&gt;
# Make this empty to disable rewriting.&lt;br /&gt;
root=tuttisuitetti@eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# The place where the mail goes. The actual machine name is required no &lt;br /&gt;
# MX records are consulted. Commonly mailhosts are named mail.domain.com&lt;br /&gt;
mailhub=mail.gandi.net:587&lt;br /&gt;
&lt;br /&gt;
# Where will the mail seem to come from?&lt;br /&gt;
#rewriteDomain=&lt;br /&gt;
&lt;br /&gt;
# The full hostname&lt;br /&gt;
hostname=eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# Are users allowed to set their own From: address?&lt;br /&gt;
# YES - Allow the user to specify their own From: address&lt;br /&gt;
# NO - Use the system generated From: address&lt;br /&gt;
#FromLineOverride=YES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UseTLS=YES&lt;br /&gt;
UseSTARTTLS=YES&lt;br /&gt;
rewriteDomain=eigenlab.org&lt;br /&gt;
AuthUser=tuttisuitetti@eigenlab.org&lt;br /&gt;
AuthPass=Passw0rd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dopo aver clonato ====&lt;br /&gt;
bisogna modificare questi file&lt;br /&gt;
* /etc/network/interfaces &#039;&#039;(cambiare ip)&#039;&#039;&lt;br /&gt;
* /etc/hostname	 &#039;&#039;(aggiornare hostname)&#039;&#039;&lt;br /&gt;
* /etc/hosts&lt;br /&gt;
e per evitare che tutte le chiavi siano uguali&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
rm /etc/ssh/ssh_host_* &amp;amp;&amp;amp; dpkg-reconfigure openssh-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=506</id>
		<title>KVM</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=KVM&amp;diff=506"/>
		<updated>2015-12-04T13:55:31Z</updated>

		<summary type="html">&lt;p&gt;Kiba: Creata pagina con &amp;quot;KVM è un&amp;#039;infrastruttura di virtualizzazione del kernel Linux. KVM attualmente supporta una completa virtualizzazione usando Intel VT o AMD-V  Configurazione: 100GB disco qcow...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KVM è un&#039;infrastruttura di virtualizzazione del kernel Linux. KVM attualmente supporta una completa virtualizzazione usando Intel VT o AMD-V&lt;br /&gt;
&lt;br /&gt;
Configurazione:&lt;br /&gt;
100GB disco qcow2 e 1GB swap, rete bridge breig0, server VNC (non interferisce con le regole di iptables in basso), dispositivo RNG /dev/random, processore opteron_g3, &amp;lt;emulator&amp;gt; /usr/bin/kvm&lt;br /&gt;
&lt;br /&gt;
tasksel:&lt;br /&gt;
--- ambiente desktop, --- server di stampa, +++ server ssh&lt;br /&gt;
&lt;br /&gt;
apt-get install htop iotop jnettop git p7zip lynis colordiff tmux wipe netcat-openbsd tcpdump iperf w3m pv nmap zerofree iputils-tracepath parted logcheck mosh rsync mtr-tiny curl command-not-found checksecurity debsums rkhunter clamav snoopy build-essential checkinstall cmake dpkg-dev diffutils monkeysphere iptables-persistent vim fdupes ssmtp&lt;br /&gt;
&lt;br /&gt;
software per log e sicurezza: Possono essere configurati per mandare mail, per ora scrivono in /var/log/ e in /var/mail/eigen&lt;br /&gt;
logcheck: scrive un riassunto dei log, cercando di eliminare tutte le righe inutili.&lt;br /&gt;
checksecurity: fa una serie di controlli su problemi di sicurezza comuni&lt;br /&gt;
tiger: controlla la configurazione del sistema alla ricerca di problemi&lt;br /&gt;
rkhunter: cerca rootkit sul sitema&lt;br /&gt;
unhide: cerca processi nascosti&lt;br /&gt;
debsums: controlla gli hash di tutti i pacchetti installati (binari e file di configurazione)&lt;br /&gt;
clamav: antivirus&lt;br /&gt;
snoopy: logga tutte le execve() con syslog VIVA LA PARANOIA!! :D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
alcuni sono pesanti ed è inutile farli girare sempre&lt;br /&gt;
chmod -x /etc/cron.daily/tripwire&lt;br /&gt;
chmod +x /etc/cron.d/logcheck&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per aggiornare i pacchetti&lt;br /&gt;
apt-get update &amp;amp;&amp;amp; aptitude full-upgrade&lt;br /&gt;
&lt;br /&gt;
Per aggiornare la cache di apt-file e command-not-found&lt;br /&gt;
apt-file update&lt;br /&gt;
update-command-not-found&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modifiche ai file di configurazione:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc/rkhunter.conf&lt;br /&gt;
#DISABLE_TESTS=suspscan hidden_procs deleted_files packet_cap_apps apps&lt;br /&gt;
DISABLE_TESTS=suspscan deleted_files packet_cap_apps apps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.bashrc&lt;br /&gt;
export LS_OPTIONS=&#039;--color=auto&#039;&lt;br /&gt;
eval &amp;quot;`dircolors`&amp;quot;&lt;br /&gt;
alias ls=&#039;ls $LS_OPTIONS&#039;&lt;br /&gt;
alias ll=&#039;ls $LS_OPTIONS -l&#039;&lt;br /&gt;
alias l=&#039;ls $LS_OPTIONS -lA&#039;&lt;br /&gt;
&lt;br /&gt;
HISTSIZE=500000&lt;br /&gt;
HISTFILESIZE=500000000&lt;br /&gt;
&lt;br /&gt;
force_color_prompt=yes&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$force_color_prompt&amp;quot; ]; then&lt;br /&gt;
    if [ -x /usr/bin/tput ] &amp;amp;&amp;amp; tput setaf 1 &amp;gt;&amp;amp;/dev/null; then&lt;br /&gt;
        # We have color support; assume it&#039;s compliant with Ecma-48&lt;br /&gt;
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such&lt;br /&gt;
        # a case would tend to support setf rather than setaf.)&lt;br /&gt;
        color_prompt=yes&lt;br /&gt;
    else&lt;br /&gt;
        color_prompt=&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$color_prompt&amp;quot; = yes ]; then&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ &#039;&lt;br /&gt;
else&lt;br /&gt;
    PS1=&#039;${debian_chroot:+($debian_chroot)}\u@\h:\w\$ &#039;&lt;br /&gt;
fi&lt;br /&gt;
unset color_prompt force_color_prompt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc/ssh/sshd_config&lt;br /&gt;
AuthorizedKeysFile /var/lib/monkeysphere/authorized_keys/%u&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&lt;br /&gt;
per adesso c&#039;è la chiave dei nodi. è da rimuovere dopo aver configurato monkeysphere (aggiungere i certificatori con &amp;quot;monkeysphere-authentication add-identity-certifier $fingerprint&amp;quot; e gli id autorizzati in .monkeysphere/authorized_user_ids)&lt;br /&gt;
/root/.ssh/authorized_keys&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCr+J+hhlUnYhKLOnW55aZhJrdHHSQU9XXoP0DcMuvIQ3+SYV6ZZJLMvcdN7puSdkcKiK9DEpsN8uCWfIsxu8LkWJfq6Q/DUBkwvXgKlpbisFaj82ucy7ioiZ1aEc6LMQ/VxG4iHCnGXjWqNLA9sB9lgVDXD29lm8n/i99DHNI8TLHzV9aXz3uR39IqvD4zFBZPSsoDvZ9BsOC6TIUl+Ua0lx1olJxwGawK9he52G55RHhMI+NYj5/wMp80kOhtzRN5F0wRt08Yv2Wu0Kx9akRJBOmI+CcfxxEk7Fcg/kCHG8evS4i4chSMBbBLjOhTk/+Q6nbT3TNIeG2LAtUpml2f node_key@eigenlab&lt;br /&gt;
&lt;br /&gt;
/etc/monkeysphere/monkeysphere-authentication.conf&lt;br /&gt;
LOG_LEVEL=DEBUG&lt;br /&gt;
RAW_AUTHORIZED_KEYS=&amp;quot;%h/.ssh/authorized_keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
/etc/crontab&lt;br /&gt;
0  *    * * *   root    /usr/sbin/monkeysphere-authentication update-users &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc/cron.d/logcheck&lt;br /&gt;
mailto=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
/etc/iptables/rules.v4&lt;br /&gt;
# Generated by iptables-save v1.4.21 on Sat May  2 23:51:15 2015&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [0:0]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [38:3848]&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp -j ACCEPT&lt;br /&gt;
-A INPUT -j REJECT --reject-with icmp-port-unreachable&lt;br /&gt;
COMMIT&lt;br /&gt;
# Completed on Sat May  2 23:51:15 2015&lt;br /&gt;
&lt;br /&gt;
/etc/iptables/rules.v6&lt;br /&gt;
# Generated by ip6tables-save v1.4.21 on Sat May  2 23:51:15 2015&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT DROP [2:200]&lt;br /&gt;
:FORWARD DROP [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [1:93]&lt;br /&gt;
-A INPUT -i lo -j ACCEPT&lt;br /&gt;
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT&lt;br /&gt;
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
-A INPUT -p icmp -j ACCEPT&lt;br /&gt;
-A INPUT -j REJECT --reject-with icmp6-port-unreachable&lt;br /&gt;
COMMIT&lt;br /&gt;
# Completed on Sat May  2 23:51:15 2015&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
domain eigenlab.org&lt;br /&gt;
search eigenlab.org &lt;br /&gt;
nameserver 10.174.0.100&lt;br /&gt;
nameserver 10.174.0.101&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
#iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 10.175.1.33&lt;br /&gt;
        netmask 255.254.0.0&lt;br /&gt;
        gateway 10.175.133.1&lt;br /&gt;
&lt;br /&gt;
iface eth0 inet6 static&lt;br /&gt;
        address 2a00:1508:1:f010::1:33&lt;br /&gt;
        netmask 64&lt;br /&gt;
        gateway 2a00:1508:1:f010::101&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc/pam.d/su&lt;br /&gt;
auth       required   pam_wheel.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc/ssmtp/ssmtp.conf &lt;br /&gt;
#&lt;br /&gt;
# Config file for sSMTP sendmail&lt;br /&gt;
#&lt;br /&gt;
# The person who gets all mail for userids &amp;lt; 1000&lt;br /&gt;
# Make this empty to disable rewriting.&lt;br /&gt;
root=tuttisuitetti@eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# The place where the mail goes. The actual machine name is required no &lt;br /&gt;
# MX records are consulted. Commonly mailhosts are named mail.domain.com&lt;br /&gt;
mailhub=mail.gandi.net:587&lt;br /&gt;
&lt;br /&gt;
# Where will the mail seem to come from?&lt;br /&gt;
#rewriteDomain=&lt;br /&gt;
&lt;br /&gt;
# The full hostname&lt;br /&gt;
hostname=eigenlab.org&lt;br /&gt;
&lt;br /&gt;
# Are users allowed to set their own From: address?&lt;br /&gt;
# YES - Allow the user to specify their own From: address&lt;br /&gt;
# NO - Use the system generated From: address&lt;br /&gt;
#FromLineOverride=YES&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UseTLS=YES&lt;br /&gt;
UseSTARTTLS=YES&lt;br /&gt;
rewriteDomain=eigenlab.org&lt;br /&gt;
AuthUser=tuttisuitetti@eigenlab.org&lt;br /&gt;
AuthPass=Passw0rd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dopo aver clonato la macchina base bisogna modificare questi file&lt;br /&gt;
/etc/network/interfaces		cambiare ip&lt;br /&gt;
/etc/hostname			aggiornare hostname&lt;br /&gt;
/etc/hosts&lt;br /&gt;
rm /etc/ssh/ssh_host_* &amp;amp;&amp;amp; dpkg-reconfigure openssh-server	Per evitare che tutte le chiavi siano uguali&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=RetroShare&amp;diff=487</id>
		<title>RetroShare</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=RetroShare&amp;diff=487"/>
		<updated>2014-06-12T15:02:02Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RetroShare è un software per comunicare con pochi amici fidati (f2f) senza l&#039;utilizzo di server centrali (distribuito, da portatile a portatile) e cifrato.&lt;br /&gt;
&lt;br /&gt;
* [http://retroshare.sourceforge.net/ homepage RetroShare]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/RetroShare wikipedia RetroShare]&lt;br /&gt;
&lt;br /&gt;
=Installazione=&lt;br /&gt;
Alcune delle distribuzioni Linux (ad esempio OpenSUSE) lo distribuiscono direttamente sui loro repository, per altre distribuzioni Linux e per altri sistemi operativi si può scaricare l&#039;eseguibile/pacchetto gia compilato direttamente dal [http://retroshare.sourceforge.net/downloads.html sito ufficiale], oppure lo si può compilare, ma non è semplicissimo.&lt;br /&gt;
&lt;br /&gt;
==Ottenere il sorgente==&lt;br /&gt;
Sei davvero sicuro di volerci provare? Non ti basta la versione scaricabile da [http://retroshare.sourceforge.net/downloads.html qui]?&lt;br /&gt;
&lt;br /&gt;
[http://retroshare.sourceforge.net/wiki/index.php/GetTheSource Qui] ci sono le indicazioni per scaricare il codice sorgente, MAI MAI MAI fidarsi ad installare versioni compilate da sconosciuti e/o trovate all&#039;interno di RetroShare, fidarsi SOLO del sito ufficiale.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install subversion&lt;br /&gt;
 svn co svn://svn.code.sf.net/p/retroshare/code/trunk retroshare-trunk&lt;br /&gt;
&lt;br /&gt;
oppure&lt;br /&gt;
&lt;br /&gt;
  svn co svn://svn.code.sf.net/p/retroshare/code/branches/v0.5.5 retroshare-0.5.5&lt;br /&gt;
&lt;br /&gt;
per avere una versione meno recente ma più stabile.&lt;br /&gt;
&lt;br /&gt;
==Compilare su Linux==&lt;br /&gt;
Sei davvero sicuro di volerci provare? Non ti basta la versione scaricabile da [http://retroshare.sourceforge.net/downloads.html qui]?&lt;br /&gt;
&lt;br /&gt;
Installa millemila dipendenze randomiche, dipendono da quale Linux hai, puoi provar ad installare la lista che c&#039;è sotto per Debian/Ubuntu, poi durante la compilazione compariranno errori per ogni pacchetto necessario da cui capirai quali dipendenze ti mancano.&lt;br /&gt;
&lt;br /&gt;
[http://retroshare.sourceforge.net/wiki/index.php/Compile Compilare su altri OS]&lt;br /&gt;
 &lt;br /&gt;
[http://svn.code.sf.net/p/retroshare/code/trunk/README.txt Indicazioni per Linux] qui consigliano di compilarsi pure rsctrl e retroshare-nogui ma credo che alla maggior parte della gente non servano.&lt;br /&gt;
&lt;br /&gt;
===Compilare RS con interfaccia grafica su Debian Linux o Ubuntu===&lt;br /&gt;
Sei davvero sicuro di volerci provare? Non ti basta la versione scaricabile da [http://retroshare.sourceforge.net/downloads.html qui]?&lt;br /&gt;
&lt;br /&gt;
Questa guida è basata su [http://svn.code.sf.net/p/retroshare/code/trunk/README.txt quella ufficiale], differisce per essere mirata alla compilazione di solo retroshare-GUI cioè del minimo che serve per avere un retroshare con interfaccia grafica.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per compilare:&lt;br /&gt;
&lt;br /&gt;
- installa il software da cui dipende retroshare. Su ubuntu e debian:&lt;br /&gt;
 sudo apt-get install subversion libglib2.0-dev libupnp-dev qt4-dev-tools libqt4-dev libssl-dev libxss-dev \&lt;br /&gt;
 libgnome-keyring-dev libbz2-dev libqt4-opengl-dev libqtmultimediakit1 qtmobility-dev libspeex-dev \&lt;br /&gt;
 libspeexdsp-dev libxslt1-dev libprotobuf-dev protobuf-compiler cmake libcurl4-openssl-dev tclsh libsqlite3-dev&lt;br /&gt;
&lt;br /&gt;
- crea una nuova cartella (es. ~/retroshare-trunk) e scarica il codice sorgente (se non già fatto, come indicato sopra)&lt;br /&gt;
 svn co svn://svn.code.sf.net/p/retroshare/code/branches/v0.5.5 retroshare-0.5.5&lt;br /&gt;
&lt;br /&gt;
oppure, se vuoi provare a compilare l&#039;ultimissima, instabile versione:&lt;br /&gt;
 svn co svn://svn.code.sf.net/p/retroshare/code/trunk retroshare-trunk&lt;br /&gt;
&lt;br /&gt;
- spostati nella nuova cartella&lt;br /&gt;
 cd retroshare-0.5.5&lt;br /&gt;
&lt;br /&gt;
- crea la cartella lib&lt;br /&gt;
 mkdir lib&lt;br /&gt;
&lt;br /&gt;
- c&#039;è un altra dipendenza, sqlcipher, che bisogna compilare perchè non è stato ancora pacchettizato. È richiesto da GXS, il nuovo sistema di cache che avrà RetroShare, che userà sqlcipher per avere un database cifrato&lt;br /&gt;
 cd lib&lt;br /&gt;
 git clone git://github.com/sqlcipher/sqlcipher.git&lt;br /&gt;
 cd sqlcipher&lt;br /&gt;
 ./configure --enable-tempstore=yes CFLAGS=&amp;quot;-DSQLITE_HAS_CODEC&amp;quot; LDFLAGS=&amp;quot;-lcrypto&amp;quot;&lt;br /&gt;
 make&lt;br /&gt;
 cd ../..&lt;br /&gt;
&lt;br /&gt;
A questo punto può avvenire la compilazione delle componenti di retroshare. Ci metterà un po&#039;, a seconda di quanto è veloce il computer.&lt;br /&gt;
&lt;br /&gt;
- libbitdht&lt;br /&gt;
 cd libbitdht/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4 &lt;br /&gt;
&lt;br /&gt;
- openpgpsdk&lt;br /&gt;
 cd ../../openpgpsdk/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
- supportlibs&lt;br /&gt;
 cd ../../supportlibs/pegmarkdown &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
- libretroshare&lt;br /&gt;
 cd ../../libretroshare/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
- retroshare gui&lt;br /&gt;
 cd ../../retroshare-gui/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Compilare RS i plugin su Debian Linux===&lt;br /&gt;
VOIP = Voice Over IP&lt;br /&gt;
&lt;br /&gt;
Sono disponibili diversi plugin, FeedReader, LinksCloud e VOIP.&lt;br /&gt;
&lt;br /&gt;
Il plugin VOIP necessita di qtmobility e libspeexdsp&lt;br /&gt;
 sudo apt-get install qtmobility-dev libspeexdsp-dev&lt;br /&gt;
&lt;br /&gt;
Puoi compilare tutti i plugin insieme&lt;br /&gt;
 cd src/plugins/ &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make&lt;br /&gt;
oppure separatamente, spostandoti nelle relative cartelle, ad esempio&lt;br /&gt;
 cd src/plugins/VOIP &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make&lt;br /&gt;
&lt;br /&gt;
Il risultato della compilazione, i file lib*.so* vanno copiati nella cartella ~/.retroshare/extensions/&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/.retroshare/extensions&lt;br /&gt;
&lt;br /&gt;
 cp -P {FeedReader,LinksCloud,VOIP}/lib*.so* ~/.retroshare/extensions/&lt;br /&gt;
&lt;br /&gt;
 oppure&lt;br /&gt;
 cd VOIP &amp;amp;&amp;amp; cp -P libVOIP.so*  ~/.retroshare/extensions/&lt;br /&gt;
&lt;br /&gt;
Retroshare, come misura di sicurezza, mostra un avviso ogni volta che questi file cambiano, quindi se li hai appena copiato o aggiornato i file non preoccuparti.&lt;br /&gt;
&lt;br /&gt;
===Compilare RS con interfaccia testuale su Debian Linux===&lt;br /&gt;
Prova a seguire le istruzioni presenti [http://svn.code.sf.net/p/retroshare/code/trunk/README.txt qui] (ma perché non usano libssh pacchettizzato che c&#039;è nei repository?).&lt;br /&gt;
&lt;br /&gt;
===Problemi di compilazione===&lt;br /&gt;
Solitamente gli errori sono lamentele per pacchetti mancanti che dovrete installare, sono spesso una quantità [https://www.youtube.com/watch?v=GBACLpkon6Q snervante] di errori simili a questi:&lt;br /&gt;
&lt;br /&gt;
 fatal error: bzlib.h: File o directory non esistente (cioè ti serve libbz2-dev)&lt;br /&gt;
 fatal error: gnome-keyring-1/gnome-keyring.h: File o directory non esistente (cioè ti serve libgnome-keyring-dev)&lt;br /&gt;
 make: /usr/bin/uic-qt4: Command not found (cioè ti serve libqt4-dev-bin)&lt;br /&gt;
 fatal error: QObject: File o directory non esistente (cioè ti serve libqt4-dev)&lt;br /&gt;
 fatal error: X11/extensions/scrnsaver.h: File o directory non esistente (cioè ti serve libxss-dev)&lt;br /&gt;
&lt;br /&gt;
In questo caso dovrete andar a scoprire in quale pacchetto della vostra distribuzione è contenuto il file mancante, ad esempio per Debian potete usare l&#039;ultimo campo di ricerca in fondo a [http://packages.debian.org questa] pagina o per Ubuntu su [http://packages.ubuntu.com questa].&lt;br /&gt;
&lt;br /&gt;
Se alcuni errori non scompaiono dopo aver installato la dipendenza potete provar a ricominciare la compilazione dall&#039;inizio con &lt;br /&gt;
 make clean&lt;br /&gt;
che cancellerà tutti i file compilati, e dunque ricominciare.&lt;br /&gt;
&lt;br /&gt;
Se fin qui non vi siete bloccati per errori randomici (impossibile) potete lanciare RetroShare con&lt;br /&gt;
&lt;br /&gt;
===Lanciare RetroShare===&lt;br /&gt;
&lt;br /&gt;
Aprite la cartella retroshare-trunk/src/retroshare-gui e fate doppio click sul file &amp;quot;RetroShare&amp;quot; sennò potete aprire da terminale:&lt;br /&gt;
 retroshare-trunk/src/retroshare-gui/src/RetroShare 2&amp;gt; /dev/null &amp;amp;&lt;br /&gt;
(il 2&amp;gt; /dev/null &amp;amp; serve per non avere troppo output inutile sul terminale).&lt;br /&gt;
&lt;br /&gt;
===Malfunzionamenti===&lt;br /&gt;
Come quasi tutti i programmi che fanno uso della rete, molti problemi possono essere causati dall&#039;avere l&#039;orologio del pc non sincronizzato con gli orologi dei propri amici, per cui assicuratevi di aver configurato bene l&#039;orologio e il fuso orario di sistema.&lt;br /&gt;
&lt;br /&gt;
=Utilizzo=&lt;br /&gt;
&lt;br /&gt;
La sicurezza di RetroShare è basata sul connettersi direttamente ( in modo non anonimo ) solo ad amici fidati certificando l&#039;identità dei peers, qui sta il fulcro della sua &amp;quot;sicurezza&amp;quot;, nell&#039;essere certi di comunicare direttamente solo con persone fidate.&lt;br /&gt;
&lt;br /&gt;
Dunque RetroShare cerca di impedire che le tue comunicazioni vengano viste da peers di cui non ti fidi (GDF, D1g0s, etc). Se il processo di aggiunta degli amici viene fatto con troppa leggerezza (ad esempio usando le chiavi presenti su un [http://wiki.ninux.org/RetroShare wiki] modificabile da cani e porci) senza verificarne il fingerprint ci si gioca la propria sicurezza e l&#039;utilizzo di RetroShare diventa completamente inutile producendo solo un senso di falsa sicurezza.&lt;br /&gt;
&lt;br /&gt;
Aggiungi solo chiavi [[PGP|PGP/GPG]] che sei sicuro/a essere di amici fidati. Per esser sicuri che una chiave [[PGP|PGP/GPG]] sia di un amico fidato dovresti chiedergli di persona il fingerprint (una stringa di una decina di caratteri e numeri) della sua chiave [[PGP|PGP/GPG]] e poi controllare di aggiungere solo la chiave col fingerprint corrispondente.&lt;br /&gt;
&lt;br /&gt;
==Rischi==&lt;br /&gt;
&lt;br /&gt;
Come in ogni programma e ancor di più in quelli che cercano di proteggere la vostra privacy, ciascuna funzione è concepita per esser utilizzata in un certo modo, non studiarne bene il funzionamento può compromettere seriamente la propria privacy. Come al solito non ci si può fidare di qualcosa che non si conosce perché potrebbe funzionare MOLTO diversamente da come ci si immagina.&lt;br /&gt;
&lt;br /&gt;
===Aggiunta di contatti fidati senza verificarne l&#039;identità===&lt;br /&gt;
Quando si aggiunge il certificato di un amico bisogna essere sicuri al 100% che il certificato sia il suo, il modo più naturale di fare ciò è controllare la catena di fiducia dalla propria chiave alla chiave dell&#039;amico. Tradotto: se hai firmato la sua chiave pgp con la tua chiave pgp verificando di persona che quello che stavi firmando fosse proprio la sua chiave, allora ti puoi fidare; se hai firmato la chiave di un amico in comune che a sua volta ha firmato la chiave di chi stai aggiungendo (in questo modo indicandoti che ne ha verificato la corrispondenza persona-chiave) ti puoi fidare abbastanza (dipende da quanto ti fidi dell&#039;amico in comune e da quanto questo abbia capito come funziona una rete di fiducia).&lt;br /&gt;
&lt;br /&gt;
Riassumendo: o si verificano le firme o si verifica di persona il fingerprint del certificato o il certificato stesso.&lt;br /&gt;
&lt;br /&gt;
Chiaramente se non si fa così ci si espone ad [https://it.wikipedia.org/wiki/Attacco_man_in_the_middle attacchi man in the middle], in cui un tizio malvagio legge in chiaro e senza fatica tutte le comunicazioni private e lo scambio di contenuti che avviene tra te e l&#039;altro amico e nessuno dei due se ne accorgerebbe.&lt;br /&gt;
&lt;br /&gt;
===Assenza di plausible deniability===&lt;br /&gt;
Quando usi messaggi firmati stai certificando a chi leggerà che il messaggio è stato scritto proprio da chi lo firma, e quindi se questo stesso messaggio venisse ricevuto anche da un malintenzionato (ad esempio un backup finito nelle mani sbagliate o una persona che usa il tuo pc o un man in the middle), l&#039;autore non potrebbe negarne la paternità, è firmato con PGP/GPG dunque solo lui ne può essere l&#039;autore e il responsabile.&lt;br /&gt;
====Contromisure====&lt;br /&gt;
Non date il vostro computer a cani porci e simili.&lt;br /&gt;
Mettete i vostri backup solo in posti fidati.&lt;br /&gt;
In casi estremi andate in vettovaglie a dare la vostra chiave publica e privata a tonino (quello che suona le pentole) in modo da poter dimostrare che chiunque avrebbe potuto firmare quel messaggio e non solo voi visto che la chiave privata e&#039; compromessa (Invece di darla a tonino potreste pensare che sia efficace anche pubblicarla su un sito, pero&#039; cosi&#039; potrebbe anche andare a finire in mani smaliziate che potrebbero usarla per decifrare i vostri messaggi (mentre se la date a tonino non credo che lo faccia, pero&#039; credo basti per dimostrare che qualcun&#039;altro avrebbe potuto)) &lt;br /&gt;
&lt;br /&gt;
===Condivisione files===&lt;br /&gt;
Se si vuole condividere un file privato solo con poche persone bisogna fare molta attenzione: in assenza di accortezze mirate è certo che nel giro di pochi minuti quel file potrà essere scaricato da un ampissimo numero di persone.&lt;br /&gt;
&lt;br /&gt;
Anche se il file in questione si trovasse in una cartella in cui è stato disabilitata l&#039;opzione &amp;quot;Directory is accessible by anonymous tunnels from any friend&amp;quot; (che tradotto dal retrosharese vuol dire: il tizio della GdF che è amico dell&#039;amico dell&#039;amico che hai tra gli amici può trovare questo file tramite la funzione cerca e scaricarlo passando dagli amici in comune a te, non capirà che il file glielo passi tu (tu lo passi al tuo amico, che lo passa al suo amico che lo passa al finanziere), ma ne può leggere il contenuto) o se passi il file da dentro una chat, quando la persona a cui vuoi passare il file lo scaricherà questo file verrà salvato nella cartella Downloads, che di default è &amp;quot;accessible by anonymous tunnels from any friend&amp;quot; dunque chiunque al mondo riuscirebbe a trovarlo tramite la funzione cerca ed a scaricarlo. Paradossalmente era meglio allegarlo ad una email. &lt;br /&gt;
&lt;br /&gt;
Per essere sicuri che un file venga condiviso solo con una ristretta cerchia di amici, bisogna che TUTTI in quella ristretta cerchia di amici scarichino il file in una cartella visibile solo alla cerchia ristretta, e non nella cartella di Download (che e` il defualt e per default e&#039; condivisa anche anonimamente(=chiunque puo` scaricare in modo anonimo quello che c&#039;e` dentro)).&lt;br /&gt;
&lt;br /&gt;
===Diffusione di link retroshare://===&lt;br /&gt;
RetroShare permette di ottenere dei link ai contenuti che assomigliano a questo&lt;br /&gt;
 retroshare://file?name=rapina-15-gennaio-2014-poste-via-del-pontiere.pdf&amp;amp;size=51795&amp;amp;hash=a79351527b56663357899a7211dd22d954c00110&lt;br /&gt;
che può essere cifrato quanto volete ma nel testo del link riportato qui sopra è contenuto il nome del file, che spesso è indicatore del contenuto, per cui se volete condividere dei link compromettenti cambiategli la parte name visto che il file non viene identificato dal nome ma dalla dimensione e dall&#039;hash, per esempio il link precedente diventerebbe&lt;br /&gt;
 retroshare://file?name=immanuel_casto-come_e_bella_la_cappella-lyrics.pdf&amp;amp;size=51795&amp;amp;hash=a79351527b56663357899a7211dd22d954c00110&lt;br /&gt;
potete notare hash e size invariati, i vostri amici potranno successivamente rinominare il file&lt;br /&gt;
&lt;br /&gt;
===Chat lobby===&lt;br /&gt;
Nelle chat lobbies pubbliche può entrare chiunque e con il nick che gli pare, per cui non ti puoi fidare di nessuno, i nickname che vedi potrebbero essere falsificati senza difficoltà. Due modi, come esempio: quando sei in una chat lobby puoi cambiare il tuo nickname in qualcos&#039;altro di tuo gradimento; oppure puoi creare una nuova identità (una nuova chiave pgp/gpg) con il nome che desideri e poi entrare nella chat lobby spacciandoti per chi vuoi.&lt;br /&gt;
&lt;br /&gt;
===Tracciamento tramite DHT===&lt;br /&gt;
Aprendo RetroShare di default partecipiamo ad una DHT (si puo&#039; disabilitare), una tabella accessibile pubblicamente in cui pubblichiamo il nostro IP, per semplificare la connessione con gli altri peer. Questo rende molto più efficace la connessione con gli amici ma il fatto di pubblicare il nostro IP permette una geolocalizzazione ogni volta che apriamo RS. Per interrogare la DHT serve conoscere una certa stringa che ci identifica, pare che questa stringa venga comunicata solo agli amici. Il contenuto della DHT può anche essere modificato utilizzando 8 fonti che inseriscono informazioni false usando quella stringa identificativa, dunque possono scriverci dentro un ip sbagliato per farsi contattare dai tuoi amici (che poi non ci comunicano perché la chiave pgp non corrisponde) e segnarsi i loro IP. Gli IP pubblici e statici presenti nel sorgente di RS che servono per fare il bootstrap della DHT, cosa possono sapere su di noi? Quasi zero anche perche` la DHT che viene usata e` quella di bittorrent che potrebbe essere usata per altre 10000 applicazioni diverse quindi l&#039;unica informazione che stai pubblicando e&#039;, &amp;quot;questo id DHT&amp;quot; corrisponde &amp;quot;a questo ip:porta&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Aggiunta di contatti non fidati===&lt;br /&gt;
RetroShare è una rete friend2friend, il caso in cui aggiungi come contatto uno che non è tuo amico non è nemmeno contemplato tra le situazioni in cui difendersi. Se aggiungi un peer non fidato o se un peer clicca su &amp;quot;ricorda la password&amp;quot; quando fa il login su RS (e dunque salta buona parte della sicurezza) o se un peer perde la sua chiave privata di RS (ad esempio lasciando accedere ad altri ad un backup del suo pc) beh, questo contatto malvagio può sapere con chi comunichi, quando sei attivo alla tastiera, chi altro hai aggiunto come amico, può sfogliare parte dei tuoi files, può sapere a quali chat lobby, quali forum e quali canali sei iscritto etc etc.&lt;br /&gt;
&lt;br /&gt;
===Installazione di versioni di RetroShare compilate da estranei===&lt;br /&gt;
All&#039;interno di RS sono molto popolari canali in cui vengono condivise versioni precompilate di RS, ad esempio molti utenti windows utilizzano questi file per avere l&#039;ultimissima versione di RS. Ovviamente chi compila può decidere di modificare RS per far fare al nostro pc qualsiasi cosa lui voglia.&lt;br /&gt;
&lt;br /&gt;
===Leak della chiave PGP/GPG e della password===&lt;br /&gt;
Dobbiamo essere consapevoli che anche RetroShare può avere dei bug (che magari hanno le potenzialità di essere usarti come backdoor, come tutti i software, ma retroshare con la sua crescita [https://www.ohloh.net/p/retroshare/analyses/latest/languages_summary vertiginosa] potrebbe essere peggio) o [https://www.ohloh.net/p/retroshare/contributors sviluppatori] in malafede che introducono backdoors (come tutti i software?) o potremmo aver installato una versione compilata da sconosciuti che possono aver modificato il sorgente. In questo caso sia la chiave privata PGP/GPG che la password che la protegge potrebbero venirci rubati. Senza dubbio è consigliabile usare la chiave di RetroShare solo per RetroShare, in modo che in caso di furto i danni siano limitati e non venga compromessa la chiave principale (usata per decifrare mail, firmare mail, accedere a server etc).&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=RetroShare&amp;diff=486</id>
		<title>RetroShare</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=RetroShare&amp;diff=486"/>
		<updated>2014-06-12T14:35:49Z</updated>

		<summary type="html">&lt;p&gt;Kiba: /* Compilare RS con interfaccia grafica su Debian Linux o Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RetroShare è un software per comunicare con pochi amici fidati (f2f) senza l&#039;utilizzo di server centrali (distribuito, da portatile a portatile) e cifrato.&lt;br /&gt;
&lt;br /&gt;
* [http://retroshare.sourceforge.net/ homepage RetroShare]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/RetroShare wikipedia RetroShare]&lt;br /&gt;
&lt;br /&gt;
=Installazione=&lt;br /&gt;
Alcune delle distribuzioni Linux (ad esempio OpenSUSE) lo distribuiscono direttamente sui loro repository, per altre distribuzioni Linux e per altri sistemi operativi si può scaricare l&#039;eseguibile/pacchetto gia compilato direttamente dal [http://retroshare.sourceforge.net/downloads.html sito ufficiale], oppure lo si può compilare, ma non è semplicissimo.&lt;br /&gt;
&lt;br /&gt;
==Ottenere il sorgente==&lt;br /&gt;
Sei davvero sicuro di volerci provare? Non ti basta la versione scaricabile da [http://retroshare.sourceforge.net/downloads.html qui]?&lt;br /&gt;
&lt;br /&gt;
[http://retroshare.sourceforge.net/wiki/index.php/GetTheSource Qui] ci sono le indicazioni per scaricare il codice sorgente, MAI MAI MAI fidarsi ad installare versioni compilate da sconosciuti e/o trovate all&#039;interno di RetroShare, fidarsi SOLO del sito ufficiale.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install subversion&lt;br /&gt;
 svn co svn://svn.code.sf.net/p/retroshare/code/trunk retroshare-trunk&lt;br /&gt;
&lt;br /&gt;
oppure&lt;br /&gt;
&lt;br /&gt;
  svn co svn://svn.code.sf.net/p/retroshare/code/branches/v0.5.5 retroshare-0.5.5&lt;br /&gt;
&lt;br /&gt;
per avere una versione meno recente ma più stabile.&lt;br /&gt;
&lt;br /&gt;
==Compilare su Linux==&lt;br /&gt;
Sei davvero sicuro di volerci provare? Non ti basta la versione scaricabile da [http://retroshare.sourceforge.net/downloads.html qui]?&lt;br /&gt;
&lt;br /&gt;
Installa millemila dipendenze randomiche, dipendono da quale Linux hai, puoi provar ad installare la lista che c&#039;è sotto per Debian/Ubuntu, poi durante la compilazione compariranno errori per ogni pacchetto necessario da cui capirai quali dipendenze ti mancano.&lt;br /&gt;
&lt;br /&gt;
[http://retroshare.sourceforge.net/wiki/index.php/Compile Compilare su altri OS]&lt;br /&gt;
 &lt;br /&gt;
[http://svn.code.sf.net/p/retroshare/code/trunk/README.txt Indicazioni per Linux] qui consigliano di compilarsi pure rsctrl e retroshare-nogui ma credo che alla maggior parte della gente non servano.&lt;br /&gt;
&lt;br /&gt;
===Compilare RS con interfaccia grafica su Debian Linux o Ubuntu===&lt;br /&gt;
Sei davvero sicuro di volerci provare? Non ti basta la versione scaricabile da [http://retroshare.sourceforge.net/downloads.html qui]?&lt;br /&gt;
&lt;br /&gt;
Questa guida è basata su [http://svn.code.sf.net/p/retroshare/code/trunk/README.txt quella ufficiale], differisce per essere mirata alla compilazione di solo retroshare-GUI cioè del minimo che serve per avere un retroshare con interfaccia grafica.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per compilare:&lt;br /&gt;
&lt;br /&gt;
- installa il software da cui dipende retroshare. Su ubuntu e debian:&lt;br /&gt;
 sudo apt-get install subversion libglib2.0-dev libupnp-dev qt4-dev-tools libqt4-dev libssl-dev libxss-dev \&lt;br /&gt;
 libgnome-keyring-dev libbz2-dev libqt4-opengl-dev libqtmultimediakit1 qtmobility-dev libspeex-dev \&lt;br /&gt;
 libspeexdsp-dev libxslt1-dev libprotobuf-dev protobuf-compiler cmake libcurl4-openssl-dev tclsh libsqlite3-dev&lt;br /&gt;
&lt;br /&gt;
- crea una nuova cartella (es. ~/retroshare-trunk) e scarica il codice sorgente (se non già fatto, come indicato sopra)&lt;br /&gt;
 svn co svn://svn.code.sf.net/p/retroshare/code/branches/v0.5.5 retroshare-0.5.5&lt;br /&gt;
&lt;br /&gt;
oppure, se vuoi provare a compilare l&#039;ultimissima, instabile versione:&lt;br /&gt;
 svn co svn://svn.code.sf.net/p/retroshare/code/trunk retroshare-trunk&lt;br /&gt;
&lt;br /&gt;
- spostati nella nuova cartella&lt;br /&gt;
 cd retroshare-0.5.5&lt;br /&gt;
&lt;br /&gt;
- crea la cartella lib&lt;br /&gt;
 mkdir lib&lt;br /&gt;
&lt;br /&gt;
- c&#039;è un altra dipendenza, sqlcipher, che bisogna compilare perchè non è stato ancora pacchettizato. È richiesto da GXS, il nuovo sistema di cache che avrà RetroShare, che userà sqlcipher per avere un database cifrato&lt;br /&gt;
 cd lib&lt;br /&gt;
 git clone git://github.com/sqlcipher/sqlcipher.git&lt;br /&gt;
 cd sqlcipher&lt;br /&gt;
 ./configure --enable-tempstore=yes CFLAGS=&amp;quot;-DSQLITE_HAS_CODEC&amp;quot; LDFLAGS=&amp;quot;-lcrypto&amp;quot;&lt;br /&gt;
 make&lt;br /&gt;
 cd ../..&lt;br /&gt;
&lt;br /&gt;
A questo punto può avvenire la compilazione delle componenti di retroshare. Ci metterà un po&#039;, a seconda di quanto è veloce il computer.&lt;br /&gt;
&lt;br /&gt;
- libbitdht&lt;br /&gt;
 cd libbitdht/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4 &lt;br /&gt;
&lt;br /&gt;
- openpgpsdk&lt;br /&gt;
 cd ../../openpgpsdk/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
- supportlibs&lt;br /&gt;
 cd ../../supportlibs/pegmarkdown &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
- libretroshare&lt;br /&gt;
 cd ../../libretroshare/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
- retroshare gui&lt;br /&gt;
 cd ../../retroshare-gui/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sono disponibili diversi plugin, FeedReader, LinksCloud e VOIP.&lt;br /&gt;
&lt;br /&gt;
Il plugin VOIP necessita di qtmobility. su debian&lt;br /&gt;
 sudo apt-get install qtmobility-dev&lt;br /&gt;
&lt;br /&gt;
Puoi compilare tutti i plugin insieme&lt;br /&gt;
 cd plugins &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make&lt;br /&gt;
oppure separatamente, spostandoti nelle relative cartelle&lt;br /&gt;
 qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make&lt;br /&gt;
&lt;br /&gt;
Il risultato della compilazione, i file lib*.so* vanno copiati nella cartella ~/.retroshare/extensions/&lt;br /&gt;
&lt;br /&gt;
Retroshare, come misura di sicurezza, mostra un avviso ogni volta che questi file cambiano, quindi se li hai appena copiato o aggiornato i file non preoccuparti&lt;br /&gt;
&lt;br /&gt;
===Compilare RS il plugin VOIP su Debian Linux===&lt;br /&gt;
VOIP = Voice Over IP&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install qtmobility-dev libspeexdsp-dev&lt;br /&gt;
 cd retroshare-trunk/src/plugins/VOIP&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 mkdir -p ~/.retroshare/extensions&lt;br /&gt;
 cp -P libVOIP.so*  ~/.retroshare/extensions/&lt;br /&gt;
&lt;br /&gt;
===Compilare RS con interfaccia testuale su Debian Linux===&lt;br /&gt;
Prova a seguire le istruzioni presenti [http://svn.code.sf.net/p/retroshare/code/trunk/README.txt qui] (ma perché non usano libssh pacchettizzato che c&#039;è nei repository?).&lt;br /&gt;
&lt;br /&gt;
===Problemi di compilazione===&lt;br /&gt;
Solitamente gli errori sono lamentele per pacchetti mancanti che dovrete installare, sono spesso una quantità [https://www.youtube.com/watch?v=GBACLpkon6Q snervante] di errori simili a questi:&lt;br /&gt;
&lt;br /&gt;
 fatal error: bzlib.h: File o directory non esistente (cioè ti serve libbz2-dev)&lt;br /&gt;
 fatal error: gnome-keyring-1/gnome-keyring.h: File o directory non esistente (cioè ti serve libgnome-keyring-dev)&lt;br /&gt;
 make: /usr/bin/uic-qt4: Command not found (cioè ti serve libqt4-dev-bin)&lt;br /&gt;
 fatal error: QObject: File o directory non esistente (cioè ti serve libqt4-dev)&lt;br /&gt;
 fatal error: X11/extensions/scrnsaver.h: File o directory non esistente (cioè ti serve libxss-dev)&lt;br /&gt;
&lt;br /&gt;
In questo caso dovrete andar a scoprire in quale pacchetto della vostra distribuzione è contenuto il file mancante, ad esempio per Debian potete usare l&#039;ultimo campo di ricerca in fondo a [http://packages.debian.org questa] pagina o per Ubuntu su [http://packages.ubuntu.com questa].&lt;br /&gt;
&lt;br /&gt;
Se alcuni errori non scompaiono dopo aver installato la dipendenza potete provar a ricominciare la compilazione dall&#039;inizio con &lt;br /&gt;
 make clean&lt;br /&gt;
che cancellerà tutti i file compilati, e dunque ricominciare.&lt;br /&gt;
&lt;br /&gt;
Se fin qui non vi siete bloccati per errori randomici (impossibile) potete lanciare RetroShare con&lt;br /&gt;
&lt;br /&gt;
===Lanciare RetroShare===&lt;br /&gt;
&lt;br /&gt;
Aprite la cartella retroshare-trunk/src/retroshare-gui e fate doppio click sul file &amp;quot;RetroShare&amp;quot; sennò potete aprire da terminale:&lt;br /&gt;
 retroshare-trunk/src/retroshare-gui/src/RetroShare 2&amp;gt; /dev/null &amp;amp;&lt;br /&gt;
(il 2&amp;gt; /dev/null &amp;amp; serve per non avere troppo output inutile sul terminale).&lt;br /&gt;
&lt;br /&gt;
===Malfunzionamenti===&lt;br /&gt;
Come quasi tutti i programmi che fanno uso della rete, molti problemi possono essere causati dall&#039;avere l&#039;orologio del pc non sincronizzato con gli orologi dei propri amici, per cui assicuratevi di aver configurato bene l&#039;orologio e il fuso orario di sistema.&lt;br /&gt;
&lt;br /&gt;
=Utilizzo=&lt;br /&gt;
&lt;br /&gt;
La sicurezza di RetroShare è basata sul connettersi direttamente ( in modo non anonimo ) solo ad amici fidati certificando l&#039;identità dei peers, qui sta il fulcro della sua &amp;quot;sicurezza&amp;quot;, nell&#039;essere certi di comunicare direttamente solo con persone fidate.&lt;br /&gt;
&lt;br /&gt;
Dunque RetroShare cerca di impedire che le tue comunicazioni vengano viste da peers di cui non ti fidi (GDF, D1g0s, etc). Se il processo di aggiunta degli amici viene fatto con troppa leggerezza (ad esempio usando le chiavi presenti su un [http://wiki.ninux.org/RetroShare wiki] modificabile da cani e porci) senza verificarne il fingerprint ci si gioca la propria sicurezza e l&#039;utilizzo di RetroShare diventa completamente inutile producendo solo un senso di falsa sicurezza.&lt;br /&gt;
&lt;br /&gt;
Aggiungi solo chiavi [[PGP|PGP/GPG]] che sei sicuro/a essere di amici fidati. Per esser sicuri che una chiave [[PGP|PGP/GPG]] sia di un amico fidato dovresti chiedergli di persona il fingerprint (una stringa di una decina di caratteri e numeri) della sua chiave [[PGP|PGP/GPG]] e poi controllare di aggiungere solo la chiave col fingerprint corrispondente.&lt;br /&gt;
&lt;br /&gt;
==Rischi==&lt;br /&gt;
&lt;br /&gt;
Come in ogni programma e ancor di più in quelli che cercano di proteggere la vostra privacy, ciascuna funzione è concepita per esser utilizzata in un certo modo, non studiarne bene il funzionamento può compromettere seriamente la propria privacy. Come al solito non ci si può fidare di qualcosa che non si conosce perché potrebbe funzionare MOLTO diversamente da come ci si immagina.&lt;br /&gt;
&lt;br /&gt;
===Aggiunta di contatti fidati senza verificarne l&#039;identità===&lt;br /&gt;
Quando si aggiunge il certificato di un amico bisogna essere sicuri al 100% che il certificato sia il suo, il modo più naturale di fare ciò è controllare la catena di fiducia dalla propria chiave alla chiave dell&#039;amico. Tradotto: se hai firmato la sua chiave pgp con la tua chiave pgp verificando di persona che quello che stavi firmando fosse proprio la sua chiave, allora ti puoi fidare; se hai firmato la chiave di un amico in comune che a sua volta ha firmato la chiave di chi stai aggiungendo (in questo modo indicandoti che ne ha verificato la corrispondenza persona-chiave) ti puoi fidare abbastanza (dipende da quanto ti fidi dell&#039;amico in comune e da quanto questo abbia capito come funziona una rete di fiducia).&lt;br /&gt;
&lt;br /&gt;
Riassumendo: o si verificano le firme o si verifica di persona il fingerprint del certificato o il certificato stesso.&lt;br /&gt;
&lt;br /&gt;
Chiaramente se non si fa così ci si espone ad [https://it.wikipedia.org/wiki/Attacco_man_in_the_middle attacchi man in the middle], in cui un tizio malvagio legge in chiaro e senza fatica tutte le comunicazioni private e lo scambio di contenuti che avviene tra te e l&#039;altro amico e nessuno dei due se ne accorgerebbe.&lt;br /&gt;
&lt;br /&gt;
===Assenza di plausible deniability===&lt;br /&gt;
Quando usi messaggi firmati stai certificando a chi leggerà che il messaggio è stato scritto proprio da chi lo firma, e quindi se questo stesso messaggio venisse ricevuto anche da un malintenzionato (ad esempio un backup finito nelle mani sbagliate o una persona che usa il tuo pc o un man in the middle), l&#039;autore non potrebbe negarne la paternità, è firmato con PGP/GPG dunque solo lui ne può essere l&#039;autore e il responsabile.&lt;br /&gt;
====Contromisure====&lt;br /&gt;
Non date il vostro computer a cani porci e simili.&lt;br /&gt;
Mettete i vostri backup solo in posti fidati.&lt;br /&gt;
In casi estremi andate in vettovaglie a dare la vostra chiave publica e privata a tonino (quello che suona le pentole) in modo da poter dimostrare che chiunque avrebbe potuto firmare quel messaggio e non solo voi visto che la chiave privata e&#039; compromessa (Invece di darla a tonino potreste pensare che sia efficace anche pubblicarla su un sito, pero&#039; cosi&#039; potrebbe anche andare a finire in mani smaliziate che potrebbero usarla per decifrare i vostri messaggi (mentre se la date a tonino non credo che lo faccia, pero&#039; credo basti per dimostrare che qualcun&#039;altro avrebbe potuto)) &lt;br /&gt;
&lt;br /&gt;
===Condivisione files===&lt;br /&gt;
Se si vuole condividere un file privato solo con poche persone bisogna fare molta attenzione: in assenza di accortezze mirate è certo che nel giro di pochi minuti quel file potrà essere scaricato da un ampissimo numero di persone.&lt;br /&gt;
&lt;br /&gt;
Anche se il file in questione si trovasse in una cartella in cui è stato disabilitata l&#039;opzione &amp;quot;Directory is accessible by anonymous tunnels from any friend&amp;quot; (che tradotto dal retrosharese vuol dire: il tizio della GdF che è amico dell&#039;amico dell&#039;amico che hai tra gli amici può trovare questo file tramite la funzione cerca e scaricarlo passando dagli amici in comune a te, non capirà che il file glielo passi tu (tu lo passi al tuo amico, che lo passa al suo amico che lo passa al finanziere), ma ne può leggere il contenuto) o se passi il file da dentro una chat, quando la persona a cui vuoi passare il file lo scaricherà questo file verrà salvato nella cartella Downloads, che di default è &amp;quot;accessible by anonymous tunnels from any friend&amp;quot; dunque chiunque al mondo riuscirebbe a trovarlo tramite la funzione cerca ed a scaricarlo. Paradossalmente era meglio allegarlo ad una email. &lt;br /&gt;
&lt;br /&gt;
Per essere sicuri che un file venga condiviso solo con una ristretta cerchia di amici, bisogna che TUTTI in quella ristretta cerchia di amici scarichino il file in una cartella visibile solo alla cerchia ristretta, e non nella cartella di Download (che e` il defualt e per default e&#039; condivisa anche anonimamente(=chiunque puo` scaricare in modo anonimo quello che c&#039;e` dentro)).&lt;br /&gt;
&lt;br /&gt;
===Diffusione di link retroshare://===&lt;br /&gt;
RetroShare permette di ottenere dei link ai contenuti che assomigliano a questo&lt;br /&gt;
 retroshare://file?name=rapina-15-gennaio-2014-poste-via-del-pontiere.pdf&amp;amp;size=51795&amp;amp;hash=a79351527b56663357899a7211dd22d954c00110&lt;br /&gt;
che può essere cifrato quanto volete ma nel testo del link riportato qui sopra è contenuto il nome del file, che spesso è indicatore del contenuto, per cui se volete condividere dei link compromettenti cambiategli la parte name visto che il file non viene identificato dal nome ma dalla dimensione e dall&#039;hash, per esempio il link precedente diventerebbe&lt;br /&gt;
 retroshare://file?name=immanuel_casto-come_e_bella_la_cappella-lyrics.pdf&amp;amp;size=51795&amp;amp;hash=a79351527b56663357899a7211dd22d954c00110&lt;br /&gt;
potete notare hash e size invariati, i vostri amici potranno successivamente rinominare il file&lt;br /&gt;
&lt;br /&gt;
===Chat lobby===&lt;br /&gt;
Nelle chat lobbies pubbliche può entrare chiunque e con il nick che gli pare, per cui non ti puoi fidare di nessuno, i nickname che vedi potrebbero essere falsificati senza difficoltà. Due modi, come esempio: quando sei in una chat lobby puoi cambiare il tuo nickname in qualcos&#039;altro di tuo gradimento; oppure puoi creare una nuova identità (una nuova chiave pgp/gpg) con il nome che desideri e poi entrare nella chat lobby spacciandoti per chi vuoi.&lt;br /&gt;
&lt;br /&gt;
===Tracciamento tramite DHT===&lt;br /&gt;
Aprendo RetroShare di default partecipiamo ad una DHT (si puo&#039; disabilitare), una tabella accessibile pubblicamente in cui pubblichiamo il nostro IP, per semplificare la connessione con gli altri peer. Questo rende molto più efficace la connessione con gli amici ma il fatto di pubblicare il nostro IP permette una geolocalizzazione ogni volta che apriamo RS. Per interrogare la DHT serve conoscere una certa stringa che ci identifica, pare che questa stringa venga comunicata solo agli amici. Il contenuto della DHT può anche essere modificato utilizzando 8 fonti che inseriscono informazioni false usando quella stringa identificativa, dunque possono scriverci dentro un ip sbagliato per farsi contattare dai tuoi amici (che poi non ci comunicano perché la chiave pgp non corrisponde) e segnarsi i loro IP. Gli IP pubblici e statici presenti nel sorgente di RS che servono per fare il bootstrap della DHT, cosa possono sapere su di noi? Quasi zero anche perche` la DHT che viene usata e` quella di bittorrent che potrebbe essere usata per altre 10000 applicazioni diverse quindi l&#039;unica informazione che stai pubblicando e&#039;, &amp;quot;questo id DHT&amp;quot; corrisponde &amp;quot;a questo ip:porta&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Aggiunta di contatti non fidati===&lt;br /&gt;
RetroShare è una rete friend2friend, il caso in cui aggiungi come contatto uno che non è tuo amico non è nemmeno contemplato tra le situazioni in cui difendersi. Se aggiungi un peer non fidato o se un peer clicca su &amp;quot;ricorda la password&amp;quot; quando fa il login su RS (e dunque salta buona parte della sicurezza) o se un peer perde la sua chiave privata di RS (ad esempio lasciando accedere ad altri ad un backup del suo pc) beh, questo contatto malvagio può sapere con chi comunichi, quando sei attivo alla tastiera, chi altro hai aggiunto come amico, può sfogliare parte dei tuoi files, può sapere a quali chat lobby, quali forum e quali canali sei iscritto etc etc.&lt;br /&gt;
&lt;br /&gt;
===Installazione di versioni di RetroShare compilate da estranei===&lt;br /&gt;
All&#039;interno di RS sono molto popolari canali in cui vengono condivise versioni precompilate di RS, ad esempio molti utenti windows utilizzano questi file per avere l&#039;ultimissima versione di RS. Ovviamente chi compila può decidere di modificare RS per far fare al nostro pc qualsiasi cosa lui voglia.&lt;br /&gt;
&lt;br /&gt;
===Leak della chiave PGP/GPG e della password===&lt;br /&gt;
Dobbiamo essere consapevoli che anche RetroShare può avere dei bug (che magari hanno le potenzialità di essere usarti come backdoor, come tutti i software, ma retroshare con la sua crescita [https://www.ohloh.net/p/retroshare/analyses/latest/languages_summary vertiginosa] potrebbe essere peggio) o [https://www.ohloh.net/p/retroshare/contributors sviluppatori] in malafede che introducono backdoors (come tutti i software?) o potremmo aver installato una versione compilata da sconosciuti che possono aver modificato il sorgente. In questo caso sia la chiave privata PGP/GPG che la password che la protegge potrebbero venirci rubati. Senza dubbio è consigliabile usare la chiave di RetroShare solo per RetroShare, in modo che in caso di furto i danni siano limitati e non venga compromessa la chiave principale (usata per decifrare mail, firmare mail, accedere a server etc).&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=RetroShare&amp;diff=485</id>
		<title>RetroShare</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=RetroShare&amp;diff=485"/>
		<updated>2014-06-12T14:35:01Z</updated>

		<summary type="html">&lt;p&gt;Kiba: /* Compilare RS con interfaccia grafica su Debian Linux o Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RetroShare è un software per comunicare con pochi amici fidati (f2f) senza l&#039;utilizzo di server centrali (distribuito, da portatile a portatile) e cifrato.&lt;br /&gt;
&lt;br /&gt;
* [http://retroshare.sourceforge.net/ homepage RetroShare]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/RetroShare wikipedia RetroShare]&lt;br /&gt;
&lt;br /&gt;
=Installazione=&lt;br /&gt;
Alcune delle distribuzioni Linux (ad esempio OpenSUSE) lo distribuiscono direttamente sui loro repository, per altre distribuzioni Linux e per altri sistemi operativi si può scaricare l&#039;eseguibile/pacchetto gia compilato direttamente dal [http://retroshare.sourceforge.net/downloads.html sito ufficiale], oppure lo si può compilare, ma non è semplicissimo.&lt;br /&gt;
&lt;br /&gt;
==Ottenere il sorgente==&lt;br /&gt;
Sei davvero sicuro di volerci provare? Non ti basta la versione scaricabile da [http://retroshare.sourceforge.net/downloads.html qui]?&lt;br /&gt;
&lt;br /&gt;
[http://retroshare.sourceforge.net/wiki/index.php/GetTheSource Qui] ci sono le indicazioni per scaricare il codice sorgente, MAI MAI MAI fidarsi ad installare versioni compilate da sconosciuti e/o trovate all&#039;interno di RetroShare, fidarsi SOLO del sito ufficiale.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install subversion&lt;br /&gt;
 svn co svn://svn.code.sf.net/p/retroshare/code/trunk retroshare-trunk&lt;br /&gt;
&lt;br /&gt;
oppure&lt;br /&gt;
&lt;br /&gt;
  svn co svn://svn.code.sf.net/p/retroshare/code/branches/v0.5.5 retroshare-0.5.5&lt;br /&gt;
&lt;br /&gt;
per avere una versione meno recente ma più stabile.&lt;br /&gt;
&lt;br /&gt;
==Compilare su Linux==&lt;br /&gt;
Sei davvero sicuro di volerci provare? Non ti basta la versione scaricabile da [http://retroshare.sourceforge.net/downloads.html qui]?&lt;br /&gt;
&lt;br /&gt;
Installa millemila dipendenze randomiche, dipendono da quale Linux hai, puoi provar ad installare la lista che c&#039;è sotto per Debian/Ubuntu, poi durante la compilazione compariranno errori per ogni pacchetto necessario da cui capirai quali dipendenze ti mancano.&lt;br /&gt;
&lt;br /&gt;
[http://retroshare.sourceforge.net/wiki/index.php/Compile Compilare su altri OS]&lt;br /&gt;
 &lt;br /&gt;
[http://svn.code.sf.net/p/retroshare/code/trunk/README.txt Indicazioni per Linux] qui consigliano di compilarsi pure rsctrl e retroshare-nogui ma credo che alla maggior parte della gente non servano.&lt;br /&gt;
&lt;br /&gt;
===Compilare RS con interfaccia grafica su Debian Linux o Ubuntu===&lt;br /&gt;
Sei davvero sicuro di volerci provare? Non ti basta la versione scaricabile da [http://retroshare.sourceforge.net/downloads.html qui]?&lt;br /&gt;
&lt;br /&gt;
Questa guida è basata su [http://svn.code.sf.net/p/retroshare/code/trunk/README.txt quella ufficiale], differisce per essere mirata alla compilazione di solo retroshare-GUI cioè del minimo che serve per avere un retroshare con interfaccia grafica.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per compilare:&lt;br /&gt;
&lt;br /&gt;
- installa il software da cui dipende retroshare. Su ubuntu e debian:&lt;br /&gt;
 sudo apt-get install subversion libglib2.0-dev libupnp-dev qt4-dev-tools libqt4-dev libssl-dev libxss-dev \&lt;br /&gt;
 libgnome-keyring-dev libbz2-dev libqt4-opengl-dev libqtmultimediakit1 qtmobility-dev libspeex-dev \&lt;br /&gt;
 libspeexdsp-dev libxslt1-dev libprotobuf-dev protobuf-compiler cmake libcurl4-openssl-dev tclsh libsqlite3-dev&lt;br /&gt;
&lt;br /&gt;
- crea una nuova cartella (es. ~/retroshare-trunk) e scarica il codice sorgente (se non già fatto, come indicato sopra)&lt;br /&gt;
 svn co svn://svn.code.sf.net/p/retroshare/code/branches/v0.5.5 retroshare-0.5.5&lt;br /&gt;
&lt;br /&gt;
oppure, se vuoi provare a compilare l&#039;ultimissima, instabile versione:&lt;br /&gt;
 svn co svn://svn.code.sf.net/p/retroshare/code/trunk retroshare-trunk&lt;br /&gt;
&lt;br /&gt;
- spostati nella nuova cartella&lt;br /&gt;
 cd retroshare-0.5.5&lt;br /&gt;
&lt;br /&gt;
- crea la cartella lib&lt;br /&gt;
 mkdir lib&lt;br /&gt;
&lt;br /&gt;
- c&#039;è un altra dipendenza, sqlcipher, che bisogna compilare perchè non è stato ancora pacchettizato. È richiesto da GXS, il nuovo sistema di cache che avrà RetroShare, che userà sqlcipher per avere un database cifrato&lt;br /&gt;
 cd lib&lt;br /&gt;
 git clone git://github.com/sqlcipher/sqlcipher.git&lt;br /&gt;
 cd sqlcipher&lt;br /&gt;
 ./configure --enable-tempstore=yes CFLAGS=&amp;quot;-DSQLITE_HAS_CODEC&amp;quot; LDFLAGS=&amp;quot;-lcrypto&amp;quot;&lt;br /&gt;
 make&lt;br /&gt;
 cd ../..&lt;br /&gt;
&lt;br /&gt;
A questo punto può avvenire la compilazione delle componenti di retroshare. Ci metterà un po&#039;, a seconda di quanto è veloce il computer.&lt;br /&gt;
&lt;br /&gt;
- libbitdht&lt;br /&gt;
 cd libbitdht/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4 &lt;br /&gt;
&lt;br /&gt;
- openpgpsdk&lt;br /&gt;
 cd ../../openpgpsdk/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
- supportlibs&lt;br /&gt;
 cd ../../supportlibs/pegmarkdown &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
- libretroshare&lt;br /&gt;
 cd ../../libretroshare/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
- retroshare gui&lt;br /&gt;
 cd ../../retroshare-gui/src &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make -j 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sono disponibili diversi plugin, FeedReader, LinksCloud e VOIP.&lt;br /&gt;
&lt;br /&gt;
Il plugin VOIP necessita di qtmobility. su debian&lt;br /&gt;
 sudo apt-get install qtmobility-dev&lt;br /&gt;
&lt;br /&gt;
Puoi compilare tutti i plugin insieme&lt;br /&gt;
 cd plugins &amp;amp;&amp;amp; qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make&lt;br /&gt;
oppure separatamente, spostandoti nelle relative cartelle&lt;br /&gt;
 qmake &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make&lt;br /&gt;
&lt;br /&gt;
Il risultato della compilazione, i file lib*.so* vanno copiati nella cartella ~.retroshare/extensions/&lt;br /&gt;
&lt;br /&gt;
Retroshare, come misura di sicurezza, mostra un avviso ogni volta che questi file cambiano, quindi se li hai appena copiato o aggiornato i file non preoccuparti&lt;br /&gt;
&lt;br /&gt;
===Compilare RS il plugin VOIP su Debian Linux===&lt;br /&gt;
VOIP = Voice Over IP&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install qtmobility-dev libspeexdsp-dev&lt;br /&gt;
 cd retroshare-trunk/src/plugins/VOIP&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 mkdir -p ~/.retroshare/extensions&lt;br /&gt;
 cp -P libVOIP.so*  ~/.retroshare/extensions/&lt;br /&gt;
&lt;br /&gt;
===Compilare RS con interfaccia testuale su Debian Linux===&lt;br /&gt;
Prova a seguire le istruzioni presenti [http://svn.code.sf.net/p/retroshare/code/trunk/README.txt qui] (ma perché non usano libssh pacchettizzato che c&#039;è nei repository?).&lt;br /&gt;
&lt;br /&gt;
===Problemi di compilazione===&lt;br /&gt;
Solitamente gli errori sono lamentele per pacchetti mancanti che dovrete installare, sono spesso una quantità [https://www.youtube.com/watch?v=GBACLpkon6Q snervante] di errori simili a questi:&lt;br /&gt;
&lt;br /&gt;
 fatal error: bzlib.h: File o directory non esistente (cioè ti serve libbz2-dev)&lt;br /&gt;
 fatal error: gnome-keyring-1/gnome-keyring.h: File o directory non esistente (cioè ti serve libgnome-keyring-dev)&lt;br /&gt;
 make: /usr/bin/uic-qt4: Command not found (cioè ti serve libqt4-dev-bin)&lt;br /&gt;
 fatal error: QObject: File o directory non esistente (cioè ti serve libqt4-dev)&lt;br /&gt;
 fatal error: X11/extensions/scrnsaver.h: File o directory non esistente (cioè ti serve libxss-dev)&lt;br /&gt;
&lt;br /&gt;
In questo caso dovrete andar a scoprire in quale pacchetto della vostra distribuzione è contenuto il file mancante, ad esempio per Debian potete usare l&#039;ultimo campo di ricerca in fondo a [http://packages.debian.org questa] pagina o per Ubuntu su [http://packages.ubuntu.com questa].&lt;br /&gt;
&lt;br /&gt;
Se alcuni errori non scompaiono dopo aver installato la dipendenza potete provar a ricominciare la compilazione dall&#039;inizio con &lt;br /&gt;
 make clean&lt;br /&gt;
che cancellerà tutti i file compilati, e dunque ricominciare.&lt;br /&gt;
&lt;br /&gt;
Se fin qui non vi siete bloccati per errori randomici (impossibile) potete lanciare RetroShare con&lt;br /&gt;
&lt;br /&gt;
===Lanciare RetroShare===&lt;br /&gt;
&lt;br /&gt;
Aprite la cartella retroshare-trunk/src/retroshare-gui e fate doppio click sul file &amp;quot;RetroShare&amp;quot; sennò potete aprire da terminale:&lt;br /&gt;
 retroshare-trunk/src/retroshare-gui/src/RetroShare 2&amp;gt; /dev/null &amp;amp;&lt;br /&gt;
(il 2&amp;gt; /dev/null &amp;amp; serve per non avere troppo output inutile sul terminale).&lt;br /&gt;
&lt;br /&gt;
===Malfunzionamenti===&lt;br /&gt;
Come quasi tutti i programmi che fanno uso della rete, molti problemi possono essere causati dall&#039;avere l&#039;orologio del pc non sincronizzato con gli orologi dei propri amici, per cui assicuratevi di aver configurato bene l&#039;orologio e il fuso orario di sistema.&lt;br /&gt;
&lt;br /&gt;
=Utilizzo=&lt;br /&gt;
&lt;br /&gt;
La sicurezza di RetroShare è basata sul connettersi direttamente ( in modo non anonimo ) solo ad amici fidati certificando l&#039;identità dei peers, qui sta il fulcro della sua &amp;quot;sicurezza&amp;quot;, nell&#039;essere certi di comunicare direttamente solo con persone fidate.&lt;br /&gt;
&lt;br /&gt;
Dunque RetroShare cerca di impedire che le tue comunicazioni vengano viste da peers di cui non ti fidi (GDF, D1g0s, etc). Se il processo di aggiunta degli amici viene fatto con troppa leggerezza (ad esempio usando le chiavi presenti su un [http://wiki.ninux.org/RetroShare wiki] modificabile da cani e porci) senza verificarne il fingerprint ci si gioca la propria sicurezza e l&#039;utilizzo di RetroShare diventa completamente inutile producendo solo un senso di falsa sicurezza.&lt;br /&gt;
&lt;br /&gt;
Aggiungi solo chiavi [[PGP|PGP/GPG]] che sei sicuro/a essere di amici fidati. Per esser sicuri che una chiave [[PGP|PGP/GPG]] sia di un amico fidato dovresti chiedergli di persona il fingerprint (una stringa di una decina di caratteri e numeri) della sua chiave [[PGP|PGP/GPG]] e poi controllare di aggiungere solo la chiave col fingerprint corrispondente.&lt;br /&gt;
&lt;br /&gt;
==Rischi==&lt;br /&gt;
&lt;br /&gt;
Come in ogni programma e ancor di più in quelli che cercano di proteggere la vostra privacy, ciascuna funzione è concepita per esser utilizzata in un certo modo, non studiarne bene il funzionamento può compromettere seriamente la propria privacy. Come al solito non ci si può fidare di qualcosa che non si conosce perché potrebbe funzionare MOLTO diversamente da come ci si immagina.&lt;br /&gt;
&lt;br /&gt;
===Aggiunta di contatti fidati senza verificarne l&#039;identità===&lt;br /&gt;
Quando si aggiunge il certificato di un amico bisogna essere sicuri al 100% che il certificato sia il suo, il modo più naturale di fare ciò è controllare la catena di fiducia dalla propria chiave alla chiave dell&#039;amico. Tradotto: se hai firmato la sua chiave pgp con la tua chiave pgp verificando di persona che quello che stavi firmando fosse proprio la sua chiave, allora ti puoi fidare; se hai firmato la chiave di un amico in comune che a sua volta ha firmato la chiave di chi stai aggiungendo (in questo modo indicandoti che ne ha verificato la corrispondenza persona-chiave) ti puoi fidare abbastanza (dipende da quanto ti fidi dell&#039;amico in comune e da quanto questo abbia capito come funziona una rete di fiducia).&lt;br /&gt;
&lt;br /&gt;
Riassumendo: o si verificano le firme o si verifica di persona il fingerprint del certificato o il certificato stesso.&lt;br /&gt;
&lt;br /&gt;
Chiaramente se non si fa così ci si espone ad [https://it.wikipedia.org/wiki/Attacco_man_in_the_middle attacchi man in the middle], in cui un tizio malvagio legge in chiaro e senza fatica tutte le comunicazioni private e lo scambio di contenuti che avviene tra te e l&#039;altro amico e nessuno dei due se ne accorgerebbe.&lt;br /&gt;
&lt;br /&gt;
===Assenza di plausible deniability===&lt;br /&gt;
Quando usi messaggi firmati stai certificando a chi leggerà che il messaggio è stato scritto proprio da chi lo firma, e quindi se questo stesso messaggio venisse ricevuto anche da un malintenzionato (ad esempio un backup finito nelle mani sbagliate o una persona che usa il tuo pc o un man in the middle), l&#039;autore non potrebbe negarne la paternità, è firmato con PGP/GPG dunque solo lui ne può essere l&#039;autore e il responsabile.&lt;br /&gt;
====Contromisure====&lt;br /&gt;
Non date il vostro computer a cani porci e simili.&lt;br /&gt;
Mettete i vostri backup solo in posti fidati.&lt;br /&gt;
In casi estremi andate in vettovaglie a dare la vostra chiave publica e privata a tonino (quello che suona le pentole) in modo da poter dimostrare che chiunque avrebbe potuto firmare quel messaggio e non solo voi visto che la chiave privata e&#039; compromessa (Invece di darla a tonino potreste pensare che sia efficace anche pubblicarla su un sito, pero&#039; cosi&#039; potrebbe anche andare a finire in mani smaliziate che potrebbero usarla per decifrare i vostri messaggi (mentre se la date a tonino non credo che lo faccia, pero&#039; credo basti per dimostrare che qualcun&#039;altro avrebbe potuto)) &lt;br /&gt;
&lt;br /&gt;
===Condivisione files===&lt;br /&gt;
Se si vuole condividere un file privato solo con poche persone bisogna fare molta attenzione: in assenza di accortezze mirate è certo che nel giro di pochi minuti quel file potrà essere scaricato da un ampissimo numero di persone.&lt;br /&gt;
&lt;br /&gt;
Anche se il file in questione si trovasse in una cartella in cui è stato disabilitata l&#039;opzione &amp;quot;Directory is accessible by anonymous tunnels from any friend&amp;quot; (che tradotto dal retrosharese vuol dire: il tizio della GdF che è amico dell&#039;amico dell&#039;amico che hai tra gli amici può trovare questo file tramite la funzione cerca e scaricarlo passando dagli amici in comune a te, non capirà che il file glielo passi tu (tu lo passi al tuo amico, che lo passa al suo amico che lo passa al finanziere), ma ne può leggere il contenuto) o se passi il file da dentro una chat, quando la persona a cui vuoi passare il file lo scaricherà questo file verrà salvato nella cartella Downloads, che di default è &amp;quot;accessible by anonymous tunnels from any friend&amp;quot; dunque chiunque al mondo riuscirebbe a trovarlo tramite la funzione cerca ed a scaricarlo. Paradossalmente era meglio allegarlo ad una email. &lt;br /&gt;
&lt;br /&gt;
Per essere sicuri che un file venga condiviso solo con una ristretta cerchia di amici, bisogna che TUTTI in quella ristretta cerchia di amici scarichino il file in una cartella visibile solo alla cerchia ristretta, e non nella cartella di Download (che e` il defualt e per default e&#039; condivisa anche anonimamente(=chiunque puo` scaricare in modo anonimo quello che c&#039;e` dentro)).&lt;br /&gt;
&lt;br /&gt;
===Diffusione di link retroshare://===&lt;br /&gt;
RetroShare permette di ottenere dei link ai contenuti che assomigliano a questo&lt;br /&gt;
 retroshare://file?name=rapina-15-gennaio-2014-poste-via-del-pontiere.pdf&amp;amp;size=51795&amp;amp;hash=a79351527b56663357899a7211dd22d954c00110&lt;br /&gt;
che può essere cifrato quanto volete ma nel testo del link riportato qui sopra è contenuto il nome del file, che spesso è indicatore del contenuto, per cui se volete condividere dei link compromettenti cambiategli la parte name visto che il file non viene identificato dal nome ma dalla dimensione e dall&#039;hash, per esempio il link precedente diventerebbe&lt;br /&gt;
 retroshare://file?name=immanuel_casto-come_e_bella_la_cappella-lyrics.pdf&amp;amp;size=51795&amp;amp;hash=a79351527b56663357899a7211dd22d954c00110&lt;br /&gt;
potete notare hash e size invariati, i vostri amici potranno successivamente rinominare il file&lt;br /&gt;
&lt;br /&gt;
===Chat lobby===&lt;br /&gt;
Nelle chat lobbies pubbliche può entrare chiunque e con il nick che gli pare, per cui non ti puoi fidare di nessuno, i nickname che vedi potrebbero essere falsificati senza difficoltà. Due modi, come esempio: quando sei in una chat lobby puoi cambiare il tuo nickname in qualcos&#039;altro di tuo gradimento; oppure puoi creare una nuova identità (una nuova chiave pgp/gpg) con il nome che desideri e poi entrare nella chat lobby spacciandoti per chi vuoi.&lt;br /&gt;
&lt;br /&gt;
===Tracciamento tramite DHT===&lt;br /&gt;
Aprendo RetroShare di default partecipiamo ad una DHT (si puo&#039; disabilitare), una tabella accessibile pubblicamente in cui pubblichiamo il nostro IP, per semplificare la connessione con gli altri peer. Questo rende molto più efficace la connessione con gli amici ma il fatto di pubblicare il nostro IP permette una geolocalizzazione ogni volta che apriamo RS. Per interrogare la DHT serve conoscere una certa stringa che ci identifica, pare che questa stringa venga comunicata solo agli amici. Il contenuto della DHT può anche essere modificato utilizzando 8 fonti che inseriscono informazioni false usando quella stringa identificativa, dunque possono scriverci dentro un ip sbagliato per farsi contattare dai tuoi amici (che poi non ci comunicano perché la chiave pgp non corrisponde) e segnarsi i loro IP. Gli IP pubblici e statici presenti nel sorgente di RS che servono per fare il bootstrap della DHT, cosa possono sapere su di noi? Quasi zero anche perche` la DHT che viene usata e` quella di bittorrent che potrebbe essere usata per altre 10000 applicazioni diverse quindi l&#039;unica informazione che stai pubblicando e&#039;, &amp;quot;questo id DHT&amp;quot; corrisponde &amp;quot;a questo ip:porta&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Aggiunta di contatti non fidati===&lt;br /&gt;
RetroShare è una rete friend2friend, il caso in cui aggiungi come contatto uno che non è tuo amico non è nemmeno contemplato tra le situazioni in cui difendersi. Se aggiungi un peer non fidato o se un peer clicca su &amp;quot;ricorda la password&amp;quot; quando fa il login su RS (e dunque salta buona parte della sicurezza) o se un peer perde la sua chiave privata di RS (ad esempio lasciando accedere ad altri ad un backup del suo pc) beh, questo contatto malvagio può sapere con chi comunichi, quando sei attivo alla tastiera, chi altro hai aggiunto come amico, può sfogliare parte dei tuoi files, può sapere a quali chat lobby, quali forum e quali canali sei iscritto etc etc.&lt;br /&gt;
&lt;br /&gt;
===Installazione di versioni di RetroShare compilate da estranei===&lt;br /&gt;
All&#039;interno di RS sono molto popolari canali in cui vengono condivise versioni precompilate di RS, ad esempio molti utenti windows utilizzano questi file per avere l&#039;ultimissima versione di RS. Ovviamente chi compila può decidere di modificare RS per far fare al nostro pc qualsiasi cosa lui voglia.&lt;br /&gt;
&lt;br /&gt;
===Leak della chiave PGP/GPG e della password===&lt;br /&gt;
Dobbiamo essere consapevoli che anche RetroShare può avere dei bug (che magari hanno le potenzialità di essere usarti come backdoor, come tutti i software, ma retroshare con la sua crescita [https://www.ohloh.net/p/retroshare/analyses/latest/languages_summary vertiginosa] potrebbe essere peggio) o [https://www.ohloh.net/p/retroshare/contributors sviluppatori] in malafede che introducono backdoors (come tutti i software?) o potremmo aver installato una versione compilata da sconosciuti che possono aver modificato il sorgente. In questo caso sia la chiave privata PGP/GPG che la password che la protegge potrebbero venirci rubati. Senza dubbio è consigliabile usare la chiave di RetroShare solo per RetroShare, in modo che in caso di furto i danni siano limitati e non venga compromessa la chiave principale (usata per decifrare mail, firmare mail, accedere a server etc).&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=EigenNet&amp;diff=367</id>
		<title>EigenNet</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=EigenNet&amp;diff=367"/>
		<updated>2013-08-29T17:21:57Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:EigenNet.png|right]]&lt;br /&gt;
==eigenNet==&lt;br /&gt;
&lt;br /&gt;
eigenNet è una rete wireless mesh libera e decentralizzata di Pisa. &lt;br /&gt;
In altri termini il progetto di una rete wireless diffusa su una buona parte del centro di Pisa tramite da Access Point dislocati in vari punti della città. Questi dispositivi devono formare tra di loro una vera e propria [http://pisa.ninux.org rete] in cui le intersezioni o &amp;quot;nodi&amp;quot; sono in comunicazione wireless o via cavo tra di loro. La rete connette tutti quelli che si connettono e li tratta alla pari, permettendo a tutti di accedere ai [[EigenNet#I_servizi_offerti|servizi offerti]] da tutti. I dati sulla rete corrono da un capo all&#039;altro della rete [[EigenNet#Il_firmware_di_EigenNet | calcolando]] il percorso migliore. &lt;br /&gt;
&lt;br /&gt;
Chiunque può connettersi alla nostra rete e chiunque può partecipare, anche indipendentemente da noi, al suo ampliamento, non ne vogliamo essere i padroni: infatti se tutti sono padroni di un pezzetto di rete allora nessuno avrà mai il potere per censurarla.  Se ti chiedi quali ragionamenti ci hanno spinto a far partire un progetto così impegnativo dai un&#039;occhiata agli [[EigenNet#Approfondimenti|approfondimenti]]. &lt;br /&gt;
&lt;br /&gt;
[[EigenNet#Come_partecipare|Come partecipare?]] Ad esempio mettendo una antenna adatta a casa propria!&lt;br /&gt;
&lt;br /&gt;
== Come funziona == &lt;br /&gt;
I nodi partecipano alla rete tutti in modo &#039;&#039;&#039;paritario&#039;&#039;&#039; e sono connessi fra loro solitamente tramite wireless ma dove possibile anche tramite link [[ethernet]]. Stiamo pensando anche ai primi link in fibra ottica. I nodi sono formati fisicamente da &#039;&#039;&#039;antenne poste sui tetti delle case pisane&#039;&#039;&#039; e l&#039;hardware da noi usato si compone di [[PicoStation|Ubiquity PicoStation M2 HP]] (da esterni, omnidirezionali, circa [http://www.wifistore.it/index.php/ubiquiti-picostation-m2-hp.html 70] euro, per una casa vicina ad un altro nodo della nostra rete dovrebbe bastare una di queste), [http://www.ubnt.com/downloads/datasheets/nanostationm/nsm_ds_web.pdf Ubiquiti NanoStation M5] (da esterni, settoriali, da [http://www.wifistore.it/index.php/ubiquiti-nanostation-locom5-5ghz.html 50] a [http://www.wifistore.it/index.php/ubiquiti-nanostationm5-5ghz-16dbi.html 65] euro, necessaria per collegare edifici lontani pochi km dal resto della rete), [http://www.ubnt.com/downloads/datasheets/airgridm/agmhp_datasheet_web.pdf Ubiquiti AirGrid M5 HP] (da esterni, direzionali, da [http://www.wifistore.it/index.php/ubiquiti-airgrid-m5-23-hp.html 47] a [http://www.wifistore.it/index.php/ubiquiti-airgrid-m5-27-hp.html 54] euro, collegamenti a lunghezze di parecchi km) e [[Fonera|Fonere]] (da interni, omnidirezionali, poche decine di euro) ma possiamo acquistare o riutilizzare una ampia gamma di antenne in caso di necessità specifiche. Su queste antenne viene installata una [[EigenNet#Il_firmware_di_EigenNet|versione modificata]] di [https://openwrt.org OpenWRT], pronta per essere usata con EigenNet. &lt;br /&gt;
&lt;br /&gt;
Se vuoi sapere subito come puoi partecipare vai alla sezione [[#Come partecipare]].&lt;br /&gt;
&lt;br /&gt;
==Status - Mappa di EigenNet== &lt;br /&gt;
Al momento EigenNet è ancora in fase sperimentale, ma sta crescendo. &lt;br /&gt;
La struttura della rete osservabile tramite il [http://pisa.ninux.org map server] messo a disposizione dagli amici di [http://ninux.org Ninux] (per capire il map server: &lt;br /&gt;
*segnaposto arancioni = nodi potenziali, &lt;br /&gt;
*verde = solo per struttura della rete, &lt;br /&gt;
*blu = anche possibilità di connessione). &lt;br /&gt;
==I servizi offerti== &lt;br /&gt;
Avere internet gratis è solo uno dei tanti vantaggi che si acquista facendo parte di EigenNet, e non lo riteniamo il più importante, per quanto nonostante abbattere il digital divide sia una missione nobile.&lt;br /&gt;
Rimandiamo agli approfondimenti chi vuole sapere perchè abbiamo creato EigenNet. &lt;br /&gt;
EigenNet è concepita per dare servizi e contenere siti, non solo per dare accesso ad Internet. Chiunque può connettersi ad EigenNet e offrire, ad esempio, un nuovo sito senza esser censurato. &lt;br /&gt;
Alcuni esempi di questi servizi sono: &lt;br /&gt;
* poter usare l&#039;ipv6 ossia poter sopravvivere alla [http://it.wikipedia.org/wiki/Saturazione_di_IPv4 fine degli ipv4]; &lt;br /&gt;
* poter gestire liberamente su un proprio pc un sito o qualsiasi servizio che sarà accessibile dall&#039;interno della rete (sfruttando l&#039;alta velocità di trasferimento dati della nostra rete ed una bassa latenza: da 1 a 5 millisecondi per ogni antenna che i dati devono passare) ma anche dall&#039;esterno da chi ha già un ipv6; &lt;br /&gt;
* libero scambio di ogni tipo di dato (per avere la massima sicurezza nello scambio di file consigliamo l&#039;uso del software [[RetroShare]] che utilizza la cifratura con [[PGP]]). &lt;br /&gt;
== Features == &lt;br /&gt;
Dettagli tecnici sulle features al momento implementate sulla nostra rete: EigenNet Mobile Ad Hoc Network &lt;br /&gt;
* Native auto-configuration &lt;br /&gt;
* Low cost infrastructure (60 - 200 each node) &lt;br /&gt;
* Perfect integration with existent infrastructure &lt;br /&gt;
* Can create [http://en.wikipedia.org/wiki/IEEE_802.1Q multiple separated] native layer 2 network on same mesh  &lt;br /&gt;
* [http://en.wikipedia.org/wiki/Scalability Highly Scalable] [3] &lt;br /&gt;
* Native [http://en.wikipedia.org/wiki/Mobile_ad_hoc_network Mobility] and [http://en.wikipedia.org/wiki/Wireless_LAN#Roaming client Roaming] support &lt;br /&gt;
* [http://en.wikipedia.org/wiki/OSI_model Layer 3] agnostic ( EigenNet doesn&#039;t need to regard about ipv6 ipv4 etc etc, EigenNet is transparent for communication at layers upper 2 ) &lt;br /&gt;
* Routing Scheme agnostic ( eigenNet is transparent for communication at layers upper 2 ).See also [[Routing EigenNet]].&lt;br /&gt;
* Routing managed at level 2 by [http://www.open-mesh.org/projects/batman-adv/wiki B.A.T.M.A.N. Advanced] and at level 3 by [http://www.pps.jussieu.fr/~jch/software/babel/ Babeld] &lt;br /&gt;
* No need of centralized or external control &lt;br /&gt;
* Distributed network (no one possess the entire network, no one is responsible of all network) &lt;br /&gt;
* Due to his distributed nature no cost/licenses/fees related to the use of open spectrum &lt;br /&gt;
* High [http://en.wikipedia.org/wiki/Resilience_(network) resilience] due the [http://en.wikipedia.org/wiki/Wireless_mesh_networks mesh] nature &lt;br /&gt;
* Used frequencies are 2.4GHz (802.11g, mostly) and 5GHz (802.11a) &lt;br /&gt;
* We have a /48 subnet of IPv6 &lt;br /&gt;
* No cost for software licenses/fees everything used is released under [http://en.wikipedia.org/wiki/GNU_General_Public_License GPL] or less restrictive Licenses&lt;br /&gt;
&lt;br /&gt;
== Il firmware di EigenNet == &lt;br /&gt;
Il firmware è il sistema operativo che viene flashato nelle antenne, noi siamo partiti dall&#039;ottimo [http://openwrt.org OpenWRT] per realizzare il [http://gitorious.org/eigennet nostro firmware]. &lt;br /&gt;
In particolare implementa un modulo nel kernel linux, [http://www.open-mesh.org/projects/batman-adv/wiki Batman adv], che serve per gestire il routing tra le antenne (ossia che percorso far fare ai dati) ed ha la peculiarità di lavorare a Layer 2. &lt;br /&gt;
Il firmware eigenNet con il suo modulo eigennet-autoconf, si occupa di far sì che i dispositivi possano immediatamente entrare a far parte della nostra rete configurandoli automaticamente. Ulteriori informazioni sull&#039;auto-configurazione si trovano [[Firmware_eigenNet|qui]] e [http://wiki.ninux.org/ScriptAutoConfig qui].&lt;br /&gt;
&lt;br /&gt;
== Come partecipare == &lt;br /&gt;
Per entrare a far parte della rete bisogna innanzitutto aggiungere un segnaposto sul [http://pisa.eigenlab.org map server] ed è caldamente consigliata l&#039;iscrizione alla apposita mailing list locale: [http://ml.ninux.org/mailman/listinfo/nodi-pisa mailing list eigenNet] ed a quella nazionale: [http://ml.ninux.org/mailman/listinfo/wireless mailing list Ninux].&lt;br /&gt;
=== Chiedendo aiuto alla comunita&#039; === &lt;br /&gt;
Noi siamo ben disposti ad aiutarvi a montarr una antenna che estenda eigenNet, prima di tutto [https://eigenlab.org/contatti contattateci], possibilmente fatevi conoscere di persona passando al [[Mappa Laboratorio | casottino]] altrimenti possiamo direttamente venire da voi per un sopralluogo (se dal [http://pisa.ninux.org mapserver] sembra possibile fare il collegamento). E&#039; richiesto il pagamento dell&#039;attrezzatura necessaria al montaggio fisico del nodo e dei componenti (indicativamente: sugli 70-80 euro di antenna Ubiquity [[PicoStation]] o NanoStation, qualche decina di euro per cavo di rete FTP cat5 e per il corrugato). Chiaramente è possibile entrare nella rete anche con un access point wireless già in vostro possesso, controllate che sia [http://wiki.openwrt.org/toh/start compatibile con OpenWrt] e che abbia almeno 4 MB di memoria Flash. Il servizio è gratuito (siamo volontari) e il supporto tecnico è offerto da eigenLab ( ma coerentemente con la nostra filosofia di AutoFormazione vi incoraggiamo a sperimentare e a cercar di risolvere i problemi che potrebbero sorgere, anche se solitamente si risolvono staccando e riattaccando la presa di corrente dell&#039;antenna ). Da non dimenticare che fortemente consigliato il posizionamento dell&#039;antenna sul tetto, dunque è necessario poterci salire ( siamo atletici ma non possiamo nè volare nè andare contro il parere del condominio ) ed è necessario trovare il modo di alimentare l&#039;antenna, basta un cavo sottile che parta dal sottotetto (se di proprietà) o da casa vostra, nel sopralluogo studieremo le possibilità, nel caso peggiore potremo posizionare l&#039;antenna fuori da una finestra o in altri luoghi più convenienti.&lt;br /&gt;
&lt;br /&gt;
=== Installandosi un&#039; antenna da soli === &lt;br /&gt;
Una volta segnalata la propria posizione sul [http://pisa.ninux.org mapserver] bisogna trovare/acquistare un access point [http://wiki.openwrt.org/toh/start compatibile con OpenWRT] ed almeno 4 MB di memoria Flash (non di quella RAM). Abbiamo scritto alcune istruzioni per l&#039;hardware che usiamo solitamente: [[Fonera]] (poche decine di euro, da interni), [[PicoStation]] (circa [http://www.wifistore.it/index.php/ubiquiti-picostation-m2-hp.html 70] euro, da esterni) e NanoStation (da [http://www.wifistore.it/index.php/ubiquiti-nanostation-locom5-5ghz.html 50] a [http://www.wifistore.it/index.php/ubiquiti-nanostationm5-5ghz-16dbi.html 65] euro, da esterni). &lt;br /&gt;
Dunque c&#039;è da individuare quale &amp;quot;target&amp;quot; è adatto ad essere installato sulla nostra antenna (informazione spesso recuperabile sempre nella tabella dell&#039;hardware compatibile con OpenWRT). Se il target è atheros o ar71xx le immagini già compilate possono esser trovate [http://efesto.eigenlab.org/~gioacchino/openwrt/pisaAttitude/ar71xx/ qui]. &lt;br /&gt;
Altrimenti è necessario compilare il firmware seguendo le istruzioni reperibili [[Flashing]] (conoscendo l&#039;inglese ed avendo Linux) e [http://wiki.ninux.org/FirmwareEigenNet qui]. &lt;br /&gt;
La compilazione può durare delle ore, dipende dalla macchina su cui si compila. Per l&#039;installazione del firmware (ossia il flashing) ottenuto si può far riferimento alle istruzioni valide per l&#039;installazione di OpenWRT sul proprio access point.Dopo aver completato la [[#Configurazione dell&#039;antenna]] questa sarà da fissare sul tetto di casa (ma solo se l&#039;antenna è da esterni) e dovrà essere alimentata. Nel caso delle [[PicoStation]] è possibile posizionare nel sottotetto o dentro casa vostra il [http://it.wikipedia.org/wiki/Power_over_Ethernet POE] collegato alla 220V da cui parte un cavo di rete che porta 12V fino all&#039;antenna all&#039;esterno. Per diminuire i problemi elettrici che possono rovinare l&#039;antenna sul tetto è preferibile utilizzare un cavo schermato FTP per collegare il POE all&#039;antenna in modo da avere anche la messa a terra. Per maggiori dettagli: [[Montaggio delle antenne]]. Infine [https://eigenlab.org/contatti inviateci] i dati necessari a compilare la scheda del vostro nodo sul [http://pisa.ninux.org mapserver] (dovrebbe essere sufficiente l&#039;output del comando &#039;&#039;ip address show&#039;&#039; che potete lanciare alla fine della [[#Configurazione_dell&#039;antenna|configurazione]]).&lt;br /&gt;
&lt;br /&gt;
=== Senza antenna, tunnel VPN, solo per nerds === &lt;br /&gt;
Se si è curiosi di sperimentare i servizi interni alla nostra rete ma non si ha la possibilità di raggiungerla fisicamente è possibile collegarsi tramite una [[VPN | VPN]] ([http://it.wikipedia.org/wiki/Virtual_Private_Network VPN su Wikipedia]) ad uno dei nostri server. Ecco le istruzioni per connettersi alla nostra [[VPN ]]. &lt;br /&gt;
== Configurazione dell&#039;antenna == &lt;br /&gt;
=== Connettersi all&#039;antenna === &lt;br /&gt;
Una volta installato il firmware ci si può connettere all&#039;antenna via cavo ethernet in ipv6, per scoprire l&#039;ip dell&#039;antenna date&lt;br /&gt;
 ping6 ff02::1%(interfaccia usata per la connessione)&lt;br /&gt;
ie&lt;br /&gt;
 ping6 ff02::1%eth0&lt;br /&gt;
Per pingare in broadcast e, guardando il mac address dell&#039;antenna, potete trovare l&#039;antenna &lt;br /&gt;
&lt;br /&gt;
Per connettersi all&#039;antenna bisogna possedere la chiave dei nodi (se avete compilato l&#039;immagine con firmware branch pisa) col comando&lt;br /&gt;
 ssh -i [patch della chiave dei nodi] root@[ipv6 dell&#039;antenna]%[interfaccia usata per la connessione]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ecco come ricavare l&#039;ipv6 della propria antenna dal mac address: &lt;br /&gt;
     iwlist scan |grep -B 5 -i eigen &lt;br /&gt;
la stringa dopo Address è il mac address dell&#039;antenna. Come esempio prendiamo 1a:2b:3c:4d:5e:6f. &lt;br /&gt;
Dopo aver tolto dal mac address metà dei due punti c&#039;è da aggiungere il prefisso 2001:1418:1a9:eeab: così da avere qualcosa tipo 2001:1418:1a9:eeab:1a2b:3c4d:5e6f. Ora ci si potrà connettere con: &lt;br /&gt;
     ssh root@2001:470:ca42:ee:ab:1a2b:3c4d:5e6f &lt;br /&gt;
una volta connessi all&#039;antenna è possibile, tra le altre cose, verificare quali altre antenne riesce a raggiungere direttamente o passando da altre antenne e con quale qualità usando il comando: &lt;br /&gt;
     batctl o &lt;br /&gt;
=== I file di configurazione === &lt;br /&gt;
Il file di configurazione principale del nostro firmware può esser modificato (una volta entrati nell&#039;antenna usando ssh) con: &lt;br /&gt;
     vi /etc/config/eigennet &lt;br /&gt;
premere &amp;quot;i&amp;quot; per iniziare le modifiche, premere &amp;quot;alt + :&amp;quot; e poi &amp;quot;wq&amp;quot; invio per salvare e chiudere il file. &lt;br /&gt;
Per applicare ogni modifica, sempre nel file di configurazione va impostata  &lt;br /&gt;
     option &#039;bootmode&#039; &#039;1&#039; &lt;br /&gt;
e riavviata l&#039;antenna con &lt;br /&gt;
     reboot &amp;amp;&amp;amp; exit &lt;br /&gt;
Le opzioni più interessanti che si possono modificare sono: &lt;br /&gt;
     option &#039;wifi_clients&#039; &#039;true&#039; &lt;br /&gt;
che permette di connettersi alla antenna via wireless e fa annunciare una rete accessibile di nome &amp;quot;eigenNet&amp;quot; (scrivendo false l&#039;antenna funzionerà solo da collegamento tra più punti della rete ed annuncerà solo una rete non accessibile di nome &amp;quot;www.eigenlab.org-www.ninux.org&amp;quot;).  &lt;br /&gt;
     option &#039;apSSID&#039; &#039;eigenNet&#039; &lt;br /&gt;
il nome della rete accessibile. &lt;br /&gt;
     list &#039;resolvers&#039; &#039;2001:470:ca42:ee:ab::1000 8.8.8.8&#039; &lt;br /&gt;
è l&#039;elenco dei DNS, siete lberi di usarne di diversi, ad esempio un vostro DNS, purchè non ci siano collisioni con il nostro.&lt;br /&gt;
&lt;br /&gt;
Altre informazioni possono essere reperite [[Firmware_eigenNet|qui]] e [http://wiki.ninux.org/ScriptAutoConfig qui].&lt;br /&gt;
&lt;br /&gt;
== Approfondimenti == &lt;br /&gt;
* [https://eigenlab.org/articoli-e-comunicati/approfondimenti/102-eigennet-la-nuova-frontiera-delle-reti La nuova frontiera delle reti] Articolo con le motivazioni che ci hanno spinto a creare EigenNet. &lt;br /&gt;
* [https://eigenlab.org/eigennet/cose-e-come-partecipare EigenNet] Pagina informativa su EigenNet, molto meno tecnica di questa. &lt;br /&gt;
* [https://eigenlab.org/articoli-e-comunicati/approfondimenti/130-qpezzo-agcomq Articolo] di opinione sulla delibera AGCom del 2011. &lt;br /&gt;
* [https://eigenlab.org/articoli-e-comunicati/approfondimenti/145-la-prima-guerra-mondiale-del-web-spunti-per-una-discussione-sulla-rete-come-bene-comune La prima guerra mondiale del Web - Spunti per una discussione sulla rete come bene comune] Spunti di riflessione sui tentativi di censura. &lt;br /&gt;
* [https://eigenlab.org/articoli-e-comunicati/approfondimenti/149-prospettive-di-liberta-in-rete-appunti-per-la-costruzione-di-una-rete-libera-da-controllo-e-censura Prospettive di libertà in rete: appunti per la costruzione di una rete libera da controllo e censura] Sulla storia dei tentativi (e successi) di censura e controllo di internet.&lt;br /&gt;
&lt;br /&gt;
== Voci correlate ==&lt;br /&gt;
[[BitArno]]&lt;br /&gt;
[[Ethernet]]&lt;br /&gt;
[[Flashing]]&lt;br /&gt;
[[Firmware eigenNet]]&lt;br /&gt;
[[Glossario]]&lt;br /&gt;
[[HowToRete]]&lt;br /&gt;
[[HowToBatman]]&lt;br /&gt;
[[Lista Servers eigenNet]]&lt;br /&gt;
[[Owncloud]]&lt;br /&gt;
[[PicoStation]]&lt;br /&gt;
[[RetroShare]]&lt;br /&gt;
[[Routing Babeld]]&lt;br /&gt;
[[Trashware]]&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=LXC&amp;diff=366</id>
		<title>LXC</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=LXC&amp;diff=366"/>
		<updated>2013-08-29T17:00:26Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per migliorare l&#039;organizzazione della macchina di EigenLab che offre più servizi e per aumentare la sicurezza abbiamo deciso di ricorrere alla virtualizzazione con [http://lxc.sourceforge.net/ LXC] (LinuX Containers).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creazione della macchina ==&lt;br /&gt;
per creare una nuova macchina:&lt;br /&gt;
 cd /home/lxc &lt;br /&gt;
in questa cartella risiederanno i filesystems di root delle macchine virtuali&lt;br /&gt;
 /usr/src/lxc-gentoo/lxc-gentoo/lxc-gentoo create&lt;br /&gt;
presenta un menù interattivo nel quale specificare architettura e nome della macchina;&lt;br /&gt;
editare il $NOME.conf secondo le proprie esigenze.&lt;br /&gt;
&lt;br /&gt;
Per avviare la nuova macchina (e avere una shell di root in essa)&lt;br /&gt;
 lxc-start -n $NOME.conf -f $FILEDICONFIGURAZIONE&lt;br /&gt;
Per avviarla in background:&lt;br /&gt;
 lxc-start -n $NOME.conf -f $FILEDICONFIGURAZIONE -d&lt;br /&gt;
Per spegnerla (meglio non usare lxc-stop)&lt;br /&gt;
 lxc-shutdown -n $NOME&lt;br /&gt;
È utile usare init per gestire automaticamente l&#039;avvio del container&lt;br /&gt;
 cd /etc/init.d/&lt;br /&gt;
 ln -s lxc /etc/init.d/lxc.$NOME&lt;br /&gt;
 rc-update add lxc.$NOME default&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per riavviarla:&lt;br /&gt;
&#039;&#039;&#039;NON&#039;&#039;&#039; usare reboot (o simili) dall&#039;interno del container altrimenti la macchina si stoppa e basta.&lt;br /&gt;
Per riavviare il proprio container bisogna connettersi via ssh a idra con utente reboot e seguire le istruzioni a schermo.&lt;br /&gt;
&lt;br /&gt;
Se al riavvio appaiono errori esoterici riguardanti cgroup &#039;&#039;&#039;DON&#039;T PANIC&#039;&#039;&#039;, conta fino a 180 e prova a riavviarla di nuovo.&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowToRete&amp;diff=365</id>
		<title>HowToRete</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowToRete&amp;diff=365"/>
		<updated>2013-08-29T16:50:05Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bene, hai un&#039;antenna sul tetto ed ora?&lt;br /&gt;
&lt;br /&gt;
Se tutto è andato a buon fine appena collegato alla rete il tuo computer riceverà delle informazioni come IP, rotte, DNS servers, ... vediamo un po&#039; cosa sono, se funziona tutto e se hai accesso alla rete...&lt;br /&gt;
&lt;br /&gt;
In questa guida si assume che tu abbia Linux.&lt;br /&gt;
&lt;br /&gt;
Se invece sei utente Windows o Mac probabilmente ti &amp;quot;basta che funzioni&amp;quot;, salta direttamente a: [[#Riavviare|Riavviare]], se non funziona passa a [[#Riavviare|Riavviare]]. Se invece fossi interessato a capire ed a smanettare ti invitiamo a creare una nuova guida su questo wiki che tratti anche altri sistemi operativi!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Quando ti connetti ad una rete di computers stai usando un insieme di protocolli ed elementi fisici, le loro interazioni sono schematizzate in uno standard chiamato [http://it.wikipedia.org/wiki/Open_Systems_Interconnection OSI]. Per avere un&#039;idea del funzionamento della rete eigenNet, ma non solo, possiamo partire descrivendo il percorso che faranno i dati dalla sorgente alla destinazione, partiamo dal computer (il tuo) passo passo:&lt;br /&gt;
#Dei dati devono essere spediti dal computer client, per esempio il tuo, ad un server, per esempio uno dei server di wikipedia&lt;br /&gt;
#Il computer richiede ad un server DNS qual è l&#039;IP del server di wikipedia (don&#039;t panic, è tutto spiegato più sotto)&lt;br /&gt;
#Una volta ottenuto l&#039;IP il computer proverà a connettersi al server per ricevere i dati, i testi, le immagini&lt;br /&gt;
#Per fare questo creerà dei piccoli pacchetti di bits che verranno spediti alla scheda di rete (sia questa wireless o via cavo) contenenti la richiesta di questo o quel contenuto presente su wikipedia&lt;br /&gt;
#La scheda di rete si occuperà di trasmettere i pacchetti al passo successivo, nel caso della nostra rete i pacchetti verranno trasmessi fino all&#039;antenna che è sul tuo tetto o sul tetto più vicino e da lì inizierà il percorso fino al gateway più vicino, dal quale raggiungerà il sito richiesto.&lt;br /&gt;
#Per il ritorno basta seguire il percorso inverso ma questa volta non serve il passaggio del DNS visto che i pacchetti contengono già nei loro header gli IP corretti (come una raccomandata a/r).&lt;br /&gt;
&lt;br /&gt;
Un po&#039; di spiegazioni dei termini usati:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un IP è un indirizzo numerico (ad esempio 123.4.56.78) che identifica un PC in una rete, se il PC viene spostato su una rete diversa il suo IP sarà diverso. Ci sono due tipi di IP: quello classico (IPv4) e quello nuovissimo (IPv6).&lt;br /&gt;
**Un IPv4 è un indirizzo formato da 4 campi di 8 bit ciascuno, in decimale i valori oscillano da 0 a 255 (ad esempio 123.4.56.78)&amp;lt;br /&amp;gt;&lt;br /&gt;
::https://en.wikipedia.org/wiki/IPv4&amp;lt;br /&amp;gt;&lt;br /&gt;
:*Un IPv6 è un indirizzo formato da 8 campi di 16 bit ciascuno, in base16 i valori oscillano da 0000 a FFFF (ad esempio 2a00:1508:1:f010:abcd:1234:ef56:7890)&amp;lt;br /&amp;gt;&lt;br /&gt;
::https://en.wikipedia.org/wiki/IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Quando ci si connette ad una rete o si imposta sul proprio PC un IP statico o si chiede al DHCP che ci dia lui un IP.&lt;br /&gt;
:Il [http://it.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol DHCP] è protocollo che permette di avere assegnati i parametri corretti al momento della connessione, esso provvederà (se correttamente configurato lato server) a fornirci principalmente IP, rotte e DNS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Il gateway è chi (il modem di casa, il router wireless, un server...) ci permette di raggiungere internet, è l&#039;apparecchio che inoltrerà i nostri pacchetti verso il resto del mondo e da cui passeranno le risposte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un pacchetto è un blocco di 1 e 0 che viaggia su una linea di comunicazione. Chi vuole inviare dei dati li traduce in uni e zeri, li divide in pacchetti (di solito la dimensione massima di un pacchetto è circa un kilobyte e mezzo) e aggiunge all&#039;inizio del pacchetto (header) delle informazioni come l&#039;IP di destinazione e l&#039;IP del mittente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Una interfaccia di rete rappresenta la componente fisica (di solito, ma non solo) con cui il PC si interfaccia col mondo esterno, ad esempio una interfaccia di rete può essere la porta a cui attacchi il cavo di rete (porta ethernet, su Linux solitamente si chiama eth0) oppure la scheda wireless del portatile (solitamente si chiama wlan0).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Le rotte sono delle indicazioni che istruiscono il computer riguardo a come fare per poter raggiungere un certo computer in base al suo IP. Ad esempio una rotta può essere qualcosa tipo: &amp;quot;per comunicare tutti i pc che hanno un IP che inizia con 12.34. (la destnazione, può riferirsi ad un IP solo o a un grosso gruppo di IP che iniziano tutti nello stesso modo) devi passare tramite il pc che ha IP 11.22.33.44 (il gateway)&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
:Perciò ogni rotta è un&#039;indicazione &amp;quot;stradale&amp;quot; ed è strutturata così:&lt;br /&gt;
 :{| border=1&lt;br /&gt;
    | primo campo&lt;br /&gt;
    | destinazione (default = 0.0.0.0/0 ovvero tutto)&lt;br /&gt;
    | es. 192.168.1.0/24&lt;br /&gt;
    |-&lt;br /&gt;
    | secondo campo&lt;br /&gt;
    | gateway ovvero colui che ti permette di raggiungere la destinazione&lt;br /&gt;
    | es. via 192.168.1.1&lt;br /&gt;
    |-&lt;br /&gt;
    | campo dev&lt;br /&gt;
    | indica l&#039;interfaccia di rete (ad es. wireless o cavo o vpn) attraverso la quale si raggiunge la destinazione&lt;br /&gt;
    | es. dev wlan0&lt;br /&gt;
    |}&lt;br /&gt;
&lt;br /&gt;
Usando il terminale su Linux vediamo la configurazione delle rotte sul nostro pc per esempio con il commando &amp;quot;ip route show&amp;quot;, ottenendo qualcosa di simile a:&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ip route show&lt;br /&gt;
 default via 10.175.0.101 dev wlan0  proto static &lt;br /&gt;
 10.0.0.0/8 via 172.18.0.1 dev eigennet &lt;br /&gt;
 10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 &lt;br /&gt;
 172.16.0.0/12 via 172.18.0.1 dev eigennet &lt;br /&gt;
 172.18.0.0/24 dev eigennet  proto kernel  scope link  src 172.18.0.213 &lt;br /&gt;
 192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.111 &lt;br /&gt;
&lt;br /&gt;
*:&amp;quot;10.0.0.0/8 via 172.18.0.1 dev eigennet&amp;quot; vuol dire che tutti i computer con IP 10.X.Y.Z  sono raggiungibili attraverso il gateway avente IPv4 172.18.0.1 e l&#039;interfaccia di rete &amp;quot;eigennet&amp;quot; (in questo caso non si tratta di interfaccia fisica, come quella via cavo o wireless bensì di una interfaccia che comunica con una [[VPN]], argomento molto più avanzato).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*:&amp;quot;10.174.0.0/15 dev wlan0&amp;quot; vuol dire che tutti i computer con IP 10.17{cifra che può essere 4 o 5}.X.Y sono raggiungibili direttamente (cioè senza dover passare da un gateway) attraverso l&#039;interfaccia wireless chiamata &amp;quot;wlan0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*I DNS (Domain Name Server) sono dei server che conoscono le associazioni &amp;quot;nome del sito&amp;quot; &amp;lt;-&amp;gt; &amp;quot;indirizzo IP del server su cui sta il sito&amp;quot;. Il punto è che la comunicazione avviene tra l&#039;IP del PC e l&#039;IP del server, dunque non si può contattare un sito, esempio &amp;quot;eigenlab.org&amp;quot; senza prima conoscerne l&#039;indirizzo IP. Quando noi cerchiamo di contattare un sito scrivendone il nome (come eigenlab.org) il nostro PC farà una domanda ad un DNS (del quale conosciamo già l&#039;IP perchè ce lo ha detto il DHCP server) il quale ci risponderà con l&#039;indirizzo IP associato a quel nome (nel nostro caso ad esempio l&#039;associazione sarà eigenlab.org-&amp;gt;10.175.0.85).&lt;br /&gt;
:Se ti interessa approfondire cos&#039;è un server DNS puoi dare un&#039;occhiata &amp;lt;br /&amp;gt;&lt;br /&gt;
:https://en.wikipedia.org/wiki/Domain_Name_System&amp;lt;br /&amp;gt;&lt;br /&gt;
:Per vedere come funzionano i DNS distribuiti nella rete eigenNet dai un occhiata a&lt;br /&gt;
:https://wiki.eigenlab.org/index.php/ConfigureBackUpAnycastDNS&lt;br /&gt;
&lt;br /&gt;
Bene innanzitutto vediamo se tutto è ok&lt;br /&gt;
&lt;br /&gt;
Prova ad aprire un terminale  (in Linux ha l&#039;icona di un quadrato nero, spesso sta in:programmi-&amp;gt;accessori-&amp;gt;console/terminale) &lt;br /&gt;
&lt;br /&gt;
ed a scrivere: &lt;br /&gt;
&lt;br /&gt;
 ping 10.174.0.100 [invio]&lt;br /&gt;
&lt;br /&gt;
Questo farà in modo che il tuo computer provi a  parlare con uno dei server interni alla rete, quello che farà sarà mandare tanti piccoli pacchetti con scritto PING ed aspetterà altrettanti PONG in risposta dal server che ha IPv4 10.174.0.100.&lt;br /&gt;
&lt;br /&gt;
Se compare qualcosa simile a:&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ping 10.174.0.100&lt;br /&gt;
 PING 10.174.0.100 (10.174.0.100) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=1 ttl=63 time=247 ms&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=5 ttl=63 time=70.9 ms&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=7 ttl=63 time=124 ms&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=8 ttl=63 time=80.9 ms&lt;br /&gt;
&lt;br /&gt;
Allora stai comunicando con il server e sei dentro la rete :-)&lt;br /&gt;
&lt;br /&gt;
Per interrompere il comando premi “Ctrl+C” (come per fare copia) che nella shell Linux termina un programma&lt;br /&gt;
&lt;br /&gt;
 --- 10.174.0.100 ping statistics ---&lt;br /&gt;
 8 packets transmitted, 4 received, 50% packet loss, time 7029ms&lt;br /&gt;
 rtt min/avg/max/mdev = 70.992/130.862/247.472/70.216 ms&lt;br /&gt;
&lt;br /&gt;
Questa sezione da qualche informaziona aggiuntiva ovvero quanti PING non hanno ricevuto un PONG, il minor tempo di risposta, quello medio, quello massimo e la deviazione standard dei tempi.&lt;br /&gt;
&lt;br /&gt;
Altrimenti se il risultato è &lt;br /&gt;
&lt;br /&gt;
 user@computer $ ping 10.174.0.100&lt;br /&gt;
 PING 10.174.0.100 (10.174.0.100) 56(84) bytes of data.&lt;br /&gt;
 ^C (ovvero Ctrl+C per interrompere)&lt;br /&gt;
 --- 10.174.0.100 ping statistics ---&lt;br /&gt;
 *70 packets transmitted, 0 received, 100% packet loss, time 69058ms*&lt;br /&gt;
&lt;br /&gt;
Vuol dire che non sei collegato alla rete, dobbiamo iniziare a fare un po&#039; di indagini. Intanto capiamo come è configurato il tuo computer.&lt;br /&gt;
&lt;br /&gt;
== Trubleshooting ==&lt;br /&gt;
Cominciamo col controllare un elemento per volta fra quelli coinvolti solitamente nei problemi dal lato client.&lt;br /&gt;
&lt;br /&gt;
=== Controllo Dell&#039;IP===&lt;br /&gt;
&lt;br /&gt;
Sempre da un terminale prova a scrivere&lt;br /&gt;
&lt;br /&gt;
Se sei connesso in wireless &lt;br /&gt;
 ip address show dev wlan0 (o il nome dell&#039;interfaccia wireless, ad es. potrebbe essere wlan1, eth1, ath0, ra0) [invio]&lt;br /&gt;
&lt;br /&gt;
Se sei connesso via cavo &lt;br /&gt;
&lt;br /&gt;
 ip address show dev eth0 (o il nome dell&#039;interfaccia via cavo) [invio]&lt;br /&gt;
&lt;br /&gt;
se il risultato è simile a&lt;br /&gt;
 user@computer $  ip address show dev [nome interfaccia]&lt;br /&gt;
 3: [interfaccia]: : &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1350 qdisc pfifo_fast state UNKNOWN qlen 500&lt;br /&gt;
     link/ether e6:b9:06:73:14:1a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 10.175.0.213/15 brd 10.175.0.255 scope global &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
     inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
     inet6 fe80::e4b9:6ff:fe73:141a/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allora hai un indirizzo ipv4 e ipv6 impostati. Non stupirti se vedi tutti questi indirizzi IP diversi, ne puoi avere quanti vuoi anche sulla stessa interfaccia di rete (anche se normalmente sono pochi).&lt;br /&gt;
&lt;br /&gt;
Cosa guardare:&lt;br /&gt;
 &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; &lt;br /&gt;
*è lo stato dell&#039;interfaccia le cose importanti sono UP, LOWER_UP che ci dicono che l&#039;interfaccia è attiva (potrebbe essere disattivata via software, via hardware ad esempio col bottoncino della wireless fisicamente presente sul portatile oppure semplicemente potrebbe esserci il cavo di rete staccato o rovinato (nel caso di scritta NO-CARRIER)).&lt;br /&gt;
&lt;br /&gt;
 inet 10.175.0.213/15 brd 10.175.0.255 scope global &lt;br /&gt;
&lt;br /&gt;
*10.175.0.213 è l&#039;IPv4 dell&#039;interfaccia: la nostra subnet (cioè il nostro gruppo di IP, quelli che il tuo computer, essendo collegato ad eigenNet, può contattare direttamente senza passare da un gateway) inizia con *10.17{5,4}* se hai un IP che comincia in quel modo è uno dei nostri; lo slash in fondo è la dimensione subnet, 15 è corretto.&lt;br /&gt;
&lt;br /&gt;
 inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global &lt;br /&gt;
*questo è l&#039;IPv6 dell&#039;interfaccia: la nostra subnet inizia con *2001:1418:1a9:eebb* se hai un IP che comincia in quel modo è uno dei nostri, come prima lo slash in fondo indica la subnet, 64 è corretto. Ignora la riga &amp;quot;inet6 fe80[...]/64 scope link&amp;quot; che riguarda un indirizzo presente anche se non si è davvero connessi. &lt;br /&gt;
&lt;br /&gt;
==== Nessun IP ====&lt;br /&gt;
Se non hai gli IP impostati possiamo guardare le interfacce, ci viene in aiuto il comando &lt;br /&gt;
&lt;br /&gt;
 ip link&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ip link &lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
 2: eth0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000&lt;br /&gt;
     link/ether 00:23:8b:0b:b5:39 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
 3: wlan0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP mode DORMANT qlen 1000&lt;br /&gt;
    link/ether 00:23:4d:69:d5:f7 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&lt;br /&gt;
Anche qui possiamo vedere che ad esempio l&#039;intefaccia eth0 &lt;br /&gt;
  &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; &lt;br /&gt;
Dice NO-CARRIER ovvero non collegato, potrebbe essere il caso di controllare l&#039;attacco del cavo ethernet (cavo staccato o cavo rovinato)&lt;br /&gt;
&lt;br /&gt;
E con state DOWN ci informa  che l&#039;interfaccia eth0 è spenta&lt;br /&gt;
&lt;br /&gt;
Mentre l&#039;interfaccia wlan0 &lt;br /&gt;
 &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt;&lt;br /&gt;
Dice che è collegata e tutto funziona&lt;br /&gt;
&lt;br /&gt;
Una possibile soluzione nel caso che una delle interfacce avesse come state DOWN è la seguente:&lt;br /&gt;
 sudo ip link set dev &amp;lt;interfaccia&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
Dopodichè ricontrollare se l&#039;interfaccia è UP e provare a riconnettersi alla rete per vedere se viene assegnato un IP.&lt;br /&gt;
&lt;br /&gt;
Altre cose &#039;&#039;esotiche&#039;&#039; che potrebbero impedire ad una interfaccia di rete di essere UP: il bottoncino della wireless sul portatile è su off, è necessario sbloccare l&#039;interfaccia wireless via software con &lt;br /&gt;
 rfkill unblock all&lt;br /&gt;
oppure raramente può esser necessario ricaricate i driver della scheda di rete, trovate il nome del driver con&lt;br /&gt;
 lspci -k&lt;br /&gt;
sotto &amp;quot;Network controller&amp;quot; o &amp;quot;Ethernet controller&amp;quot;, dopo &amp;quot;Kernel driver in use:&amp;quot;, lo rimuovete e ricaricate con&lt;br /&gt;
 sudo rmmod &amp;lt;nome del driver&amp;gt;; sudo modprobe &amp;lt;nome del driver&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nel caso l&#039;interfaccia indicasse UP per un certo tempo ma non si ricevesse un IP dal server DHCP è possibile capire cosa stia succedendo:&lt;br /&gt;
*Se usate NetworkManager controllate se siete associati all&#039;Access Point (AP) di eigennet con&lt;br /&gt;
 nm-tool&lt;br /&gt;
*Altrimenti provate con&lt;br /&gt;
 iwconfig&lt;br /&gt;
* O ancora &lt;br /&gt;
 iw dev &amp;lt;interfaccia&amp;gt; link&lt;br /&gt;
&lt;br /&gt;
Che vi daranno informazioni sulla connessione wireless, sopratutto i primi campi. Se risultate associati all&#039;access point (cioè c&#039;è scritto il nome della rete, ad esempio &amp;quot;eigenNet&amp;quot;) allora provate a dare&lt;br /&gt;
 sudo dhcpcd wlan0 &lt;br /&gt;
oppure, se lamenta che dhcpcd non esiste&lt;br /&gt;
 sudo dhclient -v wlan0&lt;br /&gt;
Che cercherà nuovamente di ottenere i parametri (IP, rotte, DNS...) chiedendo se nella rete sono presenti dei server DHCP. In base all&#039;output (il testo che esce dai comandi sopra riportati) capirete se ci sono altri problemi e potrete contattarci per segnalarlo ed aiutarci.&lt;br /&gt;
&lt;br /&gt;
=== Controllo Delle Rotte ===&lt;br /&gt;
&lt;br /&gt;
A questo punto controlliamo le rotte. Le possiamo controllare usando il comando &lt;br /&gt;
&lt;br /&gt;
 ip route show&lt;br /&gt;
&lt;br /&gt;
Ottenendo qualcosa di simile a&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ip route show&lt;br /&gt;
 default via 10.175.0.101 dev wlan0  proto static &lt;br /&gt;
 10.0.0.0/8 via 172.18.0.1 dev eigennet &lt;br /&gt;
 10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 &lt;br /&gt;
 172.16.0.0/12 via 172.18.0.1 dev eigennet &lt;br /&gt;
 172.18.0.0/24 dev eigennet  proto kernel  scope link  src 172.18.0.213 &lt;br /&gt;
 192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.111 &lt;br /&gt;
&lt;br /&gt;
==== Nessuna rotta ====&lt;br /&gt;
Per navigare dentro eigennet non serve una rotta global (0.0.0.0/0) perchè è una rete locale e, una volta connessi, si può raggiungere ogni risorsa dall&#039;interno. &lt;br /&gt;
&lt;br /&gt;
Se quindi il comando vi restituisce qualcosa di simile a &lt;br /&gt;
 user@computer $ ip route show&lt;br /&gt;
 10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 &lt;br /&gt;
&lt;br /&gt;
Vuol dire che avete la possibilità di raggiungere tutte le risorse interne ma che non potete raggiungere internet. Questo può essere a causa di qualche problema con i gateway o un problema nel raggiungerli. Se conoscete l&#039;IP della macchina che dovrebbe farvi da gateway per il mondo provate a pingarla (ovvero fare un ping al suo indirizzo) per vedere se la raggiungete. Nel caso non riusciste fatecelo sapere, qualcosa sta succedendo sulla rete.&lt;br /&gt;
&lt;br /&gt;
==== Rotta presente ma comunque non raggiungo internet ====&lt;br /&gt;
&lt;br /&gt;
Nel caso ci sia una rotta definita anche per default ma non foste comunque in grado di connettervi potete aiutarci nel risolvere il problema digitando in un terminale il comando&lt;br /&gt;
 traceroute wikipedia.org&lt;br /&gt;
o &lt;br /&gt;
 tracepath wikipedia.org&lt;br /&gt;
&lt;br /&gt;
questo dovrebbe dare un risultato similie a &lt;br /&gt;
&lt;br /&gt;
 user@computer $ tracepath wikipedia.org&lt;br /&gt;
 1:  etherpad.eigenlab.org                           0.090ms pmtu 1500&lt;br /&gt;
 1:  10.175.0.101                                       0.811ms &lt;br /&gt;
 1:  10.175.0.101                                       0.496ms &lt;br /&gt;
 2:  131.114.186.1                                     0.946ms &lt;br /&gt;
 3:  fib-ser.unipi.it                                      0.945ms asymm  4 &lt;br /&gt;
 4:  ru-unipi-rx1-pi1.pi1.garr.net                   0.970ms &lt;br /&gt;
 5:  rx1-pi1-rx1-rm2.rm2.garr.net                 9.030ms &lt;br /&gt;
 6:  r-rm2-rx1-rm2.rm2.garr.net                   5.639ms asymm  7 &lt;br /&gt;
 7:  no reply                                              alcuni server nascondono il loro nome&lt;br /&gt;
 8:  no reply                                              &lt;br /&gt;
 9:  tiscali.mil01.atlas.cogentco.com           18.962ms asymm 10 &lt;br /&gt;
 10:  xe-9-2-0.was10.ip4.tinet.net                 113.285ms asymm 15 &lt;br /&gt;
 11:  no reply&lt;br /&gt;
 12:  no reply&lt;br /&gt;
 13:  no reply&lt;br /&gt;
 14:  no reply&lt;br /&gt;
 15:  no reply&lt;br /&gt;
 16: 208.80.152.201                                              152.453ms reached&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questo comando restituisce il percorso che hanno fatto i nostri pacchetti per raggiungere la destinazione, nel caso non riusciste a vedere un &amp;quot;&amp;quot;reached&amp;quot;&amp;quot; in fondo all&#039;output del comando segnalatecelo includendo anche l&#039;ultimo ip che vedete.&lt;br /&gt;
&lt;br /&gt;
Per servizi interni alla rete, per come essa è strutturata, questo comando non funziona&lt;br /&gt;
&lt;br /&gt;
=== Controllo dei DNS === &lt;br /&gt;
Se tutto è andato bene ma non riuscite comunque a navigare potrebbe essere un problema di DNS per vedere quali avete impostati controllate il file /etc/resolv.conf&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Il risultato dovrebbe essere simile a questo:&lt;br /&gt;
&lt;br /&gt;
 user@computer $ cat /etc/resolv.conf &lt;br /&gt;
 nameserver 10.174.0.101&lt;br /&gt;
 nameserver 10.174.0.100&lt;br /&gt;
&lt;br /&gt;
queste due righe indicano gli IP dei server DNS, se il file è vuoto lancia questo comando da shell&lt;br /&gt;
&lt;br /&gt;
 echo -e &amp;quot;nameserver 10.174.0.100\nnameserver 10.174.0.101&amp;quot;&amp;gt;/etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Che sovrascrive in /etc/resolv.conf con le due righe corrette.&lt;br /&gt;
&lt;br /&gt;
Un sintomo del fatto che i DNS non funzionino può essere che facendo&lt;br /&gt;
 ping google.it&lt;br /&gt;
&lt;br /&gt;
il terminale non reagisce (come succedeva all&#039;inizio della pagina ) ma&lt;br /&gt;
 ping 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
Invece funziona.&lt;br /&gt;
&lt;br /&gt;
Per fare manualmente la richiesta dell&#039;IP associato ad un nome&lt;br /&gt;
&lt;br /&gt;
 dig nomesi.to&lt;br /&gt;
&lt;br /&gt;
o se volete chiedere ad un server particolare (ad esempio a 8.8.8.8, un dns di google)&lt;br /&gt;
&lt;br /&gt;
 dig @8.8.8.8 nomesi.to&lt;br /&gt;
&lt;br /&gt;
Dig solitamente è installato di default, se non lo fosse cercate su internet il nome della vostra distribuzione più dig (solitamente sta in qualche programma chiamato dnsutils, bindtools...)&lt;br /&gt;
&lt;br /&gt;
=== Entrare nelle antenne ===&lt;br /&gt;
&lt;br /&gt;
Istruzioni? Eh... C&#039;è da usare ssh...&lt;br /&gt;
&lt;br /&gt;
=== Ma la mia antenna funziona/è accesa? ===&lt;br /&gt;
&lt;br /&gt;
Per controllare che l&#039;antenna sia accesa si possono sfruttare un paio di cose:&lt;br /&gt;
&lt;br /&gt;
* Prima di tutto collegarsi via cavo all&#039;antenna usando il cavo ethernet che arriva in casa o attaccandosi al POE (Power Over Ethernet ovvero lo scatolino nero che alimenta l&#039;antenna usando la porta con scritto LAN, NON POE (perchè altrimenti forse si frigge la scheda di rete)&lt;br /&gt;
 &lt;br /&gt;
* controllare che sull&#039;interfaccia cablata &#039;&#039;&#039;non&#039;&#039;&#039; compaia NO-CARRIER col comando&lt;br /&gt;
&lt;br /&gt;
 ip link show dev &amp;lt;interfaccia&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*provare a fare dei ping IPv6 link local ovvero provare a pingare un indirizzo che viene tradotto dal protocollo ipv6 in “ ogni scheda attaccata direttamente all&#039;interfaccia “ questo si può fare digitando il comando&lt;br /&gt;
&lt;br /&gt;
 ping6 ff02::1%&amp;lt;nome dell&#039;interfaccia di rete cablata ad esempio eth0&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se si riceve risposta bisogna prendere nota dell&#039;IPv6 locale della propria scheda di rete ethernet in modo da poter vedere se l&#039;antenna risponde ai ping. Questo si fa facilemnte con&lt;br /&gt;
&lt;br /&gt;
 ip -6 address show dev eth0&lt;br /&gt;
&lt;br /&gt;
e guardando l&#039;ip che comincia con fe80:: , se ai ping risponde anche un&#039;altro IP l&#039;antenna è accesa e risponde&lt;br /&gt;
&lt;br /&gt;
=== Riavviare ===&lt;br /&gt;
Una cosa buona se l&#039;antenna per qualche motivo non si comporta bene è riavviarla, per farlo basta staccare il cavo attaccato allo scatolino nero alla porta con scritto POE oppure togliere la corrente se per caso il montaggio è stato fatto portando la corrente sul tetto, aspettare 12 secondi contando&lt;br /&gt;
* Prealpi Trivenete 1 &lt;br /&gt;
* Alpi Giulie 2&lt;br /&gt;
* Alpi Carniche 3&lt;br /&gt;
* ...&lt;br /&gt;
* Alpi Liguri e Alpi Marittime 12&lt;br /&gt;
&lt;br /&gt;
Se comunque non sei riuscito a risolvere [https://eigenlab.org/index.php/dove-siamo contattaci].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Su eigenNet ci sono diversi servizi, li puoi scoprire qui:&lt;br /&gt;
&lt;br /&gt;
http://eigenlab.org/index.php/eigennet/servizi&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowToBatman&amp;diff=364</id>
		<title>HowToBatman</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowToBatman&amp;diff=364"/>
		<updated>2013-08-28T13:05:04Z</updated>

		<summary type="html">&lt;p&gt;Kiba: Creata pagina con &amp;quot;Con queste istruzioni si può creare una mesh di prova fra diversi pc oppure collegarsi ad EigenNet, utilizzando batman-adv e antenna wireless integrata.    Prima di inzia...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Con queste istruzioni si può creare una mesh di prova fra diversi pc oppure collegarsi ad [[EigenNet]], utilizzando batman-adv e antenna wireless integrata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prima di inziare fermiamo il nostro network manager, potrebbe interferire.&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/network-manager stop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dobbiamo impostare la modalità della nostra scheda wireless. Può essere Managed (client che si connette ad access point), Master (agisce da access point), Ad-Hoc (nodi che si collegano fra loro senza access point). Quindi scegliamo la modalità Ad-Hoc.&lt;br /&gt;
&lt;br /&gt;
 iwconfig wlan0 mode Ad-Hoc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Batman incapsula il traffico aggiungendo un header di 28 bytes in ogni pacchetto, quindi bisogna aumentare la dimensione massima dei pacchetti che possono essere trasmessi sull&#039;interfaccia fisica da 1500 a 1528 (in modo che possano passare i pacchetti originariamente grandi 1500)&lt;br /&gt;
&lt;br /&gt;
 ifconfig wlan0 mtu 1528&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Possiamo scegliere il canale su cui operare. Saltando questo passaggio si usa il canale 1&lt;br /&gt;
&lt;br /&gt;
 iwconfig wlan0 channel [n]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;essid serve ad identificare gli altri nodi della mesh&lt;br /&gt;
&lt;br /&gt;
 iwconfig wlan0 essid &amp;quot;lamiamesh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Impostiamo anche lo stesso bssid perchè alcuni driver wifi hanno problemi quando ci sono molti nodi con bssid diversi e non si associano.&lt;br /&gt;
&lt;br /&gt;
 iwconfig wlan0 ap 02:aa:bb:cc:dd:ee&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A questo punto possiamo tirare su l&#039;interfaccia&lt;br /&gt;
&lt;br /&gt;
 ip link set wlan0 up&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Molto probabilmente avremo già il modulo batman-adv, in caso contrario lo scarichiamo e installiamo da http://www.open-mesh.org . Per caricarlo&lt;br /&gt;
&lt;br /&gt;
 modprobe batman-adv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Batman opera in kernel space per evitare il sovraccarico di read() e write() che avrebbe processando i pacchetti in user space.&lt;br /&gt;
Per configurare il modulo batman-adv si usa il programma batctl.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adesso aggiungiamo le interfacce su cui vogliamo fare la mesh&lt;br /&gt;
 batctl if add wlan0&lt;br /&gt;
&lt;br /&gt;
e batman crea automagicamente una nuova interfaccia virtuale bat0 inconsapevole del layer inferiore, che ci collega a tutti gli altri partecianti alla mesh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configuriamo il layer 3. Tutti i partecipanti possono assegnarsi un ip oppure uno può attivare un server dhcp su bat0&lt;br /&gt;
&lt;br /&gt;
 ip a add 192.168.1.1/24 dev bat0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
per l&#039;accesso ad internet uno dei nodi può agire da gateway:&lt;br /&gt;
 iptables -t nat -A POSTROUTING -o intefaccia_con_internet -j MASQUERADE&lt;br /&gt;
e sui client&lt;br /&gt;
 ip r add default via ip_del_gateway dev bat0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
per dare la possibilità ad altri di partecipare alla mesh, senza usare batman e collegandosi alla porta ethernet del pc, si usano i bridge.&lt;br /&gt;
&lt;br /&gt;
 brctl addbr mesh-bridge&lt;br /&gt;
 brctl addif mesh-bridge eth0&lt;br /&gt;
 brctl addif mesh-bridge bat0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== e per openwrt? ==&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.openwrt.org/12.09/openwrt.git&lt;br /&gt;
 make menuconfig e classica configurazione. kmod-batman-adv si trova sotto Kernel modules -&amp;gt; Network Support&lt;br /&gt;
&lt;br /&gt;
Si usano appositi file di configurazione&lt;br /&gt;
in /etc/config/wireless&lt;br /&gt;
 config wifi-iface &#039;wmesh&#039;&lt;br /&gt;
        option device &#039;device fisico&#039;&lt;br /&gt;
        option ifname &#039;adhoc0&#039;&lt;br /&gt;
        option network &#039;mesh&#039;&lt;br /&gt;
        option mode &#039;adhoc&#039;&lt;br /&gt;
        option ssid &#039;lamiamesh&#039;&lt;br /&gt;
        option bssid &#039;02:aa:bb:cc:dd:ee&#039;&lt;br /&gt;
in /etc/config/network&lt;br /&gt;
 config interface &#039;mesh&#039;&lt;br /&gt;
        option ifname &#039;adhoc0&#039;&lt;br /&gt;
        option mtu &#039;1528&#039;&lt;br /&gt;
        option proto &#039;batadv&#039;&lt;br /&gt;
        option mesh &#039;bat0&#039;&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=HowToRete&amp;diff=363</id>
		<title>HowToRete</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=HowToRete&amp;diff=363"/>
		<updated>2013-08-28T12:43:46Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bene, hai un&#039;antenna sul tetto ed ora?&lt;br /&gt;
&lt;br /&gt;
Se tutto è andato a buon fine appena collegato alla rete il tuo computer riceverà delle informazioni come IP, rotte, DNS servers, ... vediamo un po&#039; cosa sono, se funziona tutto e se hai accesso alla rete...&lt;br /&gt;
&lt;br /&gt;
In questa guida si assume che tu abbia Linux.&lt;br /&gt;
&lt;br /&gt;
Se invece sei utente Windows o Mac probabilmente ti &amp;quot;basta che funzioni&amp;quot;, salta direttamente a: [[#Riavviare|Riavviare]], se non funziona passa a [[#Riavviare|Riavviare]]. Se invece fossi interessato a capire ed a smanettare ti invitiamo a creare una nuova guida su questo wiki che tratti anche altri sistemi operativi!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Quando ti connetti ad una rete di computers stai usando un insieme di protocolli ed elementi fisici, le loro interazioni sono schematizzate in uno standard chiamato [http://it.wikipedia.org/wiki/Open_Systems_Interconnection OSI]. Per avere un&#039;idea del funzionamento della rete eigenNet, ma non solo, possiamo partire descrivendo il percorso che faranno i dati dalla sorgente alla destinazione, partiamo dal computer (il tuo) passo passo:&lt;br /&gt;
#Dei dati devono essere spediti dal computer client, per esempio il tuo, ad un server, per esempio uno dei server di wikipedia&lt;br /&gt;
#Il computer richiede ad un server DNS qual è l&#039;IP del server di wikipedia (don&#039;t panic, è tutto spiegato più sotto)&lt;br /&gt;
#Una volta ottenuto l&#039;IP il computer proverà a connettersi al server per ricevere i dati, i testi, le immagini&lt;br /&gt;
#Per fare questo creerà dei piccoli pacchetti di bits che verranno spediti alla scheda di rete (sia questa wireless o via cavo) contenenti la richiesta di questo o quel contenuto presente su wikipedia&lt;br /&gt;
#La scheda di rete si occuperà di trasmettere i pacchetti al passo successivo, nel caso della nostra rete i pacchetti verranno trasmessi fino all&#039;antenna che è sul tuo tetto o sul tetto più vicino e da lì inizierà il percorso fino al gateway più vicino, dal quale raggiungerà il sito richiesto.&lt;br /&gt;
#Per il ritorno basta seguire il percorso inverso ma questa volta non serve il passaggio del DNS visto che i pacchetti contengono già nei loro header gli IP corretti (come una raccomandata a/r).&lt;br /&gt;
&lt;br /&gt;
Un po&#039; di spiegazioni dei termini usati:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un IP è un indirizzo numerico (ad esempio 123.4.56.78) che identifica un PC in una rete, se il PC viene spostato su una rete diversa il suo IP sarà diverso. Ci sono due tipi di IP: quello classico (IPv4) e quello nuovissimo (IPv6).&lt;br /&gt;
**Un IPv4 è un indirizzo formato da 4 campi di 8 bit ciascuno, in decimale i valori oscillano da 0 a 255 (ad esempio 123.4.56.78)&amp;lt;br /&amp;gt;&lt;br /&gt;
::https://en.wikipedia.org/wiki/IPv4&amp;lt;br /&amp;gt;&lt;br /&gt;
:*Un IPv6 è un indirizzo formato da 8 campi di 16 bit ciascuno, in base16 i valori oscillano da 0000 a FFFF (ad esempio 2a00:1508:1:f010:abcd:1234:ef56:7890)&amp;lt;br /&amp;gt;&lt;br /&gt;
::https://en.wikipedia.org/wiki/IPv6&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Quando ci si connette ad una rete o si imposta sul proprio PC un IP statico o si chiede al DHCP che ci dia lui un IP.&lt;br /&gt;
:Il [http://it.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol DHCP] è protocollo che permette di avere assegnati i parametri corretti al momento della connessione, esso provvederà (se correttamente configurato lato server) a fornirci principalmente IP, rotte e DNS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Il gateway è chi (il modem di casa, il router wireless, un server...) ci permette di raggiungere internet, è l&#039;apparecchio che inoltrerà i nostri pacchetti verso il resto del mondo e da cui passeranno le risposte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un pacchetto è un blocco di 1 e 0 che viaggia su una linea di comunicazione. Chi vuole inviare dei dati li traduce in uni e zeri, li divide in pacchetti (di solito la dimensione massima di un pacchetto è circa un kilobyte e mezzo) e aggiunge all&#039;inizio del pacchetto (header) delle informazioni come l&#039;IP di destinazione e l&#039;IP del mittente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Una interfaccia di rete rappresenta la componente fisica (di solito, ma non solo) con cui il PC si interfaccia col mondo esterno, ad esempio una interfaccia di rete può essere la porta a cui attacchi il cavo di rete (porta ethernet, su Linux solitamente si chiama eth0) oppure la scheda wireless del portatile (solitamente si chiama wlan0).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Le rotte sono delle indicazioni che istruiscono il computer riguardo a come fare per poter raggiungere un certo computer in base al suo IP. Ad esempio una rotta può essere qualcosa tipo: &amp;quot;per comunicare tutti i pc che hanno un IP che inizia con 12.34. (la destnazione, può riferirsi ad un IP solo o a un grosso gruppo di IP che iniziano tutti nello stesso modo) devi passare tramite il pc che ha IP 11.22.33.44 (il gateway)&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
:Perciò ogni rotta è un&#039;indicazione &amp;quot;stradale&amp;quot; ed è strutturata così:&lt;br /&gt;
 :{| border=1&lt;br /&gt;
    | primo campo&lt;br /&gt;
    | destinazione (default = 0.0.0.0/0 ovvero tutto)&lt;br /&gt;
    | es. 192.168.1.0/24&lt;br /&gt;
    |-&lt;br /&gt;
    | secondo campo&lt;br /&gt;
    | gateway ovvero colui che ti permette di raggiungere la destinazione&lt;br /&gt;
    | es. via 192.168.1.1&lt;br /&gt;
    |-&lt;br /&gt;
    | campo dev&lt;br /&gt;
    | indica l&#039;interfaccia di rete (ad es. wireless o cavo o vpn) attraverso la quale si raggiunge la destinazione&lt;br /&gt;
    | es. dev wlan0&lt;br /&gt;
    |}&lt;br /&gt;
&lt;br /&gt;
Usando il terminale su Linux vediamo la configurazione delle rotte sul nostro pc per esempio con il commando &amp;quot;ip route show&amp;quot;, ottenendo qualcosa di simile a:&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ip route show&lt;br /&gt;
 default via 10.175.0.101 dev wlan0  proto static &lt;br /&gt;
 10.0.0.0/8 via 172.18.0.1 dev eigennet &lt;br /&gt;
 10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 &lt;br /&gt;
 172.16.0.0/12 via 172.18.0.1 dev eigennet &lt;br /&gt;
 172.18.0.0/24 dev eigennet  proto kernel  scope link  src 172.18.0.213 &lt;br /&gt;
 192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.111 &lt;br /&gt;
&lt;br /&gt;
*:&amp;quot;10.0.0.0/8 via 172.18.0.1 dev eigennet&amp;quot; vuol dire che tutti i computer con IP 10.X.Y.Z  sono raggiungibili attraverso il gateway avente IPv4 172.18.0.1 e l&#039;interfaccia di rete &amp;quot;eigennet&amp;quot; (in questo caso non si tratta di interfaccia fisica, come quella via cavo o wireless bensì di una interfaccia che comunica con una [[VPN]], argomento molto più avanzato).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*:&amp;quot;10.174.0.0/15 dev wlan0&amp;quot; vuol dire che tutti i computer con IP 10.17{cifra che può essere 4 o 5}.X.Y sono raggiungibili direttamente (cioè senza dover passare da un gateway) attraverso l&#039;interfaccia wireless chiamata &amp;quot;wlan0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*I DNS (Domain Name Server) sono dei server che conoscono le associazioni &amp;quot;nome del sito&amp;quot; &amp;lt;-&amp;gt; &amp;quot;indirizzo IP del server su cui sta il sito&amp;quot;. Il punto è che la comunicazione avviene tra l&#039;IP del PC e l&#039;IP del server, dunque non si può contattare un sito, esempio &amp;quot;eigenlab.org&amp;quot; senza prima conoscerne l&#039;indirizzo IP. Quando noi cerchiamo di contattare un sito scrivendone il nome (come eigenlab.org) il nostro PC farà una domanda ad un DNS (del quale conosciamo già l&#039;IP perchè ce lo ha detto il DHCP server) il quale ci risponderà con l&#039;indirizzo IP associato a quel nome (nel nostro caso ad esempio l&#039;associazione sarà eigenlab.org-&amp;gt;10.175.0.85).&lt;br /&gt;
:Se ti interessa approfondire cos&#039;è un server DNS puoi dare un&#039;occhiata &amp;lt;br /&amp;gt;&lt;br /&gt;
:https://en.wikipedia.org/wiki/Domain_Name_System&amp;lt;br /&amp;gt;&lt;br /&gt;
:Per vedere come funzionano i DNS distribuiti nella rete eigenNet dai un occhiata a&lt;br /&gt;
:https://wiki.eigenlab.org/index.php/ConfigureBackUpAnycastDNS&lt;br /&gt;
&lt;br /&gt;
Bene innanzitutto vediamo se tutto è ok&lt;br /&gt;
&lt;br /&gt;
Prova ad aprire un terminale  (in Linux ha l&#039;icona di un quadrato nero, spesso sta in:programmi-&amp;gt;accessori-&amp;gt;console/terminale) &lt;br /&gt;
&lt;br /&gt;
ed a scrivere: &lt;br /&gt;
&lt;br /&gt;
 ping 10.174.0.100 [invio]&lt;br /&gt;
&lt;br /&gt;
Questo farà in modo che il tuo computer provi a  parlare con uno dei server interni alla rete, quello che farà sarà mandare tanti piccoli pacchetti con scritto PING ed aspetterà altrettanti PONG in risposta dal server che ha IPv4 10.174.0.100.&lt;br /&gt;
&lt;br /&gt;
Se compare qualcosa simile a:&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ping 10.174.0.100&lt;br /&gt;
 PING 10.174.0.100 (10.174.0.100) 56(84) bytes of data.&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=1 ttl=63 time=247 ms&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=5 ttl=63 time=70.9 ms&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=7 ttl=63 time=124 ms&lt;br /&gt;
 64 bytes from 10.174.0.100: icmp_seq=8 ttl=63 time=80.9 ms&lt;br /&gt;
&lt;br /&gt;
Allora stai comunicando con il server e sei dentro la rete :-)&lt;br /&gt;
&lt;br /&gt;
Per interrompere il comando premi “Ctrl+C” (come per fare copia) che nella shell Linux termina un programma&lt;br /&gt;
&lt;br /&gt;
 --- 10.174.0.100 ping statistics ---&lt;br /&gt;
 8 packets transmitted, 4 received, 50% packet loss, time 7029ms&lt;br /&gt;
 rtt min/avg/max/mdev = 70.992/130.862/247.472/70.216 ms&lt;br /&gt;
&lt;br /&gt;
Questa sezione da qualche informaziona aggiuntiva ovvero quanti PING non hanno ricevuto un PONG, il minor tempo di risposta, quello medio, quello massimo e la deviazione standard dei tempi.&lt;br /&gt;
&lt;br /&gt;
Altrimenti se il risultato è &lt;br /&gt;
&lt;br /&gt;
 user@computer $ ping 10.174.0.100&lt;br /&gt;
 PING 10.174.0.100 (10.174.0.100) 56(84) bytes of data.&lt;br /&gt;
 ^C (ovvero Ctrl+C per interrompere)&lt;br /&gt;
 --- 10.174.0.100 ping statistics ---&lt;br /&gt;
 *70 packets transmitted, 0 received, 100% packet loss, time 69058ms*&lt;br /&gt;
&lt;br /&gt;
Vuol dire che non sei collegato alla rete, dobbiamo iniziare a fare un po&#039; di indagini. Intanto capiamo come è configurato il tuo computer.&lt;br /&gt;
&lt;br /&gt;
== Trubleshooting ==&lt;br /&gt;
Cominciamo col controllare un elemento per volta fra quelli coinvolti solitamente nei problemi dal lato client.&lt;br /&gt;
&lt;br /&gt;
=== Controllo Dell&#039;IP===&lt;br /&gt;
&lt;br /&gt;
Sempre da un terminale prova a scrivere&lt;br /&gt;
&lt;br /&gt;
Se sei connesso in wireless &lt;br /&gt;
 ip address show dev wlan0 (o il nome dell&#039;interfaccia wireless, ad es. potrebbe essere wlan1, eth1, ath0, ra0) [invio]&lt;br /&gt;
&lt;br /&gt;
Se sei connesso via cavo &lt;br /&gt;
&lt;br /&gt;
 ip address show dev eth0 (o il nome dell&#039;interfaccia via cavo) [invio]&lt;br /&gt;
&lt;br /&gt;
se il risultato è simile a&lt;br /&gt;
 user@computer $  ip address show dev [nome interfaccia]&lt;br /&gt;
 3: [interfaccia]: : &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1350 qdisc pfifo_fast state UNKNOWN qlen 500&lt;br /&gt;
     link/ether e6:b9:06:73:14:1a brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 10.175.0.213/15 brd 10.175.0.255 scope global &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
     inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
     inet6 fe80::e4b9:6ff:fe73:141a/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allora hai un indirizzo ipv4 e ipv6 impostati. Non stupirti se vedi tutti questi indirizzi IP diversi, ne puoi avere quanti vuoi anche sulla stessa interfaccia di rete (anche se normalmente sono pochi).&lt;br /&gt;
&lt;br /&gt;
Cosa guardare:&lt;br /&gt;
 &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; &lt;br /&gt;
*è lo stato dell&#039;interfaccia le cose importanti sono UP, LOWER_UP che ci dicono che l&#039;interfaccia è attiva (potrebbe essere disattivata via software, via hardware ad esempio col bottoncino della wireless fisicamente presente sul portatile oppure semplicemente potrebbe esserci il cavo di rete staccato o rovinato (nel caso di scritta NO-CARRIER)).&lt;br /&gt;
&lt;br /&gt;
 inet 10.175.0.213/15 brd 10.175.0.255 scope global &lt;br /&gt;
&lt;br /&gt;
*10.175.0.213 è l&#039;IPv4 dell&#039;interfaccia: la nostra subnet (cioè il nostro gruppo di IP, quelli che il tuo computer, essendo collegato ad eigenNet, può contattare direttamente senza passare da un gateway) inizia con *10.17{5,4}* se hai un IP che comincia in quel modo è uno dei nostri; lo slash in fondo è la dimensione subnet, 15 è corretto.&lt;br /&gt;
&lt;br /&gt;
 inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global &lt;br /&gt;
*questo è l&#039;IPv6 dell&#039;interfaccia: la nostra subnet inizia con *2001:1418:1a9:eebb* se hai un IP che comincia in quel modo è uno dei nostri, come prima lo slash in fondo indica la subnet, 64 è corretto. Ignora la riga &amp;quot;inet6 fe80[...]/64 scope link&amp;quot; che riguarda un indirizzo presente anche se non si è davvero connessi. &lt;br /&gt;
&lt;br /&gt;
==== Nessun IP ====&lt;br /&gt;
Se non hai gli IP impostati possiamo guardare le interfacce, ci viene in aiuto il comando &lt;br /&gt;
&lt;br /&gt;
 ip link&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ip link &lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
 2: eth0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000&lt;br /&gt;
     link/ether 00:23:8b:0b:b5:39 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
 3: wlan0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP mode DORMANT qlen 1000&lt;br /&gt;
    link/ether 00:23:4d:69:d5:f7 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&lt;br /&gt;
Anche qui possiamo vedere che ad esempio l&#039;intefaccia eth0 &lt;br /&gt;
  &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; &lt;br /&gt;
Dice NO-CARRIER ovvero non collegato, potrebbe essere il caso di controllare l&#039;attacco del cavo ethernet (cavo staccato o cavo rovinato)&lt;br /&gt;
&lt;br /&gt;
E con state DOWN ci informa  che l&#039;interfaccia eth0 è spenta&lt;br /&gt;
&lt;br /&gt;
Mentre l&#039;interfaccia wlan0 &lt;br /&gt;
 &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt;&lt;br /&gt;
Dice che è collegata e tutto funziona&lt;br /&gt;
&lt;br /&gt;
Una possibile soluzione nel caso che una delle interfacce avesse come state DOWN è la seguente:&lt;br /&gt;
 sudo ip link set dev &amp;lt;interfaccia&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
Dopodichè ricontrollare se l&#039;interfaccia è UP e provare a riconnettersi alla rete per vedere se viene assegnato un IP.&lt;br /&gt;
&lt;br /&gt;
Altre cose &#039;&#039;esotiche&#039;&#039; che potrebbero impedire ad una interfaccia di rete di essere UP: il bottoncino della wireless sul portatile è su off, è necessario sbloccare l&#039;interfaccia wireless via software con &lt;br /&gt;
 rfkill unblock all&lt;br /&gt;
oppure raramente può esser necessario ricaricate i driver della scheda di rete, trovate il nome del driver con&lt;br /&gt;
 lspci -k&lt;br /&gt;
sotto &amp;quot;Network controller&amp;quot; o &amp;quot;Ethernet controller&amp;quot;, dopo &amp;quot;Kernel driver in use:&amp;quot;, lo rimuovete e ricaricate con&lt;br /&gt;
 sudo rmmod &amp;lt;nome del driver&amp;gt;; sudo modprobe &amp;lt;nome del driver&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nel caso l&#039;interfaccia indicasse UP per un certo tempo ma non si ricevesse un IP dal server DHCP è possibile capire cosa stia succedendo:&lt;br /&gt;
*Se usate NetworkManager controllate se siete associati all&#039;Access Point (AP) di eigennet con&lt;br /&gt;
 nm-tool&lt;br /&gt;
*Altrimenti provate con&lt;br /&gt;
 iwconfig&lt;br /&gt;
* O ancora &lt;br /&gt;
 iw dev &amp;lt;interfaccia&amp;gt; link&lt;br /&gt;
&lt;br /&gt;
Che vi daranno informazioni sulla connessione wireless, sopratutto i primi campi. Se risultate associati all&#039;access point (cioè c&#039;è scritto il nome della rete, ad esempio &amp;quot;eigenNet&amp;quot;) allora provate a dare&lt;br /&gt;
 sudo dhcpcd wlan0 &lt;br /&gt;
oppure, se lamenta che dhcpcd non esiste&lt;br /&gt;
 sudo dhclient -v wlan0&lt;br /&gt;
Che cercherà nuovamente di ottenere i parametri (IP, rotte, DNS...) chiedendo se nella rete sono presenti dei server DHCP. In base all&#039;output (il testo che esce dai comandi sopra riportati) capirete se ci sono altri problemi e potrete contattarci per segnalarlo ed aiutarci.&lt;br /&gt;
&lt;br /&gt;
=== Controllo Delle Rotte ===&lt;br /&gt;
&lt;br /&gt;
A questo punto controlliamo le rotte. Le possiamo controllare usando il comando &lt;br /&gt;
&lt;br /&gt;
 ip route show&lt;br /&gt;
&lt;br /&gt;
Ottenendo qualcosa di simile a&lt;br /&gt;
&lt;br /&gt;
 user@computer $ ip route show&lt;br /&gt;
 default via 10.175.0.101 dev wlan0  proto static &lt;br /&gt;
 10.0.0.0/8 via 172.18.0.1 dev eigennet &lt;br /&gt;
 10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 &lt;br /&gt;
 172.16.0.0/12 via 172.18.0.1 dev eigennet &lt;br /&gt;
 172.18.0.0/24 dev eigennet  proto kernel  scope link  src 172.18.0.213 &lt;br /&gt;
 192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.111 &lt;br /&gt;
&lt;br /&gt;
==== Nessuna rotta ====&lt;br /&gt;
Per navigare dentro eigennet non serve una rotta global (0.0.0.0/0) perchè è una rete locale e, una volta connessi, si può raggiungere ogni risorsa dall&#039;interno. &lt;br /&gt;
&lt;br /&gt;
Se quindi il comando vi restituisce qualcosa di simile a &lt;br /&gt;
 user@computer $ ip route show&lt;br /&gt;
 10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 &lt;br /&gt;
&lt;br /&gt;
Vuol dire che avete la possibilità di raggiungere tutte le risorse interne ma che non potete raggiungere internet. Questo può essere a causa di qualche problema con i gateway o un problema nel raggiungerli. Se conoscete l&#039;IP della macchina che dovrebbe farvi da gateway per il mondo provate a pingarla (ovvero fare un ping al suo indirizzo) per vedere se la raggiungete. Nel caso non riusciste fatecelo sapere, qualcosa sta succedendo sulla rete.&lt;br /&gt;
&lt;br /&gt;
==== Rotta presente ma comunque non raggiungo internet ====&lt;br /&gt;
&lt;br /&gt;
Nel caso ci sia una rotta definita anche per default ma non foste comunque in grado di connettervi potete aiutarci nel risolvere il problema digitando in un terminale il comando&lt;br /&gt;
 traceroute wikipedia.org&lt;br /&gt;
o &lt;br /&gt;
 tracepath wikipedia.org&lt;br /&gt;
&lt;br /&gt;
questo dovrebbe dare un risultato similie a &lt;br /&gt;
&lt;br /&gt;
 user@computer $ tracepath wikipedia.org&lt;br /&gt;
 1:  etherpad.eigenlab.org                           0.090ms pmtu 1500&lt;br /&gt;
 1:  10.175.0.101                                       0.811ms &lt;br /&gt;
 1:  10.175.0.101                                       0.496ms &lt;br /&gt;
 2:  131.114.186.1                                     0.946ms &lt;br /&gt;
 3:  fib-ser.unipi.it                                      0.945ms asymm  4 &lt;br /&gt;
 4:  ru-unipi-rx1-pi1.pi1.garr.net                   0.970ms &lt;br /&gt;
 5:  rx1-pi1-rx1-rm2.rm2.garr.net                 9.030ms &lt;br /&gt;
 6:  r-rm2-rx1-rm2.rm2.garr.net                   5.639ms asymm  7 &lt;br /&gt;
 7:  no reply                                              alcuni server nascondono il loro nome&lt;br /&gt;
 8:  no reply                                              &lt;br /&gt;
 9:  tiscali.mil01.atlas.cogentco.com           18.962ms asymm 10 &lt;br /&gt;
 10:  xe-9-2-0.was10.ip4.tinet.net                 113.285ms asymm 15 &lt;br /&gt;
 11:  no reply&lt;br /&gt;
 12:  no reply&lt;br /&gt;
 13:  no reply&lt;br /&gt;
 14:  no reply&lt;br /&gt;
 15:  no reply&lt;br /&gt;
 16: 208.80.152.201                                              152.453ms reached&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Questo comando restituisce il percorso che hanno fatto i nostri pacchetti per raggiungere la destinazione, nel caso non riusciste a vedere un &amp;quot;&amp;quot;reached&amp;quot;&amp;quot; in fondo all&#039;output del comando segnalatecelo includendo anche l&#039;ultimo ip che vedete.&lt;br /&gt;
&lt;br /&gt;
Per servizi interni alla rete, per come essa è strutturata, questo comando non funziona&lt;br /&gt;
&lt;br /&gt;
=== Controllo dei DNS === &lt;br /&gt;
Se tutto è andato bene ma non riuscite comunque a navigare potrebbe essere un problema di DNS per vedere quali avete impostati controllate il file /etc/resolv.conf&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Il risultato dovrebbe essere simile a questo:&lt;br /&gt;
&lt;br /&gt;
 user@computer $ cat /etc/resolv.conf &lt;br /&gt;
 nameserver 10.174.0.101&lt;br /&gt;
 nameserver 10.174.0.100&lt;br /&gt;
&lt;br /&gt;
queste due righe indicano gli IP dei server DNS, se il file è vuoto lancia questo comando da shell&lt;br /&gt;
&lt;br /&gt;
 echo -e &amp;quot;nameserver 10.174.0.100\nnameserver 10.174.0.101&amp;quot;&amp;gt;/etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Che sovrascrive in /etc/resolv.conf con le due righe corrette.&lt;br /&gt;
&lt;br /&gt;
Un sintomo del fatto che i DNS non funzionino può essere che facendo&lt;br /&gt;
 ping google.it&lt;br /&gt;
&lt;br /&gt;
il terminale non reagisce (come succedeva all&#039;inizio della pagina ) ma&lt;br /&gt;
 ping 8.8.8.8&lt;br /&gt;
&lt;br /&gt;
Invece funziona.&lt;br /&gt;
&lt;br /&gt;
Per fare manualmente la richiesta dell&#039;IP associato ad un nome&lt;br /&gt;
&lt;br /&gt;
 dig nomesi.to&lt;br /&gt;
&lt;br /&gt;
o se volete chiedere ad un server particolare (ad esempio a 8.8.8.8, un dns di google)&lt;br /&gt;
&lt;br /&gt;
 dig @8.8.8.8 nomesi.to&lt;br /&gt;
&lt;br /&gt;
Dig solitamente è installato di default, se non lo fosse cercate su internet il nome della vostra distribuzione più dig (solitamente sta in qualche programma chiamato dnsutils, bindtools...)&lt;br /&gt;
&lt;br /&gt;
=== Entrare nelle antenne ===&lt;br /&gt;
&lt;br /&gt;
Istruzioni? Eh... C&#039;è da usare ssh...&lt;br /&gt;
&lt;br /&gt;
=== Ma la mia antenna funziona/è accesa? ===&lt;br /&gt;
&lt;br /&gt;
Per controllare che l&#039;antenna sia accesa si possono sfruttare un paio di cose:&lt;br /&gt;
&lt;br /&gt;
* Prima di tutto collegarsi via cavo all&#039;antenna usando il cavo ethernet che arriva in casa o attaccandosi al POE (Power Over Ethernet ovvero lo scatolino nero che alimenta l&#039;antenna usando la porta con scritto LAN, NON POE (perchè altrimenti forse si frigge la scheda di rete)&lt;br /&gt;
 &lt;br /&gt;
* controllare che sull&#039;interfaccia cablata &#039;&#039;&#039;non&#039;&#039;&#039; compaia NO-CARRIER col comando&lt;br /&gt;
&lt;br /&gt;
 ip link show dev &amp;lt;interfaccia&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*provare a fare dei ping IPv6 link local ovvero provare a pingare un indirizzo che viene tradotto dal protocollo ipv6 in “ ogni scheda attaccata direttamente all&#039;interfaccia “ questo si può fare digitando il comando&lt;br /&gt;
&lt;br /&gt;
 ping6 ff02::1%&amp;lt;nome dell&#039;interfaccia di rete cablata ad esempio eth0&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se si riceve risposta bisogna prendere nota dell&#039;IPv6 locale della propria scheda di rete ethernet in modo da poter vedere se l&#039;antenna risponde ai ping. Questo si fa facilemnte con&lt;br /&gt;
&lt;br /&gt;
 ip -6 address show dev eth0&lt;br /&gt;
&lt;br /&gt;
e guardando l&#039;ip che comincia con fe80:: , se ai ping risponde anche un&#039;altro IP l&#039;antenna è accesa e risponde&lt;br /&gt;
&lt;br /&gt;
=== Riavviare ===&lt;br /&gt;
Una cosa buona se l&#039;antenna per qualche motivo non si comporta bene è riavviarla, per farlo basta staccare il cavo attaccato allo scatolino nero alla porta con scritto POE oppure togliere la corrente se per caso il montaggio è stato fatto portando la corrente sul tetto, aspettare 12 secondi contando&lt;br /&gt;
* Prealpi Trivenete 1 &lt;br /&gt;
* Alpi Giulie 2&lt;br /&gt;
* Alpi Carniche 3&lt;br /&gt;
* ...&lt;br /&gt;
* Alpi Liguri e Alpi Marittime 12&lt;br /&gt;
&lt;br /&gt;
Se comunque non sei riuscito a risolvere contattaci[https://eigenlab.org/index.php/dove-siamo].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Su eigenNet ci sono diversi servizi, li puoi scoprire qui:&lt;br /&gt;
&lt;br /&gt;
http://eigenlab.org/index.php/eigennet/servizi&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
	<entry>
		<id>https://wiki.eigenlab.org/index.php?title=Discussioni_utente:Svalo&amp;diff=229</id>
		<title>Discussioni utente:Svalo</title>
		<link rel="alternate" type="text/html" href="https://wiki.eigenlab.org/index.php?title=Discussioni_utente:Svalo&amp;diff=229"/>
		<updated>2013-03-05T19:12:48Z</updated>

		<summary type="html">&lt;p&gt;Kiba: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Io mi pensavo quella pagina come una bozza per tirare giù tutti gli argomenti da trattare e dicutere insieme il modo e la profondità per argomento.&lt;br /&gt;
Chiunque abbia dubbi su *qualsiasi cosa* non si faccia problemi, anche e sopratutto se è qualcosa di cui parliamo spesso.[[Utente:Svalo|Svalo]] ([[Discussioni utente:Svalo|discussioni]]) 09:36, 5 mar 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hai fatto bene, però secondo la prassi di kiwipedia, per le prove si usano sottopagine delle pagine utente, ad esempio Utente:Svalo/eigenGuida , in modo da tenere le discussioni relative all&#039;utente separate dalle pagine di prova (che possono essere più di una, con relative discussioni) --[[Utente:Kiba|Kiba]] ([[Discussioni utente:Kiba|discussioni]]) 19:12, 5 mar 2013 (UTC)&lt;/div&gt;</summary>
		<author><name>Kiba</name></author>
	</entry>
</feed>