martedì 16 febbraio 2010

Nuova interfaccia per kvm quemu: minimale e fatta in casa





        Nell'ultimo fine settimana mi sono messo a programmare e ho tirato fuori questa stupenda e minimale interfaccia di gestione per kvm.



Per chi non lo sapesse qemu è un virtualizzatore (come vmware, virtualbox ecc..), mentre kvm è la versione hypervisor di qmu, che funziona sui processori che supportano le estensioni di virtualizzazione.







Kvm è  un hypervisor veloce, potente, affidabile ma sopratutto è un modulo del kernel linux (per cui massima integrazione).

Per una lista completa dei comandi per kvm/qemu da shell vi rimando a questa pagina che ho scritto giorni fa come appunti:



Utilizzandolo spesso, una delle cose che non mi piacevano di kvm/qemu, sono le interfacce di gestione: troppo complesse o troppo stupide. Allora ho creato io una specie di gestore minimale: "gonzovm"


In meno di 10 secondi sarete pronti a creare una nuova macchina virtuale e/o ad usarla. Tutto preconfigurato a prova di noob. 3-4 click e via. C'è anche l'icona sulla taskbar per il desktop via VNC o un'eventuale shell ssh.
Funziona sia per virtualizzare sistemi windows, che per sistemi linux.


Il programma verifica automaticamente la presenza delle estensioni di virtualizzazione sul vostro processore: in caso affermativo fa uso di kvm altrimenti usa qemu.


Eccovi alcuni ScreenShot:




Per provarlo su ubuntu Karmic o Ubuntu Lucid:


sudo add-apt-repository ppa:ing.gonzo && sudo apt-get update && sudo apt-get install gonzovm


una volta installata la trovate su:

Applicazioni > Accessori > gonzovm



Per disinstallarla:

sudo apt-get purge gonzovm



fatemi sapere che ne pensate...

Se qualcuno vuole collaborare al progetto, mi contatti pure, c'è un grande margine di sviluppo.

giovedì 28 gennaio 2010

Guida: la perfetta installazione di Ubuntu



Installazione di Ubuntu e realizzazione automatica del multi boot.


Occorrente 1 cd oppure una chiavetta usb da almeno 2 giga, tempo previsto: 20 minuti per il download, 30/45 minuti per l'installazione.


1) Scaricare il file ".iso" di ubuntu dal sito ufficiale http://www.ubuntu.com/getubuntu/download (controllando bene è possibile scaricare sia la versione a 32bit che a 64bit)

2a) scaricare unetbootin (http://unetbootin.sourceforge.net/) per utilizzare una chiavetta usb al posto del cd, da cui poter mettere il file .iso sulla chiavetta (il programma si occuperò di rendere anche la chiavetta avviabile).

oppure

2b) masterizzare su un cd il file .iso SCARICATO DAL SITO DI UBUNTU con il proprio programma preferito



3) Riavviare il pc e dal proprio bios impostare la chiavetta usb o il cd come prima periferica di boot (altrimenti tornerà a partire windows)

4) se avete impostato il bios correttamente questa è la schermata che vi apparirà:



una volta selezionato l'italiano avrete:


a questo punto selezionate la prima opzione e premete invio. Così facendo ubuntu partirà dal cd e potrete provarlo prima ancora di effettuare qualsiasi operazione sul disco.



5) Una volta avviato ubuntu, sulla scrivania dovreste avere il file "install". Cliccateci su 2 volte e passerete all'installazione del vostro sistema.

6) Le prime schermate sono molto chiare, bisognerà selezionare la lingua, il fuso orario, la tastiera in uso (in realtà è tutto già seezionato di default, per cui sarà possibile passare avanti).







(può non essere esattamente questa nel vostro caso specifico)

avrete molte possibilità, io per non fare danni vi consiglio di spuntare l'opzione "Specifica manualmente le partizioni (avanzato)". Fatto ciò quello che dovreste vedere è questo:



in questo screenshot è evidente che l'utente ha una partizione ntfs da 20 giga, su cui possibilmente è già presente windows (o una partizione di dati creata da windows). E dello spazio libero.

Nel vostro caso se non avete dello spazio libero, individuate la partizione che vorreste eliminare oppure da ridimensionare. Se volete ridimensionare la partizione, cliccate su modifica partizione, e modificate SOLO la dimensione della partizione (in mega), in modo da restringerla (avendo cura di non dare una quantità di spazio minore di quella già usata), quindi immettete come file system ntfs e date l'ok.
Potrebbe succedere che Ubuntu impieghi del tempo per ridimensionare il disco, in questo caso dovrete attendere che finisca prima di proseguire (potrebbe volerci anche 1/4 d'ora), ma capita frequentemente che l'operazione sia immediata.

  • A questo punto selezionate lo spazio libero e create una nuova partizione:

lasciando sempre le cose come stanno, cambiate solo il file system, impostando su "swap" e la dimensione, pari a quella del vostro quantitativo di ram

  • Fatto ciò create ancora una nuova partizione, in cui stavolta dovrete immettere solo 3 variabili: il file system "ext4", la dimensione della partizione (fate attenzione al passo successivo, se create la home, assegnate qui non più di 30000 mega, altrimenti la dimensione sarà tutta quella che rimane libera), il punto di mount "/"

  • OPZIONALE, se avete intenzione di usare i sistemi Linux al meglio e avete molto spazio sul disco a disposizioe, è molto utile creare una terza partizione, la home.

La home è la cartella su cui stanno i file dei vari utenti (musica, foto, video, ecc...) ed anche le configurazioni di ogni programma relative ad ogni utente (ad esempio i propri preferiti e le proprie password su firefox). E' molto utile perchè in caso di formattazione del sistema, la home la si può lasciare inalterata preservando ogni configurazione e tutti i dati relativi agli utenti, oppure la si può condividere con altri sistemi Unix (per esempio con altre distribuzioni Linux), in modo che tutte abbiano le configurazioni dei programmi ed i file relativi agli utenti, perfettamente sincronizzati.

Per creare la home, aggiungete una ulteriore partizione, immettete la dimensione (tutta quella rimasta), il file system (ntfs se volete accedervi anche da windows, ext4 se volete un file system molto più performante ma inaccessibile da windows), ed il punto di mount "/home".

finito con l'impostazione delle partizioni, cliccate avanti.

6) Compilate i dati richiesti





7) verificate che tutto è in ordine (questo è solo un esempio)






ed al termine riavviate.

Se avevate sulle altre partizioni altri sistemi operativi, grub avrà automaticamente impostato il multi boot.

Potete dunque avviare ubuntu



ATTENZIONE!!

La primissima cosa da fare in assoluto, al vostro primo ingresso sulla nuova installazione di ubuntu è di AGGIORNARE IL SISTEMA ed al termine DI RIAVVIARE.

basta andare su Sistema > Amministrazione > Gestione Aggiornamenti


SOLO SUCCESSIVAMENTE A QUESTI AGGIORNAMENTI, ED AL RIAVVIO, per i possessori di schede video amd o nvidia o di driver aggiuntivi per schede wifi, andare su Sistema > Amministrazione > Driver Hardware

installare questi aggiornamenti e riavviare per l'ultima volta (addio riavvii per un bel pò).

FINE!



Buona LinuxBox

mercoledì 20 gennaio 2010

Sicurezza informatica: sistemi sicuri ma solo per utenti informati






Sebbene tempo fa l'idea della sicurezza informatica era vista dall'utente medio solamente come "una tecnica per allontanarsi da un inesorabile formattazione", oggi il tema diventa centrale anche per l'utente comune. Bombardati dalle notizie come "Google attaccata grazie ad una falla scoperta su Internet Explorer" su tuti i giornali, o allarmati dell'amico che ha preso un certo virus o vittime in prima persona di un danno al software (o un furto di dati), oggi anche un bambino comincia a rendersi conto dei problemi che il malware provoca alla gente comune, alle società o alle istituzioni, insomma verso tutti. La domande che tutti si pongono sono:

- Cosa sono e come funzionano i vari tipi di malware?

- Perchè esiste il malware? Chi lo crea ed a quale scopo?

- E' vero che un sistema Microsoft è più esposto? Gli altri sistemi invece è vero che sono immuni? Meglio closed o open per la sicurezza?

- Com'è possibile difendersi dunque?



Ecco che ordinatamente provo a dare delle spiegazioni (in seguito alla mia modestissima esperienza ed ai miei "studi" sul campo).


Prima di tutto: cos'è il "MALWARE"?

Il malware è un termine molto generico al cui interno accoglie tantissime tipologie di "programmi" tali da poter trafugare o manomettere i dati in vostro possesso (ben diverso dal concetto invece di "truffa" o "scherzo" per cui posso consigliarti di fare una qualsiasi stupidaggine in modo da indurre te stesso a compromettere il tuo sistema o i tuoi dati sensibili, altrimenti probabilemte anche facebook rientrerebbe nella categoria del malware!). Esistono quindi virus, trojan, spyware, ecc... tutti "sistemi" pericolosi che potrebbero minare la stabilità del sistema vostro o altrui o peggio ancora rubare dati preziosi come password di conti correnti o informazioni personali. Una prima classificazione importante da fare è proprio la "tecnica" utilizzata per infrangere la vostra sicurezza. Nella maggiorparte dei casi si tratta di fare in modo che il vostro pc ESEGUA (che non siglifica leggere, eseguire è ben diverso) del codice senza che voi ve ne accorgiate minimamente. Ebbene ci sono tre grandi possibilita: o erroneamente installate un programma al cui interno si annida proprio un virus; oppure è possibile che del codice venga eseguito anche se in realtà dovrebbe essere SOLAMENTE letto (come ho detto prima per un computer c'è differenza tra "eseguire" e "leggere" del codice in generale); infine è possibile che qualcuno riesca a "forzare" alcuni programmi chiave che si occupano proprio di connettere il pc all'esterno (servizi come telnet o altro). Una cosa è poi certa, il Malware ha la grande tendenza a diffondersi, anzi è una delle priorità. Esso deve diffondersi quanto più rapidamente possibile, più velocemente si diffonde, più difficile sarà debellarlo e più le probabilità che faccia dei danni seri crescono.


Perchè esiste ed a quale scopo


Anche dal punto di vista degli obiettivi esistono notevoli differenze. In alcuni casi si tratta solo di farvi innervosire davanti ad un pc che tutto d'un tratto non funziona più bene. Nei casi peggiori invece gli scopi sono raccogliere dati su di voi oppure organizzare un attacco informatico (ai danni di qualcun'altro). In questi due casi l'utente NEMMENO SI ACCORGE che dentro il proprio pc c'è annidata una trappola pronta a far danno, poichè se supera i controlli del sistema, rimane poi in attesa di comandi e non rallenta minimamente l'esperienza d'uso del computer dell'utente. E' questo uno dei tanti motivi per cui spesso molti "credono" di non essere delle vittime ma sono invece inconsapevoli portatori di "infezioni da codice". Nella maggiorparte dei casi infatti l'affermazione "ho preso un virus" viene fuori quando il sistema risulta danneggiato, ma non tutti sanno che spesso i criminali vogliono soltanto rubarvi pochi kb di connessione (oltre ai dati).
Prendendo a modello il recente attacco a Google, per mezzo della falla di IE ciò è stato possibile grazie alla creazione di una botnet, cioè ad un ammasso di pc sparsi per il mondo che sottostavano agli ordini di qualcuno e che all'occorrenza potevano fiondarsi tutti insieme per causare dei disordini o semplicemente per sovraccaricare dei server (non ho letto nella fattispecie quale sia stata la strategia, sto usando solo l'esempio per poter descrivere una tecnica possibile). In questo caso dunque l'utente di un pc appartenente allo botnet è assolutamente ignaro ed è solo un mezzo per un danno che viene eseguito su terzi.



E' vero che un sistema Microsoft è più esposto? Gli altri sistemi invece è vero che sono immuni? Meglio closed o open per la sicurezza?

Diciamolo chiaro e subito: NESSUN SISTEMA E' IMMUNE DAL MALWARE, così come tutti gli esseri viventi di qualsiasi specie sono esposti alle malattie, così anche i sistemi informatici lo sono (anzi, lo sono maggiormente). Detto questo rimane il fatto che il 90% del Malware ha a che fare SOLO con windows, MA CIO' NON DIPENDE SOLO DALLA SUA DIFFUSIONE IN AMBITO CONSUMER. Facciamo prima delle dovute premesse:

1) La maggiorparte dei sistemi informatici "casalinghi" DIRETTAMENTE connessi ad internet sono router, switch con firewall, modem/router, tutti unix. Dietro di essi ci sono i pc, ma i sistemi unix stanno quasi sempre in prima linea, dopo vengono i comuni pc, adeguatamente schermati dietro il firewall hardware unix. Questo di fatto contribuisce alla sicurezza, poichè limita molti degli attacchi che un pc subirebbe se il proprio firewall (tipicamente su windows)  fosse direttamente esposto.

2) I sistemi informatici "critici" sono massicciamente dotati di software o interi sistemi opensource, a differenza delle infrastrutture meno critiche che implementano molti più software proprietario di base dei corrispettivi.

3) Il numero dei sistemi informatici di tipo UNIX è maggiore di quello Windows. Basta guardarsi intorno: cellulari, navigatori satellitari, SITI INTERNET, router, mediacenter da supermercato, ecc ecc..

5) Il numero di utenti connessi ad internet (persone fisiche), ha davanti un pc Windows


Detto questo, dato che il principale fattore di un danno informatico è proprio il tizio seduto tra il monitor e la tastiera, è pur sempre vero che il target "più semplice" da colpire è l'utente medio che clicca dovunque, installa tutto e aggiorna poco o nulla. Quindi è vero che l'enorme diffusione di pc windows crea una condizione favorevole allo sviluppo "specialmente" per quel tipo di utenza. Microsoft però ha due difetti che nessun altro possiede: è chiuso ed è omologato. Anche qui è d'obbligo una analisi del significato di codice chiuso e codice aperto in termini di sicurezza e del concetto di omologazione.

Per chiarire la differenza tra open source e closed source cerchiamo di fare un paragone facile facile: il closed source è come mangiare cibo in un ristorante, l'open source è come mangiare del cibo di cui conosciamo esattamente la ricetta e la modalità di preparazione. Ebbene, se siamo noi a cucinare o qualcuno a noi vicino, possiamo sapere di cosa è fatto ciò che mangiamo, che esso non sia dannoso o se mai possiamo accertarci degli ingredienti. Mentre invece se andiamo al ristorante e poi stiamo male, come facciamo a sapere se dentro il cibo c'era qualcosa che ci è indigesto se non abbiamo accesso ne alle cucine, ne alla ricetta? Come facciamo, se vogliamo lo stesso piatto, a modificare la ricetta per renderla compatibile col nostro organismo o attinente ad una particolare dieta?
In oltre: se abbiamo la ricetta e gli ingredienti e riteniamo che qualcosa non ci vada bene, possiamo confezionarci il cibo da soli variando qualcosa, mentre invece difficilmente potremmo chiedere al ristoratore di cucinare qualcosa "a modo nostro".

Detto ciò ecco, un gruppo di esperti utilizza l'opensource come standard comune da studiare, modificare e plasmare in modo che la sicurezza aumenti, mentre invece chi si affida al software proprietario può solo pregare e pagare per l'azienda di turno, in modo che si occupi del tuo problema. Ibm, Novell, Red Hat, Google, Sun, l'istituto spaziale americano (NASA) o il CERN, banche o istituti di difesa nazionale ogni giorno leggono e rileggono il codice aperto e diffondono le proprie conoscenze in merito verso tutti, così come un medico o un ospedale condivide verso tutti le proprie scoperte per tutelare tutto il genere umano (in questo caso sopratutto se stessi o i propri ricchi clienti). Microsoft invece deve fare tutto da sola, nessun altro può vedere il codice e capire cosa va e cosa non va.

Poi c'è la diversità. Così come in natura un ottimo espediente per la sopravvivenza della vita è la biodiversità (chi lo avrebbe mai detto che i dinosauri si estinguessero e gli antenati dei topi no?), così la "diversità" fa si che l'informatica regga. Anche in questo caso il software open aiuta, poichè essendo aperto ogni azienda ne modifca una parte e la ridistribuisce e così facendo esistono 1000 versioni della medesima cosa, non 1 sola sempre uguale! La biodiversità nel campo informatico è visibilissima tra i sistemi unix che sono tutti interoperabili tra loro ma mai uguali, nemmeno all'interno di una stessa famiglia, come linux, senza contare i vari incroci possibili (ad esempio Mac osx è un incrocio tra vari software open e la parte closed ed è anch'esso unix).

C'è da dire che nell'ambito del "virus", non sono MAI stati scoperti virus (intendo virus e non altro) funzionanti su Linux, tranne alcuni casi di studio e sempre e comunque nessuno di loro è in grado di autoinstallarsi senza la password amministratore necessaria. Questo fa si che chi usa Linux si sente più libero di girare per la rete e utilizzare il pc in maniera più disinibita che un utente windows, per i quale la minaccia potrebbe essere nel primo link sotto gli occhi. Infine su linux spesso si adottano dei sistemi di installazione per cui l'utente sceglie il programma ed è il sistema stesso a prelevarlo su internet da una fonte sicura ed installarlo, evitando all'utente il problema di chiedersi se la sua fonte è sicura o meno.


Com'è possibile difendersi


Per difendersi dalla minaccia del malware in ogni caso bisogna usare il cervello ed evitare di cliccare dappertutto o di diffondere password in giro. Ma ciò che è innegabile è che un programma open "di qualità" ha minori possibilità di essere attaccato (basti pensare al paragone Internet Explorer - Firefox - Chrome). Senza togliere l'indispensabile (su windows) antivirus e firewall (su linux ancora pressochè inutili). Una cosa molto importante inoltre, sempre per gli utenti windows, è di non disabilitare mai l'UAC, probabilmente uno degli espedienti migliori per Microsoft.
Infine, e questo vale per tutti, bisogna sempre e comunque tenere aggiornare il proprio pc all'ultima versione disponibile.



Mi auguro che qualcuno approfondisca il tema e mi corregga laddove necessario. Mi sono già dilungato abbastanza e non sono entrato in merito a particolari tecnologie (SElinux o spazio utente ecc..) per venire in contro ad un pubblico più generale.


Questo documento è rilasciato come documento "Libero" per volontà espressa dell'autore. Chiunque può copiarlo, modificarlo e ridistribuirlo o rivenderlo, a patto di citare il mio nome nell'articolo


Dario Caruso aka GoNz0