seconda versione
This commit is contained in:
parent
1c148679a2
commit
8841335a9f
12
README.md
12
README.md
|
@ -1,12 +1,15 @@
|
||||||
# Criptolibretto
|
# Criptolibretto
|
||||||
|
|
||||||
|
Un criptolibretto in puro testo con formattazione markdown, convertibile in PDF
|
||||||
|
via pandoc e stampabile in formato pieghevole. Con documentazione.
|
||||||
|
|
||||||
Il criptolibretto nasce il 15 aprile 2018 per avere un pieghevole da
|
Il criptolibretto nasce il 15 aprile 2018 per avere un pieghevole da
|
||||||
portare al cryptoparty organizzato da Unit hacklab presso Macao.
|
portare al cryptoparty organizzato da Unit hacklab presso Macao Milano.
|
||||||
|
|
||||||
Il criptolibretto è in lavorazione.
|
Il criptolibretto è in lavorazione.
|
||||||
|
|
||||||
Se desideri ottenere il Pdf prima versione pronto da stampare,
|
Per ottenere il Pdf prima versione pronto da stampa, è disponibile a questo link
|
||||||
è disponibile a questo link il [criptolibretto versione 15 aprile 2018]
|
il [criptolibretto versione 15 aprile 2018]
|
||||||
|
|
||||||
## Ottenere il Pdf
|
## Ottenere il Pdf
|
||||||
|
|
||||||
|
@ -46,9 +49,8 @@ le pagine sono una dritta e una storta.
|
||||||
|
|
||||||
L'azione di pinzare o cucire il libretto si dice "binding".
|
L'azione di pinzare o cucire il libretto si dice "binding".
|
||||||
|
|
||||||
## Markdown
|
### Markdown
|
||||||
|
|
||||||
* Guida di riferimento: [Pandoc's Markdown](https://pandoc.org/MANUAL.html#pandocs-markdown)
|
* Guida di riferimento: [Pandoc's Markdown](https://pandoc.org/MANUAL.html#pandocs-markdown)
|
||||||
|
|
||||||
[criptolibretto versione 15 aprile 2018]: http://cloud.unit.macaomilano.org/f/11f14729b3cd4d97a5f3/
|
[criptolibretto versione 15 aprile 2018]: http://cloud.unit.macaomilano.org/f/11f14729b3cd4d97a5f3/
|
||||||
|
|
||||||
|
|
21
TODO.md
21
TODO.md
|
@ -2,8 +2,21 @@
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
* selfhosting
|
### Fix my error nella conversione Pdf
|
||||||
espandere la scaletta
|
|
||||||
|
|
||||||
* ingrandire i caratteri di stampa, se possibile senza ricorre a YALM
|
|
||||||
|
|
||||||
|
make nella conversione sputa questo errore:
|
||||||
|
|
||||||
|
! Package babel Error: You haven't specified a language option.
|
||||||
|
See the babel package documentation for explanation.
|
||||||
|
Type H <return> for immediate help.
|
||||||
|
...
|
||||||
|
l.343 ...ry to proceed from here, type x to quit.}
|
||||||
|
pandoc: Error producing PDF
|
||||||
|
Makefile:2: recipe for target 'book-a4.pdf' failed
|
||||||
|
make: *** [book-a4.pdf] Error 43
|
||||||
|
|
||||||
|
il pacchetto texlive-lang-italian è installato
|
||||||
|
Forse è il mio setup poco CTAN e tanto apt-get
|
||||||
|
|
||||||
|
Workaround: levato "lang: italian" dallo yalm di book.md e funziona,
|
||||||
|
ma si ottiene un PDF in inglese. Cioé "Contents" invece di "Index". Acc.
|
||||||
|
|
442
book.md
442
book.md
|
@ -1,293 +1,381 @@
|
||||||
---
|
---
|
||||||
title: "Cripto libretto"
|
title: "Cripto libretto"
|
||||||
author: Unit hacklab - unit@paranoici.org
|
author: Unit hacklab - unit@paranoici.org
|
||||||
date: Aprile 2018
|
date: 12 Gennaio 2019
|
||||||
lang: italian
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Per una corretta igiene digitale
|
# Per una corretta igiene digitale
|
||||||
|
|
||||||
## Usiamo software libero e a sorgente aperta
|
# Usiamo software libero e a sorgente aperta
|
||||||
|
|
||||||
https://www.gnu.org/philosophy/free-sw.it.html
|
https://gnu.org/philosophy/free-sw.it.html
|
||||||
|
|
||||||
## Una buona password
|
# Una buona password
|
||||||
|
|
||||||
Non usare la stessa password per diversi servizi
|
Non usare la stessa password per diversi servizi
|
||||||
|
|
||||||
Usa una passphrase, ossia una frase di accesso compresa di spazi, facile da ricordare, ma
|
Usa una passphrase, ossia una frase di accesso compresa di spazi, facile da ricordare, ma
|
||||||
difficile da indovinare persino per un computer, ad esempio questa contiene sia maiuscole
|
difficile da indovinare persino per un computer, ad esempio questa contiene sia maiuscole
|
||||||
che numeri, è molto lunga, ma facile da ricordare
|
che numeri, è molto lunga, ma è difficile da dimenticare
|
||||||
|
|
||||||
Nel mezzo del cammin di nostra vita2
|
Nel Mezzo Del Cammin Di Nostra Vita 19
|
||||||
|
|
||||||
## Il password manager
|
# Il password manager
|
||||||
|
|
||||||
Le password da ricordare sono troppe, KeePassX è un software multipiattaforma per la
|
Le password da ricordare sono troppe, KeePassX è un software per la gestione di password
|
||||||
gestione di password, un luogo sicuro dove scriverle, ma non dimenticare la password
|
che offre un luogo sicuro dove scriverle, ma non dimenticare la password principale
|
||||||
principale
|
|
||||||
|
|
||||||
https://www.keepassx.org
|
https://keepassx.org
|
||||||
|
|
||||||
## Accecare la telecamera del portatile
|
# Accecare la telecamera del portatile
|
||||||
|
|
||||||
Attacca un pezzo di scotch nero da elettricista sulla telecamera del portatile, il fatto
|
Attaccare un pezzo di scotch nero da elettricista sulla telecamera del portatile. Il fatto
|
||||||
che non si accenda la lucina non significa che sia spenta.
|
che non si accenda la lucina non significa che sia spenta
|
||||||
|
|
||||||
## Navigazione consapevole
|
# Navigazione consapevole
|
||||||
|
|
||||||
Usiamo Firefox
|
Usiamo Firefox
|
||||||
|
|
||||||
La gestione dei containers e dei profili ci permette di creare ambienti isolati
|
La gestione dei containers e dei profili ci permettono di creare ambienti isolati
|
||||||
|
|
||||||
Containers[^1]: per compartimentare history e cookies
|
Multi-account-containers è un componente aggiuntivo (add-on) per creare schede contenitore
|
||||||
|
(tab) e compartimentare le preferenze del sito, le sessioni registrate e i dati di
|
||||||
|
tracciamento. Un sito non avrà dunque accesso ai dati (cookies) delle altre tab aperte.
|
||||||
|
Questo permette di separare facilmente il lavoro dalla navigazione personale.
|
||||||
|
|
||||||
Profili: sono delle diverse sessioni del browser, per compartimentare anche gli add-on, si
|
I Profili sono delle diverse sessioni del browser, per compartimentare anche gli add-on,
|
||||||
possono aprire scrivendo nella finestra di navigazione:
|
si possono aprire scrivendo nella finestra di navigazione:
|
||||||
|
|
||||||
about:profiles
|
about:profiles
|
||||||
|
|
||||||
Add-ons:
|
Add-ons:
|
||||||
|
|
||||||
|
* multi-account containers
|
||||||
* https-everywhere: preferisce https a http
|
* https-everywhere: preferisce https a http
|
||||||
* ghostly: blocca i tracker della nostra navigazione
|
* ghostly: blocca i tracker della nostra navigazione
|
||||||
* no script: blocca gli script
|
* no script: blocca gli script
|
||||||
* ublock origin: blocca la pubblicità
|
* ublock origin: blocca la pubblicità
|
||||||
|
|
||||||
[^1]: https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers
|
# Navigazione anonima
|
||||||
|
|
||||||
## Navigazione anonima con Tor
|
|
||||||
|
|
||||||
Tor, **T**he **O**nion **R**outer è un protocollo per l'anonimizzazione del traffico web.
|
Tor, **T**he **O**nion **R**outer è un protocollo per l'anonimizzazione del traffico web.
|
||||||
Scarica, installa e usa il programma Tor browser bundle per navigare in rete anonimamente.
|
Scaricare, installare e usare il programma Tor browser bundle per navigare in rete
|
||||||
|
anonimamente
|
||||||
|
|
||||||
Attenzione! Non presumere che il tutto funzioni per magia. Studia, prova, verifica.
|
https://torproject.org
|
||||||
|
|
||||||
https://www.torproject.org/download/download.html.en
|
Attenzione. Non presumere che il tutto funzioni per magia. Studia, prova, chiedi
|
||||||
|
|
||||||
## Tails
|
# Navigazione paranoica
|
||||||
|
|
||||||
TAILS è un sistema operativo smemorato, si avvia da penna Usb e quando lo spegni non
|
Tails è un sistema operativo smemorato, si avvia da penna Usb e una volta spento non
|
||||||
ricorda nulla di quello che è successo. In altre parole usa Tor per navigare in internet
|
ricorda nulla di quello che è successo. In altre parole usa Tor per navigare in internet
|
||||||
anonimamente e permette di usare un computer in prestito senza doverci installare
|
anonimamente e permette di usare un computer in prestito senza doverci installare
|
||||||
nulla. Utile in viaggio.
|
nulla. Utile in viaggio in zone pericolose
|
||||||
|
|
||||||
https://tails.boum.org
|
https://tails.boum.org
|
||||||
|
|
||||||
## Verificare l'integrità del software scaricato
|
# Usare un sistema operativo libero
|
||||||
|
|
||||||
Alcuni software offrono di verificare la loro checksum (somma di controllo), ossia la
|
Usiamo GNU/Linux, disponibile in diverse distribuzioni. Queste tre distribuzioni sono
|
||||||
stringa alfanumerica univoca che risulta applicando un algoritmo chiamato SHA256. Scarica
|
elencate per facilità d'uso
|
||||||
il pacchetto e usa un programma per fare il calcolo, se la stringa (hash) che salta fuori
|
|
||||||
coincide con quella pubblicata sulla pagina web, il pacchetto dovrebbe essere integro.
|
|
||||||
|
|
||||||
openssl sha256 VeraCrypt_1.22_Bundle.7z
|
|
||||||
e51bd8ba4ff40aee084019ddf3a9f8d0e5fa8f743612c581efb2fbf10e36c595
|
|
||||||
|
|
||||||
Alcuni software sono anche accompagnati da una firma digitale, si può verificare con GnuPg
|
|
||||||
che la firma, apposta a lato come file.sig, appartenga all'autore.
|
|
||||||
|
|
||||||
gpg --verify VeraCrypt_1.22_Bundle.7z.sig VeraCrypt_1.22_Bundle.7z
|
|
||||||
|
|
||||||
## Usare un sistema operativo libero
|
|
||||||
|
|
||||||
Usiamo GNU/Linux, disponibile in diverse distribuzioni, elencate in ordine di facilità d'uso.
|
|
||||||
|
|
||||||
* Ubuntu: https://www.ubuntu.com/desktop/1710
|
|
||||||
* Linux Mint: https://linuxmint.com
|
* Linux Mint: https://linuxmint.com
|
||||||
* Bunsenlabs: https://www.bunsenlabs.org
|
* Bunsenlabs: https://www.bunsenlabs.org
|
||||||
* Debian: https://www.debian.org
|
* Debian: https://www.debian.org
|
||||||
|
|
||||||
## Comunicazione sicura dal telefonino
|
## Scaricare e installare una distribuzione GNU/Linux
|
||||||
|
|
||||||
Premessa: consideriamo che gli smartphone sono insicuri per definizione
|
Ad esempio Debian. Dal sito individuare e scaricare l'immagine. Mentre scriviamo la
|
||||||
|
più recente è la 9.6. Per un comune computer moderno usare amd64. Verificare la
|
||||||
|
checksum e masterizzare l'immagine su di un Cd, Dvd o su una penna Usb da almeno 1GB
|
||||||
|
|
||||||
* **Signal.org** è una app che permette di comunicare privatamente
|
Inserire la penna Usb e scoprire dove è stata montata
|
||||||
* **Conversations.im** è una app che permette di comunicare privatamente con protocollo federato
|
|
||||||
* **lineageos.org** è un sistema operativo per telefonini basato su Android
|
|
||||||
|
|
||||||
## VeraCrypt
|
ls -l /dev/disk/by-id/*usb*
|
||||||
|
|
||||||
VeraCrypt è un software che permette di proteggere con una passphrase una penna Usb, utile
|
Nell'esempio che segue la penna è in /dev/sdb, copiarvi Debian:
|
||||||
per trasportare dei documenti in viaggio senza preoccuparsi di perderla. Attenzione che
|
|
||||||
durante la configurazione la penna verrà formattata e sarà poi sempre necessario usare
|
|
||||||
VeraCrypt per montarla.
|
|
||||||
|
|
||||||
https://www.veracrypt.fr/en/Home.html
|
*il contenuto della penna sarà cancellato*
|
||||||
|
|
||||||
## PGP, la crittografia pesante a doppia chiave
|
dd if=debian-9.6.0-amd64-netinst.iso of=/dev/sdb bs=4M; sync
|
||||||
|
|
||||||
* **PGP** Pretty Good Privacy, software di crittografia asimmetrica
|
Riavviare il Pc dalla penna Usb tenendo premuto F12
|
||||||
* **GnuPG** è il suo equivalente libero
|
|
||||||
|
|
||||||
Si usa per cifrare, ma anche per firmare.
|
*Se il Pc non avvia automaticamente dalla penna, entrare nel Bios e scegliere Usb come
|
||||||
|
dispositivo d'avvio. A seconda del modello tenere premuto all'avvio uno di questi tasti:
|
||||||
|
ESC, DEL, F1, F2, F8, F10. Una volta nel Bios, editiamo l'ordine di avvio mettendo per
|
||||||
|
prima la penna Usb*
|
||||||
|
|
||||||
Chi usa GnuPG crea due chiavi, quella privata serve per decifrare, quella pubblica viene
|
Nella procedura di installazione si verrà guidati a scegliere la lingua da usare, la zona
|
||||||
usata dai suoi corrispondenti per cifrare.
|
geografica, il nome del Pc, la rete e la creazione dell'utilizzatore. Durante la
|
||||||
|
partizione guidata formattare l'intero disco senza complicazioni. In conclusione
|
||||||
|
installare Grub bootloader nel Master Boot Record
|
||||||
|
|
||||||
Creare la coppia di chiavi
|
*Il disco del Pc verrà formattato e cancellato, non ci saranno altri sistemi operativi
|
||||||
|
oltre a GNU/Linux Debian. È possibile effettuare al momento dell'installazione scelte
|
||||||
|
diverse per casi particolari*
|
||||||
|
|
||||||
|
*È possibile durante l'installazione crittografare l'intero disco e in questo caso si
|
||||||
|
dovrà mettere una passhprase ad ogni avvio, in aggiunta a quella di login. Consigliabile
|
||||||
|
per un portatile, in caso venga smarrito non ci si dovrà preoccupare della perdita dei
|
||||||
|
dati. Ricordare che senza la passphase non è possibile accedere al disco*
|
||||||
|
|
||||||
|
### Migrare la posta di Thunderbird da quel sistema a GNU/Linux
|
||||||
|
|
||||||
|
Prima di cominciare fare un backup zippando la cartella di Thunderbird
|
||||||
|
|
||||||
|
Poi compattare le cartelle di Thunderbird
|
||||||
|
|
||||||
|
Thunderbird: Menu > File > Compact Folders
|
||||||
|
|
||||||
|
Infine copiare il profilo da un pc all'altro, che si trova, a seconda, in
|
||||||
|
|
||||||
|
Linux: /home/tu/.thunderbird/[profile name]
|
||||||
|
MacOSX: /Users/tu/Library/Thunderbird/Profiles/[profile name]/
|
||||||
|
WindowsXP: C:\Documents and Settings\tu\Application Data\Thunderbird\Profiles
|
||||||
|
Windows7: C:\Users\tu\AppData\Roaming\Thunderbird\Profiles\[profile name]
|
||||||
|
|
||||||
|
In caso di problema, far partire thunderbird con profile manager e sistemare:
|
||||||
|
|
||||||
|
thunderbird -profilemanager
|
||||||
|
|
||||||
|
Se il problema persiste:
|
||||||
|
|
||||||
|
Chiudere e riaprire
|
||||||
|
|
||||||
|
Controllare i permessi
|
||||||
|
|
||||||
|
Verificare il path in ./thunderbird/profiles.ini
|
||||||
|
|
||||||
|
nel mac era: Path=Profiles/76gighirz.default
|
||||||
|
su debian è: Path=76gighirz.default
|
||||||
|
|
||||||
|
Cancellare questi files che comunque si rigenerano da soli
|
||||||
|
|
||||||
|
compreg.dat
|
||||||
|
extensions.cache
|
||||||
|
extensions.ini
|
||||||
|
extensions.rdf
|
||||||
|
pluginreg.dat
|
||||||
|
|
||||||
|
# VeraCrypt, il lucchetto alla penna Usb
|
||||||
|
|
||||||
|
VeraCrypt è un software che permette di proteggere con una passphrase una penna Usb. Utile
|
||||||
|
per trasportare dei documenti in viaggio senza preoccuparsi di perderla.
|
||||||
|
|
||||||
|
*Durante la configurazione la penna verrà formattata e sarà sempre necessario usare
|
||||||
|
VeraCrypt per montarla e accedere al contenuto*
|
||||||
|
|
||||||
|
https://veracrypt.fr
|
||||||
|
|
||||||
|
# GnuPG, la crittografia pesante a doppia chiave
|
||||||
|
|
||||||
|
Gnu Privacy Guard [gnupg.org] è la versione libera del software di crittografia
|
||||||
|
asimmetrica Pgp, Pretty Good Privacy
|
||||||
|
|
||||||
|
Si usa per cifrare, cioè per nascondere il contenuto di un messaggio. E per firmare, cioè
|
||||||
|
per autenticare un messaggio. Dunque anche per decifrare e per verificare una firma
|
||||||
|
|
||||||
|
Il suo scopo è permettere una comunicazione sicura tra persone che non si sono incontrate
|
||||||
|
di persona e frustrare chi intercetta i messaggi ma non ha la chiave per decifrarli
|
||||||
|
|
||||||
|
## Installazione
|
||||||
|
|
||||||
|
Si può usare da terminale o con la grafica, in entrambi i casi si vorrà integrarne l'uso
|
||||||
|
con l'email, dunque *gpg+mutt* o *gpg+enigmail+thunderbird*
|
||||||
|
|
||||||
|
Installare GnuPG, il client di posta grafica e il suo plugin (che può gestire Gpg fin
|
||||||
|
dalla creazione delle chiavi)
|
||||||
|
|
||||||
|
apt-get install gnupg thunderbird enigmail
|
||||||
|
|
||||||
|
## Configurazione e creazione delle chiavi
|
||||||
|
|
||||||
gpg --gen-key
|
gpg --gen-key
|
||||||
|
|
||||||
Creare un certificato di revoca
|
oppure
|
||||||
|
|
||||||
gpg -o revoca-Key-ID.asc --gen-revoke Key-ID
|
Aprire thunderbird > enigmail
|
||||||
|
|
||||||
Esportare la chiave pubblica
|
Creare la coppia di chiavi, indicando una email, assegnando una passphrase e specificando
|
||||||
|
una scadenza. Otterremo una chiave pubblica (pubkey) e una chiave privata (privkey). La
|
||||||
|
pubkey viene conservata privatamente, la pubkey viene divulgata liberamente
|
||||||
|
|
||||||
gpg -a -o mia-chiave-pubblica.txt --export Key-ID
|
## Uso
|
||||||
|
|
||||||
Importare una chiave di qualcuno
|
* Si usa la propria privkey per firmare un documento o una email
|
||||||
|
* Si usa la pubkey di qualcun* per verificare la sua firma al messaggio
|
||||||
|
* Si divulga la propria pubkey perché il nostro corrispondente possa scriverci segretamente
|
||||||
|
* Si ottiene la pubkey del nostro corrispondente per scrivergli segretamente
|
||||||
|
* Si usa la propria privkey per decifrare un messaggio a noi indirizzato
|
||||||
|
* Si usa la pubkey di qualcun* per cifrare un messaggio ad ess* destinato
|
||||||
|
|
||||||
gpg --import chiave.asc
|
Solitamente si invia un messaggio segreto sia cifrandolo che firmandolo ed è ragionevole
|
||||||
|
aspettarsi di ricevere dei messaggi segreti firmati, ma quando non si vuole nascondere
|
||||||
|
il contenuto ma solo avere la certezza di stare dialogando con la persona giusta, si firma
|
||||||
|
solo.
|
||||||
|
|
||||||
Verificare una fingerprint
|
*La crittografia a doppia chiave è semplice, ma non è facile. Usarla nel quotidiano
|
||||||
|
permette di sperimentare e capire attraverso la pratica. Trovare un corrispondente*
|
||||||
|
|
||||||
gpg --fingerprint Key-ID
|
Una guida con infografiche: https://emailselfdefense.fsf.org/it
|
||||||
|
|
||||||
Cifrare un documento per Snowden
|
## Verifica
|
||||||
|
|
||||||
gpg -a -o messaggio.asc --encrypt --recipient snowden-Key-ID messaggio.txt
|
Ogni coppia di chiavi ha una fingerprint che la identifica univocamente. È buona pratica,
|
||||||
|
prima di inserire la chiave nella nostra rete di fiducia, chiedere al vostro
|
||||||
|
corrispondente di leggervi al telefono la sua fingerprint verificando che corrisponda con
|
||||||
|
quella della pubkey che vi siete scambiat*. E viceversa. Il Gpg è una rete sociale
|
||||||
|
|
||||||
Decifrare un documento
|
## Fingerprint, revoca e backup
|
||||||
|
|
||||||
gpg -o messaggio-in-chiaro.txt messaggio.asc
|
Ottenere la fingerprint di una chiave
|
||||||
|
|
||||||
Scaricare la chiave pubblica di qualcuno
|
gpg --fingerprint [email o Key-ID]
|
||||||
|
|
||||||
gpg --keyserver pgp.mit.edu --search-keys Key-ID
|
È consigliabile creare subito un certificato di revoca delle chiavi
|
||||||
|
|
||||||
Verificare una firma accanto a un file
|
gpg -o ~/.gnupg/RevocaCertificato.asc --gen-revoke [fingerprint]
|
||||||
|
|
||||||
gpg --verify file.sig file
|
Fare un backup della cartella nascosta .gnupg da conservare altrove con molta cura
|
||||||
|
|
||||||
## Self hosting
|
tar -zcpf ~/backup-gnupg.tar.gz ~/.gnupg
|
||||||
|
|
||||||
Abbiamo la volontà di avere una copia di riserva dei nostri dati, di sincronizzare una
|
*È possibile usare una penna Usb cifrata con VeraCrypt per contenere il backup di gpg e
|
||||||
rubrica e un calendario con un dispositivo mobile e di condividere documenti. Tutto questo
|
altri dati importanti come le mailbox*
|
||||||
possiamo farlo facilmente con dei servizi commerciali, ma non gratuitamente, a costo
|
|
||||||
invece della nostra libertà. Quando i nostri dati vengono sparpagliati e utilizzati come
|
|
||||||
risorse per creare profitto, subiamo un danno all'integrità del nostro sé digitale.
|
|
||||||
|
|
||||||
Self hosting significa gestire autonomamente uno spazio digitale. Si può fare anche in
|
# Verificare l'integrità di un software scaricato
|
||||||
gruppo e collettivizzare le risorse e i costi. È meno facile che usare i servizi
|
|
||||||
commerciali, ma forse il paragone non è giusto. La guida per coltivare un orto non ha
|
|
||||||
senso che si difenda dicendo: "è meno facile che andare al supermercato".
|
|
||||||
|
|
||||||
Di seguito una guida su come offrire servizi utili da una macchina di casa affacciata alla
|
Alcuni software sono distribuiti accompagnati dal risultato della somma di controllo
|
||||||
rete. In particolare per la costruzione di un server dove avere uno spazio per la
|
(checksum) oppure da una firma digitale a lato (.sig) e la sua fingerprint
|
||||||
condivisione documenti, rubrica e calendario, un wiki, un blog per la scrittura e dove
|
|
||||||
fare un backup senza perdere il controllo dei nostri dati.
|
|
||||||
|
|
||||||
### Requisiti
|
Verificare che la stringa alfanumerica univoca (hash) che risulta applicando l'algoritmo
|
||||||
|
sha256 coincida con quella pubblicata
|
||||||
|
|
||||||
* Un IP pubblico. È obbligatorio darlo da parte del gestore, ma a volte è necessario
|
openssl sha256 debian-9.6.0-amd64-netinst.iso
|
||||||
chiederlo esplicitamente
|
c51d84019c3637ae9d12aa6658ea8c613860c776bd84c6a71eaaf765a0dd60fe
|
||||||
* Utilizzare un Pc con almeno 40 Gb di disco e 1 Gb di RAM
|
|
||||||
|
|
||||||
### Scaletta
|
Verificare una firma
|
||||||
|
|
||||||
* Fare un buco nel firewall del hag/router per far passare la porta 22 e 443
|
gpg --import VeraCrypt_PGP_public_key.asc
|
||||||
* Scaricare, verificare e installare Debian
|
key 821ACD02680D16DE: public key "VeraCrypt Team" imported
|
||||||
* Primo login e gestione root
|
(è stato troncato ciò che non interessa all'esempio)
|
||||||
* Creare una chiave ssh per collegarsi a debian in maniera sicura
|
|
||||||
* Assegnare a debian, attraverso il router, un IP statico nella sottorete
|
|
||||||
* Installare ntp per sincronizzare l'ora
|
|
||||||
* Installare e configurare ufw firewall, aprendo le porte 22 e 443
|
|
||||||
* Installare postfix, local only
|
|
||||||
* Installare e configurare apache
|
|
||||||
* Installare e configurare php
|
|
||||||
* Creare una chiave SSL con LetsEncrypt
|
|
||||||
* Installare e configurare MariaDB
|
|
||||||
* Installare e configurare Nextcloud
|
|
||||||
* Installare e configurare Dokuwiki
|
|
||||||
* Installare e configurare Blogxom
|
|
||||||
* Installare e configurare Duplicity
|
|
||||||
* Hardening: permessi, chroot, suid-suig, fail2ban, rkhunter
|
|
||||||
|
|
||||||
#### Fare un buco nel firewall del hag/router per far passare la porta 22 e 443
|
gpg --fingerprint VeraCrypt
|
||||||
|
5069 A233 D55A 0EEB 174A 5FC3 821A CD02 680D 16DE
|
||||||
|
(coincide con la fingerprint pubblicata sul sito?)
|
||||||
|
|
||||||
A seconda del router utilizzato, l'interfaccia potrebbe essere diversa, alla voce: NAT o
|
gpg --verify veracrypt-1.23-setup.tar.bz2.sig
|
||||||
port forwarding apriamo l'accesso alla porta 22 e 443, che serviranno rispettivamente a
|
Good signature from "VeraCrypt Team"
|
||||||
ssh e https.
|
(Bene. Il warning indica solo che la chiave non è stata da noi firmata)
|
||||||
|
|
||||||
#### Scaricare, verificare e installare Debian
|
*Non è necessario firmare una chiave per usarla. Firmarla serve a ricordare (e nel caso si
|
||||||
|
usi il web of trust, a dichiararlo al mondo) che ci si fida di quella chiave. È giusto
|
||||||
|
farlo dopo averla verificata con una telefonata. p.s. non chiamare al telefono Debian,
|
||||||
|
tantomeno all'ora di cena*
|
||||||
|
|
||||||
Dal sito www.debian.org individuare e scaricare l'immagine della distribuzione, mentre
|
# Collegarsi a un pc usando ssh con scambio di chiavi
|
||||||
scriviamo la più recente è Debian 9.4. Per un comune computer recente useremo amd64.
|
|
||||||
Verificare la checksum e masterizzare l'immagine su di un CD o DVD, ma in questo tutorial
|
|
||||||
useremo una penna USB di almeno 1GB
|
|
||||||
|
|
||||||
Collegare il Pc a monitor, tastiera e cavo ethernet
|
Nella crittografia asimmetrica quando si usa una passphrase per sbloccare una chiave, la
|
||||||
|
decrittazione avviene in locale, perciò la passphrase non viaggia per internet. Questa
|
||||||
|
viene chiamata cifratura *end to end* ed è più sicura
|
||||||
|
|
||||||
Inserire la chiavetta e verificare dove è stata montata
|
Creare la coppia di chiavi per collegarsi al pc
|
||||||
|
|
||||||
sudo ls -l /dev/disk/by-id/*usb*
|
ssh-keygen -b 8192 -t rsa -f chiave
|
||||||
|
|
||||||
Nell'esempio che segue la penna è in /dev/sdb, procediamo a creare la penna d'avvio
|
|
||||||
|
|
||||||
*attenzione che il contenuto della penna sarà cancellato, e attenzione ad essere sicure di
|
Caricare sul pc la chiave pubblica e rinominarla in ~/.ssh/authorized_keys con i
|
||||||
aver indicato correttamente il percorso della penna per non cancellare inavvertitamente
|
giusti permessi
|
||||||
un altro disco innocente*
|
|
||||||
|
|
||||||
sudo dd if=debian.iso of=/dev/sdb bs=4M; sync
|
|
||||||
|
|
||||||
Inserire la penna nel Pc da usare come self host e riavviare tenendo premuto F12
|
cat chiave.pub | ssh tu@pc "mkdir -p ~/.ssh && \
|
||||||
|
chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"
|
||||||
|
|
||||||
*Se il Pc non avvia dalla penna potrebbe essere necessario entrare nel BIOS e scegliere
|
Avviare ssh-agent e usare la chiave privata
|
||||||
Usb come dispositivo d'avvio. A seconda del modello di Pc per entrare nel BIOS potrebbe
|
|
||||||
servire tenere premuto all'avvio uno di questi tasti: F1, F2, F8, DEL, ESC or F10. Una
|
|
||||||
volta entrati, editiamo l'ordine di avvio mettendo la USB flash disco come prioritario*
|
|
||||||
|
|
||||||
La procedura di installazione di Debian è semplice: l'installazione grafica fa da guida
|
|
||||||
per scegliere la lingua da usare, la zona geografica e il nome della macchina, ad esempio
|
|
||||||
"selfhost". Creare l'utente con password e con la partizione guidata formattare l'intero
|
|
||||||
disco senza complicazioni. Usare un network mirror per scaricare il software aggiornato ed
|
|
||||||
è sufficiente scegliere: SSH server e standard system utilities. In conclusione installare
|
|
||||||
GRUB bootloader nel Master Boot Record (MBR) per terminare l'installazione.
|
|
||||||
|
|
||||||
*Attenzione che il disco sarà formattato e cancellato, non ci saranno altri sistemi
|
eval `ssh-agent` ; ssh-add chiave
|
||||||
operativi oltre a GNU/Linux Debian. È possibile effettuare al momento dell'installazione
|
|
||||||
scelte particolari che lasciamo agli utenti esperti*
|
|
||||||
|
|
||||||
#### Primo login e gestione root
|
Collegarsi al pc
|
||||||
|
|
||||||
Al primo avvio saremo di fronte a una schermata dove potremo inserire login e password che
|
*"tu" è il nome utilizzatore e "pc" è il nome o l'indirizzo IP della macchina remota*
|
||||||
abbiamo definito durante l'installazione. Si tratta del primo e fino ad ora unico utente
|
|
||||||
del computer e si tratta di un utente il quale può amministrare la macchina grazie al
|
|
||||||
comando *sudo*.
|
|
||||||
|
|
||||||
Come prima cosa cambiamo la password del nostro utente con una password non banale,
|
ssh tu@pc
|
||||||
|
|
||||||
passwd
|
Dopo verifica sarà possibile disabilitare sul pc l'accesso ssh via password
|
||||||
|
specificando *PasswordAuthentication no* in */etc/ssh/sshd_config*
|
||||||
|
|
||||||
Verifichiamo il nome della macchina
|
# Self hosting con Nextcloud
|
||||||
|
|
||||||
hostname
|
Per avere una copia di riserva dei propri dati, sincronizzare una rubrica e un calendario
|
||||||
|
con un dispositivo mobile e condividere documenti non è obbligatorio usare i servizi
|
||||||
|
commerciali, i quali non sono gratuiti, ma costano in libertà. Quando i nostri dati
|
||||||
|
vengono sparpagliati e utilizzati come risorse per creare profitto, subiamo un danno
|
||||||
|
all'integrità del nostro *mio* digitale. Self hosting significa gestire autonomamente uno
|
||||||
|
spazio digitale. Si può fare in gruppo e collettivizzare le risorse e i costi. È meno
|
||||||
|
facile che usare i servizi commerciali.. ma no, è il paragone che non regge. La guida per
|
||||||
|
fare un orto verticale non deve giustificarsi dicendo che è meno facile che andare al
|
||||||
|
supermercato
|
||||||
|
|
||||||
Prendiamo nota dell'indirizzo IP
|
Installare e configurare Nextcloud (con mariadb, apache2, php7, ufw e fail2ban) su una VPS
|
||||||
|
o un Pc, con già Debian 9
|
||||||
|
|
||||||
hostname -I
|
apt-get install curl
|
||||||
|
curl -sSL https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh | bash
|
||||||
*se non funziona, uno dei due comandi seguenti ci darà l'indirizzo IP*
|
|
||||||
|
|
||||||
ip addr
|
Conservare le password e seguire le info di post installazione
|
||||||
|
|
||||||
ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1
|
|
||||||
|
|
||||||
A questo punto possiamo spegnere il Pc, staccare monitor e tastiera e posizionarla nella
|
|
||||||
sua sistemazione definitiva, vicino a una presa di corrente e raggiungibile da un cavo di
|
|
||||||
rete.
|
|
||||||
|
|
||||||
Fare login su selfhost da un altro Pc ci basta conoscere utente, password e l'indirizzo
|
https://github.com/nextcloud/nextcloudpi/wiki
|
||||||
IP dove trovarla
|
|
||||||
|
|
||||||
ssh user-name@indirizzo-IP
|
Se si ha un (sub)dominio a disposizione si può ottenere da LetsEncrypt un certificato SSL
|
||||||
|
|
||||||
|
ncp-config
|
||||||
|
|
||||||
**TO BE CONTINUED**
|
Configurare nextcloud: creare utenti e attivare calendario, rubrica e quel che serve
|
||||||
|
|
||||||
## Risorse
|
# Comunicazione sicura dal telefonino
|
||||||
|
|
||||||
|
Premessa: consideriamo che gli smartphone sono insicuri per definizione
|
||||||
|
|
||||||
|
* **Signal.org** è una app per comunicare privatamente
|
||||||
|
* **Conversations.im** è una app per comunicare privatamente con protocollo federato
|
||||||
|
* **lineageos.org** è un sistema operativo per telefonini basato su Android
|
||||||
|
|
||||||
|
Il progetto **Privacy matters on my phone** affronta il discorso privacy per livelli
|
||||||
|
|
||||||
|
https://unit.abbiamoundominio.org/pmomp.html
|
||||||
|
|
||||||
|
# Backup incrementale sicuro e remoto con duplicity
|
||||||
|
|
||||||
|
Usando duplicity, ssh e gpg si può crittografare un backup e conservarlo in modo sicuro su
|
||||||
|
un pc remoto. Attenzione a conservare a parte una copia della chiave gpg che serve
|
||||||
|
per il recupero
|
||||||
|
|
||||||
|
apt-get install duplicity
|
||||||
|
|
||||||
|
In questo esempio avviene un backup della Home, con scambio chiavi ssh, definendo la
|
||||||
|
chiave gpg da usare per la cifratura, con esclusione della cartella *Downloads*, sul
|
||||||
|
pc chiamato *pc*, nella directory *backup* dell'utilizzatore con lo stesso nome, in
|
||||||
|
questo esempio chiamato *tu*
|
||||||
|
|
||||||
|
Nei giorni successivi usare stesso comando per eseguire un backup incrementale
|
||||||
|
|
||||||
|
duplicity --use-agent --encrypt-sign-key [Key-ID] --exclude ~/Downloads \
|
||||||
|
$HOME/ sftp://tu@pc//home/tu/backup
|
||||||
|
|
||||||
|
Verificare il backup
|
||||||
|
|
||||||
|
duplicity verify -v9 sftp://tu@pc//home/tu/backup /home/tu
|
||||||
|
|
||||||
|
Recuperare il backup nella cartella *recupero*
|
||||||
|
|
||||||
|
mkdir recupero
|
||||||
|
duplicity sftp://tu@pc//home/tu/backup /home/tu/recupero
|
||||||
|
|
||||||
|
Esiste un front-end grafico di duplicity, chiamato Deja Dup
|
||||||
|
|
||||||
|
apt-get install duplicity deja-dup
|
||||||
|
|
||||||
|
# Risorse
|
||||||
|
|
||||||
Liberati dai programmi globali di sorveglianza
|
Liberati dai programmi globali di sorveglianza
|
||||||
https://prism-break.org/it
|
https://prism-break.org/it
|
||||||
|
@ -297,7 +385,7 @@ comunicazione più libera e strumenti digitali per l'autodifesa della privacy, c
|
||||||
esempio email, blog, mailing list, instant messaging e altro.
|
esempio email, blog, mailing list, instant messaging e altro.
|
||||||
https://www.autistici.org
|
https://www.autistici.org
|
||||||
|
|
||||||
## Consigli
|
# Consigli
|
||||||
|
|
||||||
Il computer non ha un cervello, usa il tuo.
|
Il computer non ha un cervello, usa il tuo.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user