Category: Tech

Some on computers

Linux CryptoAPI

Linux CryptoAPI

Semplice guida all’utilizzo di filesystem cifrati.

Prima di tutto ammetto le mie colpe, questo semplice testo non ha nessuna ambizione teorica, e’ composto semplicemente da una serie di appunti su cose apprese in rete compilata perche’ potesse risultare d’aiuto a chi avesse voluto realizzare una partizione cifrata con GNU/Linux senza doversi sbattere troppo.

Non era infatti un pilastro dell’etica hacker fare in modo che non si dovesse ogni volta reinventare la ruota ? 🙂

[ Perche’ ? ]

Perche’ utilizzare una partizione cifrata ?
Perche’ farsi questa domanda ?
Sono cose a cui non sono io a dover rispondere.
Quando ho scelto di avere una partizione cifrata avevo semplicemente intenzione di custodire i dati degli utenti dentro la “home” in maniera piu’ sicura.
Ognuno degli interessati avra’ sicuramente il suo buon motivo.

[ Kernel ]

Cominciamo col dire che in base ad alcuni accordi internazionali la crittografia pesante e’ considerata una pericolosa arma, uno strumento
prettamente militare, e quindi ci sono stati che ne proibiscono l’esportazione.
Per questi motivi il supporto crittografico non e’ integrato nel kernel ma bisogna installare una patch non ufficiale, rintracciabile attraverso
il sito www.kerneli.org.
Inizialmente questa era denominata patch di internazionalizzazione del kernel, ma adesso, anche se il nome del file e’ ancora lo stesso, il
progetto ha preso il nome di “GNU/Linux CryptoAPI Project”.
Sul mio computer e con il kernel 2.4.20 senza modifiche, ho dovuto applicare in sequenza queste 2 patch:

[tritticho][/usr/src/linux]# patch -p1 < patch-int-2.4.20.1
[tritticho][/usr/src/linux]# patch -p1 < loop-jari-2.4.20.0.patch

La prima e’ per il supporto delle cryptoapi e dei cifrari, la seconda una patch per i loopback device che permette di non dover attivare degli hack non troppo stabili per far funzionare il tutto.
Patchato il kernel si deve far partire il tool di configurazione dello stesso, che sia a linea di comando o con interfaccie varie non cambia molto, e abilitare alcune cose:

Block devices —>
< *> Loopback device support

Cryptography support (CryptoAPI) —>
< *> CryptoAPI support
[*] Cipher Algorithms
< *> AES (aka Rijndael) cipher
[*] Crypto Devices
< *> Loop Crypto support

Naturalmente questa e’ la scelta che io ho adottato, gli algoritmi di cifratura supportati sono molti e sta’ a voi scegliere quello che preferite.
Da notare l’assenza di moduli (sempre una scelta personale) fatta per avere la crittografia subito al boot e il supporto per i loop device che poi spieghero’ meglio.
Diamo una bella ricompilata al kernel e torniamo alla luce con la nostra nuova creatura.

[ E adesso ? ]

Spiego un attimo perche’ abbiamo inserito il supporto per i loop device…
Astrazione!
Si’, e’ come se applicassimo un filtro tra il device fisico e la rappresentazione che ne abbiamo dentro la struttura del filesystem.
Sarebbe risultato sicuramente piu’ complesso modificare i driver di tutti i device e dei filesystem per inserire le funzionalita’ di cifratura e
decifratura, e dove non piu’ complesso sicuramente noioso 🙂
Semplicemente quello che facciamo e’ questo: montiamo la partizione che ci interessa su un loop device e questo in una directory del filesystem in modo che tutti i comandi del kernel passino attraverso il nostro loop device che avra’ il supporto crittografico e si occupera’ di cifrare e decifrare le informazioni in transito.
Oltre ai nostri dati saranno infatti cifrate anche le informazioni relative al filesystem stesso; inoltre grazie ai loop device abbiamo la possibilita’ di creare dei filesystem cifrati “virtuali” dove immagazzinare informazioni o creare immagini cifrate per da scrivere su cd, floppy, penne usb et similia.

Cominciamo creando un piccolo file pieno di “immondizia” 🙂

[tritticho][~]#dd if=/dev/urandom of=prova bs=1M count=20
20+0 records in
20+0 records out
[tritticho][~]#

Abbiamo utilizzato /dev/urandom come consigliato anche sulla documentazione ufficiale solo per avere un margine maggiore di PARANOIA 😉
Adesso associamo uno dei nostri loop device (scegliamo loop0) al file che abbiamo appena creato:

[tritticho][~]# losetup /dev/loop0 prova -e aes
Available keysizes (bits): 128 192 256
Keysize: 128
Password :
[tritticho][~]#

Diamo una formattata al tutto…

[tritticho][~]# mke2fs /dev/loop0
mke2fs 1.27 (8-Mar-2002)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
5136 inodes, 20480 blocks
1024 blocks (5.00%) reserved for the super user
First data block=1
3 block groups
8192 blocks per group, 8192 fragments per group
1712 inodes per group
Superblock backups stored on blocks:
8193

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[tritticho][~]#

Fatto, montiamo il file “prova” che abbiamo creato e siamo a cavallo 🙂

[tritticho][~]# mount -o loop /dev/loop0 /mnt/ -t ext2
[tritticho][~]# cd /mnt/
[tritticho][/mnt]# ls
. .. lost+found
[tritticho][~]#

Possiamo utilizzare il file come un qualsiasi device, una volta smontato il contenuto non sara’ accessibile a chi non conosce la passphrase che abbiamo fornito al primo losetup.
Per rimontare il file una volta smontato:

[tritticho][~]# mount -o loop,encryption=aes prova /mnt/ -t ext2

[ Device fisici ]

E se invece di un device immaginario come un file volessimo cifrare un’intera partizione, ad esempio /home ?
Il procedimento e’ lo stesso, basta sostituire una partizione, ad esempio /dev/hda4, dove prima scrivevamo “prova”.
Se poi vogliamo che la partizione venga montata all’avvio dovremo fornire la passphrase, altrimenti il boot andra’ lo stesso a buon fine ma gli utenti non avranno una casa 🙂
Aggiungiamo dentro /etc/fstab una riga:

/dev/hda4 /home ext3 defaults,loop,encryption=aes 0 2

Naturalmente una volta smontata la /home solo root potra’ rimontarla.
E se volessimo scrivere una traccia cifrata su un cd ?
Il procedimento e’ semplice, creiamo il nostro file con riempiendolo con /dev/urandom (naturalmente senza andare oltre la capacita’ di un cd), usiamo losetup come precedentemente indicato, al momento della formattazione passiamo un’opzione ulteriore, cioe’:

mke2fs /dev/loopX -b 2048

La X e’ il numero del loop device associato naturalmente 🙂

[ Conclusioni ]

Bhe, che dire ?
Naturalmente niente.
E’ questo il momento di sperimentare, non di parlare 🙂

Introduzione spicciola alla crittografia

Introduzione spicciola alla crittografia

Semplicissima introduzione, scritta insieme a RageMan, alla crittografia.

[ 1.0 Introduzione ]

Se la crittografia sara’ fuorilegge, solo i fuorilegge avranno la crittografia.
(Newt Gingrich)

[ 1.1 Terminologia ]

Prima di dare una definizione iniziale e approssimativa della crittografia e’ necessario fare alcune precisazioni sui termini propri di questa
disciplina.
Il testo o l’informazione che si vuole cifrare e’ detto messaggio in chiaro mentre il testo dopo l’operazione di cifratura e’ detto crittogramma.
Affinche’ si passi dal messaggio in chiaro al messaggio cifrato occore un sistema che sia capace di trasformare il primo nel secondo.
Questo sistema viene comunemente detto cifrario.

Possiamo quindi definire la crittografia come la scienza che si occupa di proteggere delle informazioni rendendole incomprensibili a chiunque non possa renderle di nuovo comprensibili mediante il cifrario.

[ 1.2 Crittografia a chiavi ]

Quando la crittografia veniva utilizzata esclusivamente dai militari o dalle agenzie governative, il sistema appena descritto

( messaggio in chiaro -> [cifrario] -> crittogramma )

bastava a garantire la segretezza del messaggio.
In pratica ogni agenzia utilizzava un proprio cifrario e la segretezza di quest’ultimo era fondamentale.

Per poter decifrare il crittogramma, bastava quindi la semplice conoscenza del cifrario.

Nella crittografia moderna al concetto di cifrario e’ stato aggiunto un parametro variabile detto “chiave”.
In pratica lo stesso cifrario puo’ produrre crittogrammi diversi in base a chiavi diverse. Con questo sistema quindi, non e’ piu’ necessario che il cifrario sia segreto poiche’ la segretezza del crittogramma dipende esclusivamente dalla segretezza della chiave.
Si potrebbe pensare che non cambi poi molto, dalla segretezza del cifrario come base del sistema si passa alla segretezza della chiave; in realta’ passando a questo sistema viene resa piu’ piccola la parte da tenere segreta, e, essendo la sicurezza data sempre per margini, il margine di sicurezza aumenta sensibilmente.

Esistono due tipi di applicazione della crittografia a chiavi: quella a chiave simmetrica e quella a chiave asimmetrica.
La differenza sostanziale tra le due applicazioni sta nel fatto che nella prima si utilizza la stessa chiave sia per l’operazione di cifratura che per quella di decifratura, mentre nella seconda si utilizzano due chiavi diverse per le operazioni di cifratura e decifratura.

Nella crittografia a chiave simmetrica sorge il problema dello scambio delle chiavi, poiche’ per cifrare un messaggio il mittente avra’ bisogno della chiave del destinatario, che in qualche modo dovra’ fornirgliela.
Durante questo scambio di chiavi un terzo soggetto potrebbe frapporsi fra il mittente ed il destinatario e venire a conoscenza di questa chiave.

Nella crittografia a chiave asimmetrica questo problema non e’ presente poiche’ la chiave usata per cifrare, che prende nome di chiave pubblica, e’ diversa dalla chiave usata per decifrare, che prende il nome di chiave privata.

[ 1.3 Software per la crittografia ]

Queste astrazioni teoriche sono state concretizzate per il grande pubblico con un software chiamato PGP (Pretty Good Privacy) sviluppato da Phil Zimmermann a partire dal 1991.
Durante i primi anni della sua diffusione, questo software era freeware ed i suoi sorgenti erano disponibili, cio vuol dire che chiunque avesse la capacita’ di comprendere il codice, poteva verificare che questo fosse libero da backdoor, e per un software che tutela la privacy questo e’ un requisito fondamentale.
Quest’ultimo requisito manca a questo software dalla versione 6.5.8 alla 8, e per ovviare a questo problema e’ nato un progetto il cui obiettivo e’ quello di creare un software open source compatibile con le specifiche OpenPGP.
Questo software prende il nome di GPG (Gnu Privacy Guard).
Questo progetto ha ricevuto sovvenzioni da parte del governo tedesco che dopo aver esaminato le relazioni delle commissioni d’inchiesta europee su echelon, ha sentito la necessita’ di avere un software sicuro per la crittografia a chiave asimmetrica ad utilizzo di privati ed imprese.

Crittografia: why?

Crittografia: why?

“Voglio una tenda, non voglio che i vicini mi guardino mentre mi spoglio.“

Tutto potrebbe cominciare cosi`, con una frase detta un bel giorno da qualcuno in una qualche casa.
Uno compra una tenda e la monta, cosi` puo` mantenere la comodita` di avere una luce naturale e unire a cio` la tranquillita` di non essere spiato.
Prassi comune.
Tutti troverebbero legittima una tale pretesa, ognuno ha diritto alla propria intimita`.

Eppure non e` cosi` semplice…

Ci sono cose piu` intime, piu` segrete, piu` preziose di quanto non lo sia il proprio corpo.
C`e` tutto quello che dentro al corpo risiede, tutto quello che attraversa la mente, ci sono le sensazioni e i sentimenti, la comunicazione con se stessi e con gli altri: il nostro universo informazionale.
Pochi comunque pensano al fatto che nella vita di tutti i giorni siamo osservati e ascoltati, spiati da qualcuno, o da qualcosa.
Pochi sono consapevoli di essere protagonisti del film della propria vita ripreso da un anonimo regista.

Sono nella mia stanza, con la tenda tirata, eppure qualcuno potrebbe ascoltarmi o vedermi…. non sono piu` solo.

Paranoia: una patologia che affligge sempre piu` persone o una barriera di protezione che si frappone fra noi ed il mondo che ci circonda ?

Neanche questa volta la risposta e` cosi` semplice.

La riservatezza, l`intimita`, la privacy, sono beni importanti che acquistano sempre piu` valore per il nostro essere parte di un mondo globalizzato che ci osserva e che produce mediante questa costante osservazione.
Certo non vogliamo qui giustificare il tentativo di assimilare tali valori a valori di scambio, non vogliamo farlo perche` significherebbe giustificare o perfino avvalorare una visione mercificata del mondo e della vita.
Stiamo solo tentando di porre l`accento sul fatto che, se un mercato della riservatezza esiste, allora non siamo soltanto dei dannati paranoici.
Se tutto questo fosse un sogno saremmo contenti di poterci risvegliare e dimenticare le nostre vicissitudini oniriche.
Ma aprendo gli occhi veniamo a scontrarci col fatto che la realta` non e` cosi` diversa da quello che gli altri chiamano sogno.

Pensiamo, esemplificando, al fatto che gestire cio` che della propria vita e` lecito sapere e cio` che non lo e` e` il fattore che tiene in vita il meccanismo della celebrita`.
O, ancor meglio, pensiamo ai sondaggi, alle tecnologie d`indagine, alle imprese che, per se stesse o per altri, captano le sensazioni e i gusti della moltitudine.
Chiamereste tutto questo semplicemente “marketing“ ?
No, qui c`e` qualcosa di piu` sottile e persuasivo e, molto spesso, non autorizzato; qualcosa che va oltre la soglia della percezione comune e che arriva ad insinuarsi nelle nostre menti….

Le telecamere invadono le strade, le piazze, i mezzi di trasporto; ormai sono in piu` posti di quanti sia possibile immaginarne, e molte volte non ce ne rendiamo nemmeno conto.
Credete di essere immuni di fronte a queste tecnologie ?
Credete che la vostra immagine sia solo un fotogramma di passaggio ?
Assistiamo ad un processo di miniaturizzazione estrema della tecnologia, leggiamo di societa` che vendono apparecchiature per il tecnocontrollo…
Pensate che questi siano solo “giochini“ per i fantomatici “curiosi“ di turno ?
O al peggio per qualche “maniaco“ ?
Oramai conosciamo bene Echelon, sappiamo quanto sia potente e cosa rappresenti.

Il passamontagna non e` piu` sufficiente.

Ormai staccare la batteria del telefono cellulare quando si tengono conversazioni sensibili non e` una stravaganza, e` la prassi.
Quanta, infatti, della nostra comunicazione passa per canali tecnicamente controllabili ?
Tanta.
Satelliti, cavi, onde elettromagnetiche, quale tra questi canali pensate che non possa essere controllato ?

Direte che abbiamo ancora la nostra mente, che non e` ancora possibile sondare il pensiero.
Ma il pensiero non risiede soltanto nelle nostre teste, il pensiero si materializza.
Continuamente il pensiero viene materializzato per essere comunicato, annotato, trascritto.
Si e` accesa in voi una lampadina ?
Sentiamo sempre piu` sulla nostra pelle che anche cio` che pensiamo puo` essere posto sotto controllo.

Ma allora, a cosa ci serve quella tenda che abbiamo montato all`inizio ?

A darci un segnale.
Siamo controllati, sappiamo di non essere liberi; quella tenda ci segnala che e` giunto il momento che qualcosa cambi.
Siamo ormai stufi di essere spiati sempre e comunque, siamo stufi di una privacy che non esiste.

La condivisione delle informazioni e` il nostro punto di partenza e tale rimarra`.
Ci siamo battuti per i nostri diritti e continueremo a farlo fino a che il nostro obiettivo non sara` raggiunto.
Agevoleremo il prender piede delle innovazioni tecnologiche, ma non avremo pieta` contro chi pensa di utilizzare queste stesse tecnologie contro di noi, non saremo clementi con chi usera` la tecnologia per controllarci e per renderci schiavi di un mondo che non ci appartiene.

Copyright (C) 2002 isazi & RageMan

Sono permesse copia e distribuzione di questo articolo nella sua forma integrale con e attraverso qualsiasi mezzo a patto che rimangano invariati il copyright e questa nota.

Linux ed Internet

Linux ed Internet

Corso base di introduzione a Linux di Metro Olografix, lezione sulla connessione ad internet.

Ho appena installato Linux, mi funziona tutto bene ma non ho ancora ben capito come connettermi ad internet,per esempio la prima cosa che non ho ancora capito è come far riconoscere il modem al sistema operativo.
Premettiamo una piccola nota, se il modem in questione è un winmodem, cioè uno di quei piccoli ed economici modem interni che lasciano gran parte del loro lavoro al processore, l’impresa non è semplice e dipende dal fatto che siano state rilasciate o meno le specifiche del modem in questione.
Per controllare se il proprio winmodem è supportato da linux si possono cercare informazioni sul sito internet http://www.linmodems.org.
Se dobbiamo ancora comprare un modem converrà orientarsi su un modello esterno.
Finita la premessa parliamo delle porte seriali ricordando che queste operazioni vanno fatte da root.
In ambiente Windows siamo abituati alle porte seriali COM1, COM2, COM3 e COM4; con Linux il discorso non è molto diverso, cambiano i nomi delle seriali che diventano ttyS0, ttyS1, ttySx ….
Normalmente il modem sarà una delle prime 2 porte (ttyS0 o ttyS1) a seconda che sia l’unico dispositivo su seriale o ci sia una seriale occupata dal mouse, ma tutto dipende dal numero di porte seriali che avete sul computer.
Occorre innanzitutto accertarsi che il kernel abbia il supporto per le porte seriali, dato che comunque prenderemo per scontato in questa occasione essendo vero dopo l’installazione senza che si sia ricompilato il kernel, argomento (la ricompilazione del kernel) che non è nostro compito affrontare e che verrà analizzaro in una successiva lezione.
Un facile espediente che permette di sapere su che porta si trovi il modem consiste in questo:

* Accendere il modem
* Far partire l’applicazione “minicom”
* Entrare nel menu di configurazione “alt+o”
* Scegliere “Serial port setup”
* Mettere in “Serial device” “/dev/ttyS0”
* Salvare la configurazione
* Chiudere Minicom

A questo punto fatelo ripartire, se vedrete le lucette del vostro modem lampeggiare e all’avvio di minicom leggerete una stringa di inizializzazione (di default ATZ) seguita dalla risposta OK tutto dovrebbe essere a posto, altrimenti ripetete l’operazione di prima cambiando la “/dev/ttyS0” con “/dev/ttyS1”.
A questo punto segnatevi la porta a cui è attaccato il modem, sarà importante nelle prossime fasi.

Ok per il modem, ma la parte strettamente legata alla connessione come funziona, in pratica per connettermi ad internet cosa devo fare?

A questo punto bisogna introdurre il PPP (Point-to-Point Protocol) che è il protocollo che ci serve per la connessione.
Sotto linux la gestione del ppp è affidata al kernel, fatto che provoca sia un vantaggio, cioè il fatto di non dover passare per moduli esterni al sistema operativo perdendone in velocità, ma produce anche la condizione che per poter usarlo il kernel dev’essere compilato con il supporto ppp attivato.
Anche in questo caso dobbiamo partire dal presupposto che il ppp sia già presente nella compilazione standard del kernel che abbiamo.
Il demone che provvede alla gestione del ppp è il pppd.
Per connettersi ad internet creeremo da root un paio di script.
Andiamo nella directory /etc/ppp e analizziamone il contenuto.
Troviamo subito un file importante che si chiama “options”.
Questo file ci permette di gestire tutte le opzioni che dobbiamo passare al pppd senza doverle ripetere ogni volta; analizziamo subito al volo una configurazione standard:

#File di configurazione del pppd

/dev/ttySx < — Sostituire con la propria seriale
crtscts <– Abilita il controllo di flusso hardware
defaultroute <– Finchè dura la connessione aggiunge come percorso standard di instradamento il nodo ppp a cui siamo connessi
lock <– Crea un file che indica che il device è occupato
name “login” <– Qui dovete specificare la login per l’accesso ad internet

Ci sono moltissime altre opzioni per il pppd, qui ho indicato solo le principali, per il resto “man pppd”.
Altro file importante per la configurazione è “pap-secrets” dove inserire i dati per il login, la scrittura di questo file è molto semplice e consiste semplicemente in una riga:

login * password

Al posto delle quali voi inserirete la vostra login e la vostra password.
Ricordatevi di fare un bel “chmod o-rxw pap-secrets” per evitare che altri utenti possano leggere il contenuto del file in questione.
Messi a posto questi due file viene il momento di praparare unno script per la connessione al provider.
Per fare questo creeremo un file, sempre dentro /etc/ppp, che chiameremo col nome del nostro provider (potete scegliere un nome qualsiasi, la scelta di chimarlo come il provider è solo una comodità mnemonica) e in questo scriveremo:

TIMEOUT 60
ABORT ERROR
ABORT BUSY
ABORT “NO DIALTONE”
ABORT “NO CARRIER”
“” “AT&F0” <– Ho messo AT&F0 ma voi dovete mettere la vostra stringa di inizializzazione del modem
OK “ATDTnumero_dell’isp” <– Qui mettete il numero telefonico del provider
TIMEOUT 75
CONNECT

Assicuratevi a questo punto di avere un programma fondamentale, il “chat”; se non ne disponete installatelo subito altrimenti non sarà possibile eseguire la prossima operazione.
Giunti a questo punto basta dare il comando ‘pppd -detach connect “/usr/sbin/chat -v -f /etc/ppp/provider”‘ per connettersi.
Se non volete ripetere il comando ogni volta scrivetelo in un file, mettetelo dentro /sbin (tanto dovrete lanciare la connessione da root) e fate un bel “chmod u+x nomefile” per renderlo eseguibile.
Prima di connettervi c’è solo un ultimo passaggio, cioè inserire i DNS dentro il file “/etc/resolv.conf” con questo schema:

nameserver 212.141.53.123
nameserver 194.243.154.62

Naturalmente voi potrete inserire i DNS che volete (per un massimo di 3 nameserver), quelli proposti sono solo degli esempi.
A questo punto con gli script abbiamo finito, lanciate il comando di connessione e sarete on-line.

Ma non c’è qualche tool per configurarmi tutto senza che io debba scrivere molto?

Sicuramente e possiamo trovarne di due tipologie, sia per consolle che da X Windows.
Da consolle un tool molto conosciuto è WvDial, il cui utilizzo è piuttosto semplice.
Accendete il modem e, una volta installato wvdial, usate il comando “wvdialconf /etc/wvdial.conf” da root.
Il vostro modem dovrebbe essere riconosciuto (non muovete il mouse durante la procedura di riconoscimento del modem se il mouse stesso è di tipo seriale) e il programma creerà il file /etc/wvdial.conf.
Editate il file in questione e inserite le informazioni richieste, cioè numero di telefono, login e password.
A questo punto basta fare wvdial e siete connessi.
Se invece volete qualcosa di più grafico e simile all’accesso remoto di windows esistono client grafici come Gppp per Gnome e Kppp per Kde, ma vista la loro semplicità di utilizzo e la somiglianza assoluta al suddetto accesso remoto di windows non verranno in questa lezione spiegati.

Sono finalmente connesso, adesso un passo alla volta.
Per prima cosa un browser, come me ne procuro uno e come sono i browser sotto linux ?

Con tutte le distribuzioni vengono distribuiti dei browser.
Partiamo dalla consolle dove tra i più conosciuti troviamo i browser lynx e links.
Sono due browser molto veloci e usabili da consolle o sotto X in un terminale aperto, la loro gestione è semplice e la differenza tra i due è nel supporto per frame e tabelle presente nel secondo (links) e non nel primo.
Sicuramente con questi strumenti non potremo godere dei contenuti multimediali del web, ma se per esempio si stanno eseguendo altre operazioni col computer e non si vuole appesantire il lavoro della cpu sono un ottimo strumento.
Per chi invece non volesse perdersi immagini, colori e animazioni in flash ci sono un paio di soluzioni in X: Netscape e Konqueror.
Netscape (navigator o communicator) è molto simile alla versione per windows, viene distribuito con varie distribuzioni di linux o in alternativa è prelevabile dal server ftp della netscape ftp.netscape.com non coi sorgenti ma solo con l’eseguibile.
Basta decomprimere il pacchetto, eseguire da dentro la dir scompattata “./ns-install” e rispondere alle poche domande rivolte (tutte riguardanti le directory dove si vuole installare il tutto) per completare l’installazione.
A questo punto dentro un Xterm scrivete “netscape” e guardate cosa succede…
Niente ??
Allora create un link per il file netscape (che di default è /usr/local/netscape) dentro /usr/X11R6/bin “ln -sf /usr/local/netscape /usr/X11R6/bin” e ripetendo l’operazione precedente dovrebbe partire il famigerato browser, che se avete installato tutto il communicator potrà servirvi come strumento anche per la gestione (invio e scaricamento) della posta, delle news, come strumento per la creazione di siti web e tutto il resto, come nella versione per Windows.

Benissimo, ma se volessi scaricare un qualsiasi programma, per esempio proprio il netscape, con l’ftp come devo fare ?

Disponendo di un browser si può utilizzare questo per scaricare file in ftp, basta mettere come destinazione “ftp://ftp.netscape.com” per esempio e tutto funziona normalmente, se però vogliamo anche uploadare dei file la cosa migliore è l’utilizzo del client standard dando il comando “ftp” da una shell.
Facciamo un esempio:

isazi@tritticho:~$ ftp
ftp> open ftp.netscape.com
Connected to ftp.netscape.com.
220 ftp15c.newaol.com FTP server (SunOS 5.7) ready.
Name (ftp.netscape.com:isazi): ftp
331 Guest login ok, send your complete e-mail address as password.
Password: miaemail@dominio.it
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

A questo punto i comandi sono semplici:
LS per mostrare il contenuto delle directory
CD per spostarsi da una dir all’altra
GET per scaricare un file
PUT per caricare un file (se si hanno i permessi adeguati)
REGET per riprendere il download di un file interrotto dal punto di interruzione
QUIT per disconnettersi

Tutto bene fin qui, solo che se non volessi utilizzare il netscape per la posta elettronica, data la sua pesantezza, quale altro programma posso utilizzare ?

Dividiamoci per comodità l’operazione di gestione della posta elettronica in 2 parti, la gestione dei messaggi (compreso l’invio) e la ricezione.
Cominceremo col descrivere un programma che ci permette di leggere e inviare posta con molta semplicità, il pine.
Il pine è un client di posta sviluppato dall’università di washington, lo si trova in molto distribuzioni e in mancanza può essere scaricato sia sotto forma di file sorgenti che già compilato per varie piattaforme.
Immaginiamo di averlo già presente nell’installazione e facciamolo partire con il comando “pine”; ci apparirà il “MAIN MENU” del pine che presenta varie sezioni, ma in questa fase le uniche 2 che ci interessano sono la 1° accessibile premendo il tasto “?” che è l’help, utile per chiarire molti dei possibili dubbi, e l’altra è la penultima accessibile tramite la pressione del tasto “S” cioè Setup:

? HELP – Get help using Pine
S SETUP – Configure Pine Options

Entriamo subito dentro Setup.
Ci sono molte cose configurabili, ma il tutto viene con l’esperienza e la voglia di scoprire questo client di posta, infatti la parte che ci interessa è la “C” che stà per Config.
Ci sono davvero molte opzioni, per questo indicheremo le più importanti:

personal-name <– Qui potete mettere il vostro nome
user-domain <– Il dominio, cioè la parte di indirizzo posta dopo la “@”
smtp-server <– Il server smtp del vostro provider

Queste sono opzioni importanti, tutto il resto è facilmente comprensibile e c’è sempre l’help consultabile in qualsiasi momento tramite la pressione del tasto “?”.
Provate subito ad inviare qualche mail per avere la conferma del funzionamento.
Adesso viene la 2° parte, cioè scaricare la posta perchè col pine non potrete gestire i messaggi, se non riuscite prima a scaricarli.
Per farlo potete usare un programma, il “fetchmail”, che prende la posta dal server POP3 del provider e lo manda al server SMTP del nostro computer che provvede a consegnare la posta direttamente nella nostra directory, pronta per essere letta col pine.
Solo che prima di usare il fetchmail dobbiamo installare e configurare un server SMTP sul nostro computer.
Spieghiamo subito come fare con un mail transfer agent molto semplice da usare e configurare, il “postfix”.
Se avete già configurato e funzionante il server smtp locale questa parte potete benissimo saltarla.
Installiamo il pacchetto per la nostra distribuzione, o compiliamo i sorgenti, e andiamo dentro “/etc/postfix”, se la directory non esiste controllate anche “/usr/local/etc”.
Tra i file presenti dentro questa directory quello che ci interessa è “main.cf” dove dovremo inserire un paio di opzioni dove richiesto all’interno del file stesso:

# INTERNET HOST AND DOMAIN NAMES
myhostname = ciao.trippa.azz <– Qui mettiamo il nome della nostra macchina
mydomain = trippa.azz <– Qui il nostro dominio immaginario

# SENDING MAIL
myorigin = $myhostname

# RECEIVING MAIL
inet_interfaces = all

# DELIVERY TO MAILBOX
home_mailbox = Mailbox
mail_spool_directory = /var/mail

# SHOW SOFTWARE VERSION OR NOT
smtpd_banner = $myhostname ESMTP $mail_name

Queste è una configurazione base, che permette di far funzionare il sistema di ricezione della posta tranquillamente, per una configurazione migliore conviene leggersi la documentazione e gli How-To sulla configurazione dei server smtp.
Configurato l’smtpd passiamo al fetchmail vero e proprio.
Prima di far partire il fetchmail dare il comando “postfix start” per far partire l’smtpd se non lo si è già fatto, e a questo punto “fetchmaiil -p pop3 servePOP3”.
Fatto questo viene chiesta la password così:

isazi@tritticho:~$ fetchmail -p pop3 olografix.org
Enter password for isazi@olografix.org: password
fetchmail: No mail for isazi at olografix.org

In questo caso non c’era posta ma il funzionamento è questo, solo che ci sono due piccole noie in questo metodo, cioè il fatto che il nome utente deve essere lo stesso dell’account di posta e che ogni volta dobbiamo scrivere tutto quel comando e inserire la password, senza contare che dovremmo ripetere il procedimento per ogni account di posta in nostro possesso.
Il tutto è facilmente risolvibile andando a creare dentro la nosta home il file “.fetchmailrc” nel quale scriveremo:

poll ServerPOP3-numero1
proto pop3
user USEr-NumeRO-1
password Password
is user

poll ServerPOP3-numero2
proto pop3
user USEr-NumeRO-2
password Password
is user

Tutto questo può essere ripetuto per ogni casella di posta cambiando le opzioni con le proprie, tenendo presente che nell’ultima riga di ogni configurazione “is user” user dev’essere il nostro utente sotto linux.
Per evitare che altri possano leggere la password del vostro account di posta ricordate “chmod oig-rxw .fetchmailrc” anche perchè altrimenti non partirebbe proprio il fetchmail e vi darebbe un messaggio d’errore.

Benissimo, adesso riesco tranquillamente a fare tutto quello che facevo con Windows, leggo la posta, navigo, scarico file in FTP, solo che mi mancano tutte le persone che conoscevo in IRC, è molto difficile con linux utilizzare irc ?

Andare in irc con linux è molto semplice e ci sono davvero una miriade di client come al solito sia grafici, tra cui molto famoso e di facile utilizzo è XChat, che per consolle, dove possiamo spaziare dal classico irc al più smaliziato BitchX.
XChat è un client molto flessibile, si può installare già compilato perchè è presente in tante distribuzioni ed è di facile configurazione.
All’avvio appare un menu chiamato “Server List” all’interno del quale si possono specificare le opzioni iniziali che riguardano nick e server mentre tutte le altre opzioni si possono settare dalla finestra principale entrando nel menu “Settings”.
Se invece siamo da consolle l’utilizzo dei client precedentemente nominati (ircII, epic, BitchX) è molto simile perchè, anche in assenza di interfacce grafiche, usano una parte di comandi comuni (i comandi standard di irc) e hanno personalizzazioni che solo l’esperienza, o il comando “/help” permettono di conoscere.
Una cosa da ricordarsi è evitare di connettersi ad irc come root.

A questo proposito ho un’ultima domanda, ma posso stare sicuro quando sono connesso con Linux ?

Ecco questa è una parte molto importante a cui bisogna fare attenzione.
Ricordiamo infatti che se da un lato non siamo vulnerabili a virus e trojan vari, essendo su un sistema con la gestione dei permessi e della sicurezza diverso dal sistema operativo principale di casa Microsoft, dall’altro siamo sempre alla guida di una macchina server.
Per questo dobbiamo evitare di lasciare aperte porte, almeno finchè non impareremo nelle prossime lezioni a configurare la gestione di alcuni servizi come il server web o quello ftp.
Una buona cosa è non far partire all’avvio demoni di servizi di rete di nessun tipo, soltanto che la gestione del processo di init sarà spiegata in una lezione successiva, quindi l’operazione minima che possiamo fare è editare alcuni file, primo tra tutti il file “/etc/inetd.conf” andando a commentare, cioè aggiungere un “#” all’inizio di ogni riga, tutti i servizi, riconoscibili perchè sono le uniche parti che mancano di un “#” all’inizio riga e perchè la prima parola è il nome del servizio, andiamo così a commentare le righe in questo modo:

#telnet stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in.telnetd
#www stream tcp nowait www-data /usr/sbin/apache apache

E così via, se non capite bene ancora questa parte è solo perchè non è compito di questa lezione insegnare l’utilizzo dei file di configurazione di rete, il nostro compito è solo quello di proteggere il computer connesso prima che si abbia una consapevolezza maggiore.
Per fare questo non ci rimane che la visione di un file, anche questo dentro “/etc” che è “hosts.deny” che non è nient’altro che la lista dei sistemi che non hanno accesso al nostro computer, quindi per essere sicuri basta che l’unica riga non commentata in questo file contenga “ALL : ALL” per impedire a qualunque esterno l’accesso ad un servizio del nostro sistema.