Usare Facebook Notes per un DDOS ad un qualsiasi sito Web.

Facebook Notes consente agli utenti di inserire i tag img. Ogni volta che viene utilizzato un tag , Facebook carica l’immagine dal server esterno e memorizza nella cache. Facebook caricherà in cache l’immagine una volta però utilizzando i parametri get casuali (random)  la cache può essere by-passata e la funzione può essere abusata per causare un enorme HTTP GET flood.

I passaggi per ricreare il bug come riportato a Facebook Bug Bounty il 03 marzo 2014.

Passo 1. Creare un elenco di unico tag img come un tag è sottoposto a scansione solo una volta.

<img src=http://targetname/file?r=1></img><imgsrc=http://targetname/file?r=1></img>
..
<img src=http://targetname/file?r=1000></img>

Passo 2. Usa m.facebook.com per creare le note. Si tronca in silenzio le note ad una lunghezza fissa.

Passo 3. Creare più note dallo stesso utente o utente diverso. Ogni nota è ora responsabile per oltre 1000 richieste http.

Passo 4. Visualizza tutte le note allo stesso tempo. Il server di destinazione sarà vittima di migliaia di HTTP GET flood. Migliaia di richiesta GET vengono inviati a un singolo server in un paio di secondi. Oltre 100 sono il numero totale di server di Facebook che accederanno in parallelo.

Dopo aver scambiato qualche e-mail mi è stato chiesto di dimostrare se l’impatto sarebbe elevato. Ho sparato su un bersaglio virtualizzato in cloud, e utilizzando solo i browser da tre computer portatili sono stato in grado di raggiungere 400 + Mbps traffico in uscita per 2-3 ore. Numero di Facebook Servers: 127

facebook-ddosNaturalmente, l’impatto potrebbe essere più di 400 Mbps come mi è stato solo utilizzando il browser per questo test ed è stato limitato dal numero di file caricabili del browser per ogni dominio. Ho creato uno script proof-of-concept che potrebbe causare impatto ancora maggiore.

Vedo anche un paio di altri problemi con questo tipo di abuso:

  • Uno scenario di traffico di amplificazione: quando l’immagine viene sostituito da un pdf o un video di dimensioni maggiori, Facebook dovrebbe caricare un file enorme, senza che l’utente si accorga di nulla.
  • Ogni nota supporta 1000 + collegamenti e blocchi di Facebook di un utente dopo la creazione di circa 100 Notes in un breve arco. Poiché non vi è alcun captcha per la creazione di note, tutto questo può essere automatizzato e un utente malintenzionato potrebbe facilmente preparare centinaia di note con più utenti fino al momento di attacco quando tutti loro viene visualizzato in una sola volta.

Anche se una sostenuta 400 Mbps potrebbe essere pericoloso, ho voluto provare per l’ultima volta per vedere se può effettivamente avere un impatto maggiore.
Per liberarsi dalle limitazione del browser ho utilizzato lo script ad hoc e sono stato in grado di ottenere ~ 900 Mbps. traffico in uscita.

facebook-ddos-1gbps

Stavo usando un normale file PDF di 13 MB che è stato prelevato da Facebook + 180.000 volte, il numero di server di Facebook coinvolti era 112 .

Possiamo vedere il grafico del traffico è quasi costante a 895 Mbps. Questo potrebbe essere a causa del traffico massimo imposto sulla mia VM, che sta usando una porta ethernet Gbps condivisa. Sembra che non vi è alcuna restrizione mettere sui server di Facebook e con così tanti server  possiamo solo immaginare quanto traffico si possa ottenere.

La combinazione di Google e Facebook, sembra che possiamo facilmente ottenere più Gbps di Flood GET.

Facebook crawler si mostra come facebookexternalhit. In questo momento sembra che non c’è altra scelta che quella di bloccarlo per evitare questo fastidio.

 

Ripristino di un PC fisico con Windows 98 su VMWare Workstation 10 ed Acronis True Image Home.

Qualche giorno fa avevamo riparato un vecchio Pentium II con equipaggiato Windows 98. L’operazione era stata semplice in quanto era tutto funzionante eccetto l’alimentatore che era stato prontamente sostituito con un nuovo.

2014-03-19 15.36.32

Il PC era in dotazione ad una nota autoscuola locale e pertanto conservava dati storici gestionali, che di tanto in tanto hanno ancora bisogno di essere consultati.

Riamane dunque tutt’ora sensato avere in dotazione un vecchio Windows 98 (a distanza di ormai ben 16 anni) che funzioni bene perlomeno in relazione all’utilizzo a cui è stato destinato.

Ieri ci giunge notizia che il PC aveva dei problemi con degli strani BEEP e nessun segno di vita all’avvio. Appena consegnato l’abbiamo collegato al banco prova per renderci conto dopo aver smontato una ad una tutte le periferiche, che la scheda madre non dava segni di vita, ne tantomeno il BIOS che letteralmente non si avviava.

Dunque, dopo aver constatato l’impossibilità di sostituire la motherboard con una equivalente per Pentium II, è stato deciso di rimboccarsi le maniche e virtualizzare la macchina fisica su un software di Virtualizzazione (già menzionato a proposito di diverse emulazioni QUI ), per dar la possibilità di continuare ad usare il PC come se fosse in modalità nativa.

Backup partizioni con Acronis True Image Home 10

Pertanto abbiamo proceduto a smontare i dischi e avviare un backup totale di partizioni e MBR (Master Boot Record) tramite Acronis True Image Home 10 (un software molto potente e professionale per il backup e il ripristino di singoli file, cartelle, o intere partizioni). Alcuni professionisti consigliano di effettuare il backup e di convertire i file .tib prodotti con VMWare vCenter Converter, per poi importarli direttamente in VMWare.

La pratica vuole, che invece le ultime versioni di Acronis True Image Home (dalla 8 in poi nello specifico) generi archivi .tib incompatibili con VMWare vCenter Converter e pertanto bisogna procedere al restore del backup all’interno della macchina virtuale precedentemente creata.

Creazione della Macchina Virtuale

La macchina virtuale è stata creata dalle impostazioni di VMWare Workstation 10 precedentemente installato e scaricabile da http://www.vmware.com/products/workstation/workstation-evaluation utilizzando una configurazione pressochè identica al sistema fisico originale, ovvero : 1 processore, 1 core, 80 GB di Hard Disk, 512 MB di RAM, e un disco IDE.

configurazione-vmware
Abbiamo poi creato dall’interfaccia di Acronis True Image Home 10, un disco di BOOT in cui tramite le utility Acronis, abbiamo ripristinato il backup all’interno della macchina virtuale.

Per creare il CD (o se volete la ISO) dovete lanciare l’Acronis Media Builder :

acronis-media-builder

e successivamente avviare la macchina virtuale creata con VMWare Workstation ed effettuare il restore del backup che avete precedentemente eseguito.

Primo avvio del sistema recuperato e virtualizzato.

Al primo avvio, è ovvio dover riaggiornare e configurare tutti i driver che vengono trovati, che nel nostro caso sono stati già completamente inseriti compatibili nel database dei driver inclusi nell’installazione di Windows 98. E’ bastato pertanto andare avanti con installa, in un loop piuttosto lungo date le numerose periferiche PCI bridge rilevate, per poter effettuare il primo accesso in modo immediato e indolore.

L’unica nota dolente è stata per la scheda video non rilevata immediatamente che ha necessitato dell’ulteriore installazione dei VMWare Tools (installazione sempre consigliata), per poter disporre di una scheda video perfettamente funzionale sia nella combinazione colori che nella risoluzione del monitor.

Fatto questo, abbiamo riavviato di nuovo per goderci perfettamente l’ambiente virtualizzato e perfettamente funzionante.

2014-04-11 09.47.30e dismettere il vecchio PC ormai defunto :

computer-autoscuola-civitanova-marche

Open Source sul Web. Un’infografica sulla diffusione del software open source in ambito Web.

Di seguito un’interessante infografica che dimostra con una statistica inopinabile la diffusione e la penetrazione di software open source a livello Web.
Tra essi troviamo webserver, CMS, Sistemi Operativi come Linux, Linguaggi Server Side come PHP. Io personalmente avrei aggiunto anche altri componenti come server DNS (bind ad esempio), Mailserver come Postfix, EXIM, Qmail, o altri software open source che pur non avendo referenze “dirette” con l’ambito Web, hanno comunque una forte affinità affinchè un sito web possa disporre di tutte le funzionalità classiche come la mail ad esempio.

Si coglie l’occasione per ricordare che forniamo consulenza sistemistica su software open source e ottimizzazioni server e siti web.

Statistiche open source siti web

Creare un blog aziendale. Scegliere WordPress o Joomla ? Compariamoli.

Come ben saprete il fenomeno del blogghing è ormai diffusissimo. Ci sono centinaia di utenti in rete che ogni giorno decidono di aprire un blog e si trovano di fronte a dover scegliere una piattaforma CMS adatta alle loro esigenze. WordPress o Joomla! Quale scegliere? Quali sono i vantaggi o gli svantaggi???

In questo articolo ne parleremo insieme per cercare di capire cosa conviene usare.

Per quanto mi riguarda ho provato entrambe le soluzioni e devo dire che mi sono piaciute molto.

Cercherò quindi di farvi capire in cosa differiscono.

Prima però vediamo di chiarire cos’è un CMS. Come dice Wikipedia:

Un Content Management System, in acronimo CMS, (in italianosistema di gestione dei contenuti), è uno strumento software, installato su un server web, il cui compito è facilitare la gestione dei contenuti disiti web, svincolando il webmaster da conoscenze tecniche specifiche di programmazione Web.

In poche parole si tratta di uno strumento che permette a chiunque di creare il proprio sito senza dover essere un programmatore esperto di web-design!

Sia Joomla! che WordPress sono due CMS molto famosi e diffusi ma non sono neppure gli unici.

Ora che abbiamo chiarito cosa sono i CMS vediamo di scendere un po’ più nei dettagli e di introdurre con una breve descrizione le nostre due piattaforme.

Joomla

Joomla è una piattaforma molto completa che non si limita alla semplice creazione di blog ma permette di creare siti web a tutti gli effetti. Infatti, grazie al grandissimo numero di plugin di cui dispone, Joomla! da all’utente la possibilità di creare siti professionali di ogni genere, dalle vetrine ai siti aziendali. In poche parole, definire Joomla! una piattaforma di blogghing è parecchio riduttivo!

Il pannello di controllo risulta molto ben organizzato e con funzioni avanzate per la gestione di ogni singolo dettaglio. Permette l’installazione di nuovi templates (ne esistono tantissimi e per tutti i gusti), plugin e moduli. Sono proprio i moduli che costituiscono una delle caratteristiche principali di questo CMS.
Infatti ogni componente della pagina, in Joomla! viene identificato con un modulo (per esempio i menù, i forum, le gallerie ecc…).

Ma la cosa veramente più bella è la gestione degli utenti. Infatti è possibile gestire gli utenti nei minimi particolari creando “gruppi”, assegnando ad ogni gruppo i vari permessi e definendo i livelli di accesso al sito.
Si possono creare sezioni private alle quali possono accedere solo alcuni utenti (es: super-user, amministratori, editori, publisher,  utenti registrati, utenti non registrati, ecc…). Sotto questo punto di vista non avrete alcun limite!

Anche la gestione dei menù è molto ben strutturata. Si possono definire menù di vario tipo e posizionarli ovunque nella pagina (di molto superiore rispetto a WordPress sotto questo punto di vista).

L’unico aspetto negativo è che la presenza di tutte queste funzioni tende a rendere più complessa la gestione del sito rispetto ai CMS di base (come WordPress) e quindi Joomla! è dedicato agli utenti più pretensiosi e allo stesso tempo più esperti.

WordPress

WordPress è molto più semplice rispetto a Joomla! ed è orientato alla creazione di Blog.
Questo può sembrare uno svantaggio ma in realtà è il vero punto di forza di questa piattaforma.
La limitatezza consente a WordPress di risultare molto più semplice da utilizzare per gli utenti inesperti ai quali non interessa poter creare gruppi di utenti con permessi particolari o menù sofisticati.

Infatti subito dopo l’installazione è possibile avere un sito funzionante e completamente personalizzabile con pochissimi click. Dalla mia esperienza personale, WordPress richiede molto meno tempo per essere configurato e permette di arrivare molto rapidamente al risultato voluto (cosa che con Joomla! non sempre è scontata).

Anche il pannello d’amministratore risulta più semplice. Sicuramente meno completo ma, già a prima vista, di facile intuizione.

L’editor degli articoli è più user-friendly rispetto a quello di Joomla! e contiene già di default alcune funzioni di base (per i blog) che invece su Joomla richiedono l’installazione di plugin esterni.

Questi particolari hanno reso WordPress la piattaforma di blogging numero uno al mondo in termini di numeri di utilizzo.

Considerazioni

Va detto che non si può essere imparziali dopo un’esperienza approfondita con entrambe le piattaforme, e sebbene la lettura fino ad ora tenda a dipingere Joomla come più malleabile e dunque migliore di WordPress.

In verità Joomla è un “ammazzaserver”, molto pesante, con una gestione dei template a dir poco complessa e orientata più al programmatore che al designer.

Ha una gestione della sicurezza penosa e richiede costantemente aggiornamenti dispendiosi in termini di manutenzione. Non assicura un salta veloce da ramo a ramo con una migrazione di contenuti indolore.

Noi ove possibile scegliamo WordPress come CMS.

Finisce il controllo del governo Usa sui domini di Internet. Parte un piano di transizione.

Il governo degli Stati Uniti sta lasciando il controllo sul sistema degli indirizzi di internet con una mossa che suscita però anche domande sul futuro delle comunicazioni. La decisione dà il via a una transizione che riguarda l’Icann (Internet Corporation for Assigned Names and Numbers), l’ente non profit lanciato nel ormai lontano 1998 dal Dipartimento del Commercio Usa per governare il sistema che assegna gli indirizzi dei siti web e dirige il traffico su Internet. Ed è proprio questo dipartimento che spera di porre termine alla supervisione di Internet da parte di Icann al momento della scadenza del contratto prevista per il settembre del prossimo anno.

Con un annuncio ufficiale il dipartimento riconosce che ormai l’agenza è pronta per diventare un’organizzazione indipendente. L’agenzia presiede a diverse attività collegate a internet che finora sono state perseguite a nome del governo Usa anche da altre organizzazioni , prima tra tutte la Internet Assigned Numbers Authority (IANA) gestita da Icann. Si attende che all’imminente convegno di Singapore la nuova gestione di Icann sia accettata .

Ma perché il governo Usa sta cedendo quanto ancora possiede del diretto controllo su Internet? Icann presiede in qualche misura alle attività di background di Internet come il sistema dei nomi dei domini (DNS) e la modalità con cui i computer si collegano tra loro. Per raggiungere un’altra persona su Internet bisogna digitare un indirizzo sul computer . un nome o un numero. Questo indirizzo deve essere unico in modo che i computer possano trovarsi tra loro. Icann coordina questi identificatori unici in tutto il mondo. L’ente è costituito da entità con interessi internazionali e rappresentanti del governo . Ora il governo Usa ha deciso di conferire a Icann quanto era rimasto di propria competenza. Icann mantiene comunque il suo modello di direzione multistakeholder per ottenere “ sicurezza, stabilità, resilienza dei DNS di Internet”, andare incontro alle necessità di clienti e partner e mantenere aperta internet anche quando il contratto con l’agenzia National Telecommunications and Information Administration (NTIA) del dipartimento verrà a finire.

In questo momento la polemica infuria sul fatto che molti attribuiscono la decisione alle recenti rivelazioni sulle azioni di spionaggio tramite NSA, mentre ufficialmente NTIA dichiara che si tratta della parte conclusiva di un piano a lungo termine di privatizzazione del sistema DNS partito nel 1997.

WordPress XMLRPC, più di 162.000 siti WordPress utilizzati per attacco DDOS

ddosGli attacchi DDOS stanno diventando una tendenza comune ultimamente, ed è una questione molto seria per ogni proprietario del sito. Oggi vi voglio parlare di un grande attacco DDOS che ha sfruttato migliaia di siti web WordPress ignari come vettori di amplificazione.

Qualsiasi sito WordPress con Pingback abilitato (che è attivata per impostazione predefinita) può essere utilizzato in attacchi DDOS contro altri siti.  Notare che XMLRPC viene utilizzato per pingbacks, trackback, l’accesso remoto tramite dispositivi mobili e molte altre caratteristiche è molto probabile che sia abilitato. Ma può anche essere pesantemente abusato come quello che stiamo vedendo.

I fatti

E ‘successo tutto nei confronti di un sito WordPress popolare che era andato giù per molte ore a causa di un DDOS. Poiché l’attacco è aumentato in termini di dimensioni, il loro hoster l’ha spento, e poi hanno deciso di chiedere aiuto a un proxy di tipo Cloudflare.

Una volta che il DNS è stato ripristinato siamo stati in grado di vedere cosa stava succedendo, era un grande attacco flood basato su  HTTP (layer 7) , inviare ovvero centinaia di richieste al secondo al server. La richiesta sembrava questa:

 
74.86.132.186 - - [09/Mar/2014:11:05:27 -0400] "GET /?4137049=6431829 HTTP/1.0" 403 0 "-" "WordPress/3.8; http://www.mtbgearreview.com"
121.127.254.2 - - [09/Mar/2014:11:05:27 -0400] "GET /?4758117=5073922 HTTP/1.0" 403 0 "-" "WordPress/3.4.2; http://www.kschunvmo.com" 
217.160.253.21 - - [09/Mar/2014:11:05:27 -0400] "GET /?7190851=6824134 HTTP/1.0" 403 0 "-" "WordPress/3.8.1; http://www.intoxzone.fr" 
193.197.34.216 - - [09/Mar/2014:11:05:27 -0400] "GET /?3162504=9747583 HTTP/1.0" 403 0 "-" "WordPress/2.9.2; http://www.verwaltungmodern.de" 
..

Se notate, tutte le query avevano un valore casuale (come “? 4.137.049 = 643.182”), che aggirato la loro cache e forzare una pagina di ricarica completa ogni volta. Si stava uccidendo il loro server abbastanza rapidamente.

Ma la parte più interessante è che tutte le richieste provenivano da siti WordPress validi e legittimi. Sì, gli altri siti WordPress mandavano che le richieste casuali portando il sito down.

WordPress che ha XMLRPC abilitato = Very Large Botnet

Proprio nel corso di poche ore, oltre 162.000 diverse e legittime siti WordPress cercato di attaccare il suo sito.Avremmo probabilmente abbiamo rilevato molto di più siti, ma abbiamo deciso che avevamo visto abbastanza e bloccato le richieste al firewall di confine, soprattutto per evitare di riempire i registri con spazzatura.

Riuscite a vedere quanto potente può essere? Un attaccante può usare migliaia di siti WordPress popolari e puliti per svolgere il loro attacco DDOS, pur essendo nascosto nell’ombra, e che tutto accade con un semplice ping torna richiesta al file XML-RPC:

$ Curl-D - "www.anywordpresssite.com / xmlrpc.php"-d '<methodCall><methodName>pingback.ping</methodName><params><param><value><string>http://victim.com</string></value></param><param><value><string>www.anywordpresssite.com/postchosen</string></value></param></params></methodCall>'

Il tuo sito attaccando gli altri?

Potrebbe essere e non avete idea. Per verificare, guardare attraverso i registri di eventuali richieste POST al file XML-RPC, simile a quello qui sotto. Se vedi un pingback a un URL casuale, sai che il tuo sito è attuato in modo abusivo.

93.174.93.72 - [09/Mar/2014: 20:11:34 -0400] "POST / xmlrpc.php HTTP/1.0" 403 4034 "-" "-" "PostRequest: <xml version = \ x221.0 \ x22 encoding=\x22iso-8859-1\x22?>\x0A<methodCall>\x0A<methodName>pingback.ping</methodName>\x0A<params>\x0A  <param> \ x0A <valore> \ x0A <string> http://fastbet99.com/?1698491=8940641 </ string> \ x0A </ value> \ x0A </ param> \ x0A <param> \ x0A <valore > \ x0A <string> yoursite.com </ string> \ x0A </ value> \ x0A </ param> \ x0A </ params> \ x0A </ methodCall> \ x0A "
 
 94.102.63.238 - [09/Mar/2014: 23:21:01 -0400] "POST / xmlrpc.php HTTP/1.0" 403 4034 "-" "-" "PostRequest:   \ X0A   \ X0A   pingback.ping   \ X0A   \ X0A   \ X0A   \ X0A   http://www.guttercleanerlondon.co.uk/?7964015=3863899   \ X0A   \ X0A   \ X0A   \ X0A   \ X0A   yoursite.com   \ X0A   \ X0A   \ X0A   \ X0A   \ X0A "

Per interrompere il vostro sito WordPress da uso improprio, è necessario disattivare la funzionalità XML-RPC (pingback) sul tuo sito.

Un modo migliore per bloccarlo è quello di aggiungere al file functions.php del tema attuale, aggiungendo il seguente filtro:

add_filter( ‘xmlrpc_methods’, function( $methods ) {
unset( $methods[‘pingback.ping’] );
return $methods;
} );

Provatelo e fare la vostra parte per rendere Internet un luogo più sicuro per tutti.

Utilizzare professionalmente in ambito web un RDBMS come MySQL o PostgreSQL garantendo l’integrità dei dati, migliorandone le performance e la sicurezza.

databaseTra le cose che più destano indignazione nel mio lavoro, è quello di vedere colleghi o sedicenti tali, fare un uso delle tecnologie in modo errato, non avendo a cuore la lungimiranza e gli eventuali problemi che potrebbero verificarsi da li a poco.
Tra tutte le regole che ho imparato in 10 anni di lavoro ed altrettanti di studio è che prevenire è meglio che curare, e che con gli attrezzi giusti sei già a metà dell’opera.

Oggi voglio parlare di tutti quei web developer, che per scelta o causa di forza maggiore decidono di occuparsi anche della progettazione della base di dati su cui poi andrà a girare l’applicazione web scritta con un linguaggio server side, (PHP, Ruby, Python, ASP, ecc.)

Quello che trovo nella maggior parte dei casi quando non c’è un DBE (Database Engineer) a svolgere il delicato ruolo di progettare la base di dati, è  un progetto inconsistente, non performante e lacunoso sotto tutti i punti di vista.

Ciò potrebbe anche “andar bene” qualora gli effetti nefasti di una cattiva progettazione non mettano a rischio l’integrità dei dati e la coerenza del database stesso, o nei casi in cui l’integrità dei dati e la coerenza non siano uno dei requisiti fondamentali da tener presente in fase di progettazione.

Vuoi perchè sia un blogghettino personale, vuoi perchè i dati trattati non hanno un valore tale da giustificare un’accurata pianificazione e progettazione dello stesso.

Non è invece possibile vedere progetti campati per aria quando si ha a che fare con software seri che gestiscono informazioni riservate o dati fiscali e finanziari, in cui l’integrità e la consistenza della base di dati è fondamentale.

Anche un “banale” e-commerce dovrebbe rispondere a questi requisiti.

La realtà è fatta invece di dilettanti che usano i potentissimi RDBMS, (normalmente in ambito LAMP MySQL) limitandosi all’utilizzo più banale che se ne possa fare : un semplice “archivio con tanti cassetti” in cui fare INSERT, SELECT, UPDATE, e DELETE tramite l’applicazione web che ci gira sopra.

Funzionalità come Viste, Stored Procedure, integrità referenziale, Trigger, Transazioni, Indici , vengono prettamente ignorate.

Se una persona competente decidesse di eliminare la casa automobilistica FIAT dal database veicoli a cui è referenziata la tabella modelli:

FIAT

– Panda
– Punto
– Palio
– Siena
– Brava

Avrebbe solo l’accortezza in fase di progettazione di settare il vincolo ON DELETE CASCADE, sulla relazione Casa<-Modelli.
Questo vincolo impartisce l’ordine di cancellare i record referenziati alla cancellazione della chiave primaria esterna a cui è stata referenziata.

Un dilettante invece dovrebbe scorrere tutta la tabella modelli, cancellare tutti gli elementi con una DELETE FROM Modelli WHERE casa like “FIAT”; e solo successivamente salire al “nodo padre” e cancellare definiticamente la casa automobilistica con un DELETE FROM Casa WHERE nomecasa LIKE “FIAT”;

Cosa succede poi quando un DB genera un errore ?

Vuoi che sia generato a livello applicativo da un codice scritto male, vuoi che vada via l’energia elettrica, la rete, o si rompa l’alimentatore ?

Mettiamo l’ipotesi banale in cui due utenti della stessa banca, decidano di farsi un bonifico tra loro : Tizio bonifica 1000 euro a Caio.

Tizio fa click col mouse, il sistema riceve il dato, toglie 1000 euro a Tizio e … BUM (scoppia l’alimentatore del server).

Arriva il tecnico, ripara l’alimentatore, riavvia il sistema e ci troviamo nella condizione in cui Tizio ha 1000 euro in meno sul suo conto, Caio non ha 1000 euro in più, in quanto l’operazione di accredito non è andata a buon fine perchè appena prima l’alimentatore si è rotto.

In queste situazioni un progettista serio avrebbe dovuto usare una TRANSAZIONE ACID, ovvero una metodologia per eseguire un gruppo di query, in cui o le si eseguono TUTTE, o si ripristina il DB allo stato iniziale, prima dell’esecuzione del gruppo di query.

Nel caso avesse usato una transazione, al riavvio del sistema, il DBMS avrebbe letto i log e accorgendosi che era stata eseguita solo una parte delle query, avrebbe eseguito il ROLLBACK e ritornato nelle condizioni iniziali prima del bonifico.

Questi esempi sono volutamente banali in quanto rivolti appunto a coloro che approcciano al mondo dei DB, senza avere padronanza di concetti basilari come modello E/R, normalizzazione e peculiarità di DBMS Relazionali avanzati come possono essere MySQL, PostgreSQL, Oracle, SQL Server o altri.

La pigrizia spesso genera quella falsa illusione di fare bene le cose, ignorando funzionalità che permettono di farle in maniera molto più facile e sopratutto sicura.

Approcciare ad una sana lettura sulle potenzialità del motore InnoDB, e le relative differenze con MyISAM, per chi si approccia alla progettazione di una base di dati su MySQL è il primo passo.

ATI Mobility Radeon 9500, 9600, 9700, X300, x550, X600, x700, X800, x1050, X1300, x1550, and other, Windows 7, Windows 8 drivers

Questo driver è compatibile con Windows 7 e Windows 8 a 32 o 64 bit, e permette di installare le seguenti schede video :

ATI Radeon 9500 Series
ATI Radeon 9550 Series
ATI Radeon 9600 Series
ATI Radeon 9700 Series
ATI Radeon 9800 Series
ATI Radeon X300 Series
ATI Radeon X550 Series
ATI Radeon X600 Series
ATI Radeon X700 Series
ATI Radeon X800 Series
ATI Radeon X850 Series
ATI Radeon X1050 Series
ATI Radeon X1300 Series
ATI Radeon X1550 Series
ATI Radeon X1600 Series
ATI Radeon X1650 Series
ATI Radeon X1800 Series
ATI Radeon X1900 Series
ATI Radeon Xpress Series
ATI Radeon X1200 Series
ATI Radeon X1250 Series
ATI Radeon X2100 Series

e le ATI Mobility della stessa serie.

Procedura :

Scaricare il file zip che trovate nel download in basso, decomprimetelo ed eseguite setup.exe
Al termine, noterete la risoluzione nativa del monitor ed in più avrete a disposizione diversi settaggi nel software ATi Catalyst Control Center.

Il pacchetto è stato creato da Tecnoinfo a http://tecnoinfo.blogfree.net/?t=4430821

For English readers

This driver are Windows 7 and Windows 8 Compatible (32 or 64 bit). Download, extract and run setup.exe

ati_radeon_9700_win7_drivers

download

Aruba Cloud, la rimozione di un disco su Linux può impedirne l’avvio

Quello che andrò a descrivere è il comportamento che ho riscontrato al momento della rimozione di un disco ad un’installazione Linux Debian 7 su un’istanza Cloud Aruba.

Per essere brevi avevo in fase iniziale a livello di filesystem, uno schema del genere :

/dev/sda1 -> Sistema operativo (20 GB) – Montato su /
/dev/sdb1 -> Directory siti Web (100 GB) – Montato su /disk2
/dev/sdc1 -> Backup directory siti Web (80 GB) – Non montato
/dev/sdd1 -> Database MySQL – Montato su /mysqldisk

I disco numero 3 /dev/sdc1 era stato copiato su uno spazio più grande, passando da 80 GB a 100GB, e dopo aver rimontato il nuovo spazio sul suo vecchio punto di mount /disk2 e dopo averne accuratamente appurato il corretto funzionamento,
è stato rimosso in quanto non più necessario.

Al riavvio del server, il sistema non andava Up, non era possibile pingarlo, per cui ho pensato realmente che ci fosse stato qualche serio problema in fase di avvio a livello di partizioni.

Ho dovuto provvedere ad avviare la console di ripristino che nel mio caso si è trattato essendo di un Cloud Server e non di un server dedicato, non di un normale KVM over IP ma di un accesso remoto tramite RDP di VMWare vSphere del cloud Aruba, che dopo avermi fatto scaricare un paio di ActiveX per IE che mi hanno avviato una connessione VPN e fatto accedere tramite browser a una sessione RDP.

A quel punto ho notato l’errore in cui veniva menzionata l’inesistenza delle partizioni, e un bel prompt di login di emergenza.

Decido di loggarmi e facendo un fdisk -l mi accorgo che i dispositivi sono stati mappati sotto nomi diversi.

In parole povere :

/dev/sdd1 era diventato /dev/sdc1

Mi sono prestato ad editare con VI (editor di testo) il file /etc/fstab contentente le informazioni necessarie al montaggio delle periferiche disco e partizioni del sistema, modificando il dispositivo /dev/sdd1 in /dev/sdc1.

Un restart del sistema con un classico shutdown -r now e il sistema era di nuovo UP e funzionante.

Attenzione dunque a rimuovere dischi, potreste incappare nella stessa problematica.