Perché scegliere linux

6 giugno 2008

Ho affrontato tante volte questa questione… Perché, sotto alcuni aspetti, complicarsi la vita con un sistema che alle volte si presenta non proprio amichevole?
Se cercate su google qualcosa del tipo “dieci motivi per scegliere linux” avrete una serie di risposte… la maggior parte delle volte si tratta di motivazioni riguardanti la stabilità, la sicurezza oppure motivazioni di carattere “filosofico”. A suo tempo la motivazione che mi ha spinto prima a provare linux e poi a rinunciare completamente ai prodotti microsoft è stata essenzialmente dovuta all’assenza di trasparenza nei sistemi commerciali. Questo vuol dire che comperate (…e qui ci sarebbe da discutere…) un CD/DVD col sistema operativo, lo installate e avete il vostro pc pronto a partire… si, vero, ma cosa avete installato? Quante cose inutili avete inserito nel vostro disco fisso? Certo, mi direte, ho un pc con 4 GB di RAM e 200 GB di disco, anche se windows mi carica delle porcherie inutili non fa nulla… solo che, dopo un annetto di utilizzo e di installazioni/disinstallazioni quelle porcherie iniziano ad avere il loro peso. Non è pensabile, per me, dover reinstallare un sistema operativo perché invecchia (nel senso biologico, cioè il sistema operativo accumula errori o “detriti” fino a quando il funzionamento viene compromesso). Questa è una peculiarità di tutte le versioni di windows e sfido chiunque ad affermare il contrario :) .
Sono anni che uso linux, recentemente solo linux, e tuttavia anche qui inizia a presentarsi lo stesso problema… qualcuno di voi sa esattamente quanti e quali pacchetti la vostra distribuzione preferita ha caricato nel vostro sistema? Credo sia molto difficile da dire…
La morale della favola è che mi sono stancato anche delle distribuzioni ufficiali e ho iniziato a studiare il progetto LFS. LFS (Linux From the Scratch) permette di costruire un sistema linux base, sul quale poi lavorare per creare il vostro linux dei sogni. La filosofia è più o meno quella di Gentoo (e infatti LFS è basata su Gentoo) però il livello di complessità e anche il numero di compilazioni è inferiore. Compilazioni? Ebbene si, se vuoi sapere cosa viene infilato nel tuo pc è bene che compili tutto il sistema operativo, pezzo per pezzo. L’operazione complessivamente non è esageratamente complicata, però vi consiglio se volete provare, di farvi prima un po’ di esperienza con una distribuzione “ordinaria”, visto che è necessario saper fare almeno un po’ di analisi in caso di errore.

Se siete intenzionati a provare io vi consiglierei di procedere così: non e dico non cercate di compilare la vostra distro su un sistema che dovete usare per lavoro o che contenga dati importanti senza prima aver effettuato un bel backup. Questo perché alcune delle operazioni, svolte con utenza di root, possono portare alla sovrascrittura di file di sistema se non si sta attenti a tutti i passaggi. La soluzione che ho utilizzato io è di creare una macchina virtuale con VMware, fare il boot con il live cd di LFS e poi partire. Avrete così uno splendido ambiente di sviluppo/collaudo senza andare a “minacciare” sistemi che servono funzionanti.

Io al momento sto realizzando la distro mimìX 0.4 b1 se qualcuno è interessato a testarla mi faccia sapere. Ci vuole, comunque, un minimo di esperienza in quanto non sono presenti tools di installazione o di configurazione e tutto va fatto come una volta, da riga di comando.

Per chi fosse interessato a LFS:
Home del progetto:
http://www.linuxfromscratch.org/
Il Pluto ha curato la traduzione della documentazione che però si riferisce ad una release precedente di LFS : http://www.pluto.it/ildp/lfs

Magari apro una sezione dedicata a mimìX … vediamo.
Per ora è tutto

Ciao

Perché scegliere linux

6 giugno 2008

Ho affrontato tante volte questa questione… Perché, sotto alcuni aspetti, complicarsi la vita con un sistema che alle volte si presenta non proprio amichevole?
Se cercate su google qualcosa del tipo “dieci motivi per scegliere linux” avrete una serie di risposte… la maggior parte delle volte si tratta di motivazioni riguardanti la stabilità, la sicurezza oppure motivazioni di carattere “filosofico”. A suo tempo la motivazione che mi ha spinto prima a provare linux e poi a rinunciare completamente ai prodotti microsoft è stata essenzialmente dovuta all’assenza di trasparenza nei sistemi commerciali. Questo vuol dire che comperate (…e qui ci sarebbe da discutere…) un CD/DVD col sistema operativo, lo installate e avete il vostro pc pronto a partire… si, vero, ma cosa avete installato? Quante cose inutili avete inserito nel vostro disco fisso? Certo, mi direte, ho un pc con 4 GB di RAM e 200 GB di disco, anche se windows mi carica delle porcherie inutili non fa nulla… solo che, dopo un annetto di utilizzo e di installazioni/disinstallazioni quelle porcherie iniziano ad avere il loro peso. Non è pensabile, per me, dover reinstallare un sistema operativo perché invecchia (nel senso biologico, cioè il sistema operativo accumula errori o “detriti” fino a quando il funzionamento viene compromesso). Questa è una peculiarità di tutte le versioni di windows e sfido chiunque ad affermare il contrario :) .
Sono anni che uso linux, recentemente solo linux, e tuttavia anche qui inizia a presentarsi lo stesso problema… qualcuno di voi sa esattamente quanti e quali pacchetti la vostra distribuzione preferita ha caricato nel vostro sistema? Credo sia molto difficile da dire…
La morale della favola è che mi sono stancato anche delle distribuzioni ufficiali e ho iniziato a studiare il progetto LFS. LFS (Linux From the Scratch) permette di costruire un sistema linux base, sul quale poi lavorare per creare il vostro linux dei sogni. La filosofia è più o meno quella di Gentoo (e infatti LFS è basata su Gentoo) però il livello di complessità e anche il numero di compilazioni è inferiore. Compilazioni? Ebbene si, se vuoi sapere cosa viene infilato nel tuo pc è bene che compili tutto il sistema operativo, pezzo per pezzo. L’operazione complessivamente non è esageratamente complicata, però vi consiglio se volete provare, di farvi prima un po’ di esperienza con una distribuzione “ordinaria”, visto che è necessario saper fare almeno un po’ di analisi in caso di errore.

Se siete intenzionati a provare io vi consiglierei di procedere così: non e dico non cercate di compilare la vostra distro su un sistema che dovete usare per lavoro o che contenga dati importanti senza prima aver effettuato un bel backup. Questo perché alcune delle operazioni, svolte con utenza di root, possono portare alla sovrascrittura di file di sistema se non si sta attenti a tutti i passaggi. La soluzione che ho utilizzato io è di creare una macchina virtuale con VMware, fare il boot con il live cd di LFS e poi partire. Avrete così uno splendido ambiente di sviluppo/collaudo senza andare a “minacciare” sistemi che servono funzionanti.

Io al momento sto realizzando la distro mimìX 0.4 b1 se qualcuno è interessato a testarla mi faccia sapere. Ci vuole, comunque, un minimo di esperienza in quanto non sono presenti tools di installazione o di configurazione e tutto va fatto come una volta, da riga di comando.

Per chi fosse interessato a LFS:
Home del progetto:
http://www.linuxfromscratch.org/
Il Pluto ha curato la traduzione della documentazione che però si riferisce ad una release precedente di LFS : http://www.pluto.it/ildp/lfs

Magari apro una sezione dedicata a mimìX … vediamo.
Per ora è tutto

Ciao

Linux linux linuxxxxxxxx :)

27 maggio 2008

Rieccomi :)
questo post vuole essere solo un tributo a Tux (per chi non lo sa è il pinguino qui a fianco )
Per chi non lo conoscesse Tux è la mascotte per così dire di Linux, forse non tutti sanno di cosa si tratta… brevemente: linux è un sistema operativo, un po’ come [NdA (per i puristi) :) apriti cielo ... è solo un esempio! mica è vero quello che sto per scrivere...] dicevo un po’ come windows…ecco l’ho detto…dunque serve a rendere usabile un pc, a far si che ci si possano eseguire programmi e così via. Ma non volevo parlare di questo, non ora… ora devo celebrare…insomma oggi mi arriva un collega in ufficio disperato… il disco fisso portatile non viene più “visto” sotto windows. Dentro il disco tutto il lavoro dell’anno…leggo la paura negli occhi del mio collega :) dopo un po’ ho capito il problema. Capita, spesso credo, che xp quando viene spento con ancora collegata un disco non lo smonta correttamente (o non lo fa proprio). Quindi la partizione ntfs smontata sporca non veniva più montata da winzozz :) :) Dunque ho preso il disco, collegato al mio lap e, miracolo, in 2 minuti con la mia brava Debian ho montato, fatto il backup e smontato il disco… che goduria… soprattutto la faccia del mio collega che prima di venire da me aveva perso due ore a collegare il disco a tutti i pc del piano… GODOOOOOOOO :)

Forse non tutti sanno che:
Linus Torvald è il papà di Linux
Linux è l’acronimo di LINus UniX (acronimo scelto da Lemke…credo :) )
Tux è l’acronimo di Torvald UniX (disegnato da Larry Ewing…dicono su idea della moglie di Torvald… dio quanto amo tutta la famiglia Torvald :) )
Il nome per il sistema operativo pensato da Torvald: Freax (…mah…meglio Linux )

Anatomia di una connessione internet – TCP e UDP – prima parte

15 maggio 2008

Primo, non me ne vogliano i puristi… non userò un linguaggio tecnico, sarò volutamente poco preciso ed accurato nelle descrizioni, infatti lo scopo è di cercare di capire come funzionano le comunicazioni in rete senza per questo che chi legge sia un tecnico.
Bene, detto ciò veniamo al dunque. Come si comunica su internet? La risposta è banale, si instaura una comunicazione tra due sistemi, dei quali uno funge da client e uno da server (se odiate gli anglicismi possiamo chiamarli cliente e servente, ma onestamente mi fa un po’ senso…). Chiaro, però come parlano questi due sistemi? Ci sono degli standard, a seconda della tipologia di comunicazione richiesta e delle necessità operative vengono utilizzati protocolli (e quindi standard) diversi. Esistono diversi tipi di protocollo, alcuni specializzati altri invece generici. I principali sono tcp e udp.

Caratteristiche principali:
TCP: Il protocollo TCP offre il servizio di trasporto di un flusso di byte. Questo flusso viene spezzettato in una serie di blocchi (la dimensione è variabile in funzione di diversi parametri) ed inviato all’altro sistema. TCP è orientato alla connessione, vuol dire che prima di operare una trasmissione è richiesto che si instauri una connessione tra il client ed il server, connessione che viene esplicitamente chiusa quando non è più necessaria. Il protocollo è strutturato in modo di trasmettere i dati in maniera tale che sia possibile ricostruire l’intero flusso da parte del sistema ricevente anche quando qualche blocco venga perso (mediante ritrasmissione) o qualora i dati arrivino in un ordine casuale. Accenno poi al fatto che TCP è in grado di determinare lo stato di congestione di una rete, suddividendo così i dati in blocchi di dimensione diversa a seconda ella capacità stessa della rete.
UDP: è un protocollo per molti versi meno sofisticato rispetto a TCP. Non è orientato alla connessione e per questo è un protocollo “inaffidabile” (ciò significa che ad esempio il server invia un pacchetto UDP senza curarsi del fatto che il destinatario lo stia aspettando e che comunque ci sia qualcuno a processare l’informazione). UDP non trasporta una sequenza di dati come TCP, bensì il singolo datagram cioè il singolo frammento che il livello applicativo fa trasmettere. Questo vuol dire che, ad esempio, il server trasmetterà una serie di datagram verso il client e né l’uno né l’altro si interesseranno del fatto che tutti i datagram giungano a destinazione o del fatto che giungano nell’ordine corretto. Fondamentalmente, quindi, UDP offre solo i servizi basilari del livello di trasporto, e cioè l’utilizzo delle porte (multiplazione delle connessioni) e verifica degli errori del singolo datagram (checksum). TCP, oltre a questi, offre come detto anche il controllo di flusso (sequenza dei pacchetti) e il controllo di congestione della rete.
Dopo questa breve introduzione credo che la domanda sia spontanea: e allora quale di questi protocolli si usano in internet? La risposta è tutti e due, dipende dalle necessità.
TCP viene utilizzato quando è importante non solo la trasmissione dei dati, ma anche l’ordine di trasmissione e di ricezione, si usa quando è fondamentale ricevere tutti i pacchetti inviati o ancora quando ci sia la necessità di stabilire una connessione tra server e client. Le connessioni di trasferimento file sono in genere TCP. UDP si usa, invece, quando è fondamentale l’invio di una certa quantità di dati per unità di tempo, anche se magari non è fondamentale ricevere tutti i datagram inviati dal server. Ad esempio il broadcast audio e video di solito utilizza UDP in quanto la perdita di qualche datagram non è rilevante nella riproduzione del flusso multimediale.

Il port scanning

9 maggio 2008

Riporto uno degli articoli che avevo postato in un mio precedente blog… vediamo se riprendo il filo :)

Il port scanning è una tecnica informatica utilizzata per stabilire quali porte siano aperte su un sistema connesso ad una rete. Consiste nell’inviare dei pacchetti (TCP, UDP, ICMP …) appositamente assemblati ad una o più porte per determinare lo stato della porta. A seconda della risposta da parte del sistema bersaglio lo scanner può determinare se la porta è:

  • aperta (ovvero c’è un servizio in ascolto su quella porta)
  • chiusa (il sistema risponde che non vengono accettate connessioni su quella porta)
  • filtrata (un firewall o un apparato di rete impedisce allo scanner di determinare lo stato della porta)
  • bloccata (non c’è risposta da parte del sistema)

Al solito wikipedia è una ottima fonte di informazioni, tanto per cominciare. A mio avviso il più potente scanner ad ora presente è nmap, che permette di eseguire oltre alla scansione tradizionale (instaurando o cercando di instaurare una vera e propria connessione al sistema bersaglio) altri tipi di scansione più raffinata che consentono di rimanere ragionevolmente invisibili ai sistemi di rilevamento intrusioni (IDS) e di bypassare (…non sempre…) mediante tecniche di frammentazione i filtri firewall.

Nmap è un tool open source, è liberamente scaricabile qui mentre qui trovate il manuale in italiano. Come sempre, prima di utilizzare qualsiasi tool si dovrebbe leggere la documentazione per capire di cosa si tratti… :-)

Ci sono altri port scanner in giro, basta cercare :-) tuttavia credo che nessuno possa competere con nmap sia in termini di velocità di esecuzione che in termini di tipi di scan possibili. Esiste la versione di nmap anche per windows, tuttavia per alcune limitazioni nella costruzione dei paccheti ip raw, vi consiglio di usarlo sotto linux (peraltro sotto linux per poter costruire un pacchetto raw è necessario essere root, quindi è necessario lanciare nmap come root ma solo per determinati tipi di scansione…)

E’ bene tenere a mente che, mentre per un vuoto legislativo dovuto alla classica ignoranza tecnologica del legislatore non è reato effettuare un port scan (lo fanno anche gli amministratori di rete) è un reato tentare di connettersi in maniera abusiva a un sistema. Pertanto le informazioni che si possono collezionare con uno scanner di questo tipo non dovrebbero essere utilizzate per cercare di penetrare in un sistema sul quale non si hanno i permessi di accesso.

Ciao

8 maggio 2008

eh lo so… a che numero di blog aperti e poi lasciati orfani sono arrivato? Boh… vediamo che succede sta volta.
Quel che è certo che almeno ora non mi voglio limitare… speriamo bene :)


Follow

Get every new post delivered to your Inbox.