Levysoft
  • Home
  • Portfolio
  • WordPress Plugin
  • Contattami

Dal 2004 il blog di Antonio Troise

RSS FeedTwitterFacebook
Mag 10 2016

Registrare un flusso video di una webcam con FFMPEG su un server creato al volo su DigitalOcean

Posted by Antonio Troise
Tweet

Pullo - Falco Pellegrino

Ogni anno, sulla torre di trasmissione di Telecom sulla Cassia a Roma, nidificano due falchi pellegrini, Alice e Virgilio. Quest’anno la mamma ha dato alla luce 4 piccoli falchetti, detti pulli: Rain, Sole, Nube e Duemari. Per un paio di mesi è stato possibile vedere in diretta streaming tutta la fase della covata e, poi, della crescita dei piccoli, grazie ad una webcam installata sul nido accesa 24 ore su 24 ore e raggiungibile a questo indirizzo di BirdCam.it.
Per un certo periodo ho avuto necessità di registrare il video di alcuni eventi, come la schiusa o il primo volo, e se all’inizio era sufficiente la funzionalità di “Registrazione Schermo” di Quicktime su Mac OS X, alla lunga mi costringeva a lasciare il computer sempre acceso. Inoltre certi fatti non potevano essere previsti e quindi ho optato per una soluzione di registrazione automatica del flusso video.

Identificare la url del flusso video

Il primo passo necessario è identificare l’indirizzo url da cui proviene il flusso video dello streaming. Sulla pagina all’indirizzo http://www.birdcam.it/webcam-2/ è presente una versione Flash che maschera l’origine. Cliccando, però, sul link “Fullscreen – Schermo pieno” si raggiunge la pagina: http://www.birdcam.it/full_alice.html.
Ed è da qui che, analizzando il codice sorgente della pagina, all’interno del tag video si può trovare il link del flusso rtmp/mp4:

Creare un server su DigitalOcean

Avendo accumulato qualche credito su DigitalOcean e siccome il mio progetto era temporaneo, ho pensato bene di creare una istanza minimima (droplet) da 5 dollari al mese (ovvero 0,007 dollari all’ora). Il vantaggio di questo hosting è che si può avere un server dedicato con hard disk SSD con il sistema operativo che più si preferisce pagando, solo finché l’istanza è attiva, un prezzo davvero irrisorio.
Pensate, con un server che ho creato e distrutto in soli dodici minuti, considerando che l’unità minima è di 1 ora, ho spesso solamente 1 centesimo di dollaro. Invece per un server che ho tenuto attivo per quasi 4 giorni per testare una server con preinstallato Ghost, ho speso solo 0,51 dollari.
Infine, tra le opzioni incluse nel pacchetto base, è quella di poter salvare, in qualsiasi momento, anche uno snapshot del server (a freddo, quindi a server spento), per avere un rapido backup di una configurazione del server. Inoltre, lo snapshot, permettendo di salvarsi l’immagine della vostra macchina (con tutti gli script installati e le righe di crontab), è anche un ottimo modo per preservare la propria installazione customizzata senza dover per forza lasciarla attiva, ma attivandola e cancellandola all’occorrenza, visto che rimane nel vostro profilo anche quando cancellato la droplet. Considerando il fatto che creare una nuova droplet, o in questo caso ripristinarla, è veramente una questione di pochi minuti e considerando anche che si paga solo per il tempo effettivo di utilizzo, il vantaggio di creare gli snapshot è evidente, soprattuto se usate il server poche volte al mese: risparmiare molti soldi.

Se poi, come abbiamo detto poco fa, la creazione di una istanza è rapidissima, è facile dedurre che la piattaforma di DigitalOcean è perfetta per tutti quei progetti che non richiedono grosse risorse e che hanno una durata temporale breve (se poi si richiede una maggiore potenza di calcolo o una banda maggiore, è sufficiente scegliere il piano che più si gradisce sapendo a priori quanto si va a pagare in un mese).

Per il mio scopo ho semplicemente creato una istanza da 5 dollari al mese che mi dava a disposizione:

  • 1 CPU
  • 512 MB di RAM
  • 20GB di Hard Disk SSD
  • 1000 GB di Traffico

Quindi ho scelto di preinstallare la distribuzione CentOS 6.7 X64 sul datacenter più vicino all’Italia disponibile, ovvero quello di Londra.

Digital Ocean

L’operazione di creazione della istanza ha impiegato meno di 1 minuto e nel frattempo era già arrivata la mail con le credenziali di accesso SSH (con relativa password temporanea):

Installazione di FFMPEG

La parte più lunga è stata quella di trovare una installazione di FFMPEG funzionante senza avere problemi con le dipendenze da librerie esterne e senza compilazioni malfunzionanti. Senza dilungarmi su dettagli, vi dico subito che se andate sul sito ufficiale di FFMPEG.org potete scaricare direttamente un pacchetto già precompilato perfettamente funzionante sulla piattaforma di CentOS:

Questi i passi da seguire dalla shell linux (notate che, essendo il pacchetto compresso con xz, ho dovuto installare anche la relativa applicazione):

Catturare il flusso video streaming

Avendo precedentemente trovato la url dello streaming video, non ho fatto altro che lanciare la seguente riga di comando:

Ovviamente il primo avvio non ha funzionato perché ha dato il seguente errore: “Failed to resolve hostname player.adobemediaserver.it: Name or service not known“.
Essendo questa una installazione provvisoria non mi sono messo a capire il motivo del problema ma ho semplicemente trovato l’indirizzo ip del server “player.adobemediaserver.it” con un semplice ping:

e rilanciato il comando come segue:

A video vedrete una serie di righe che scorrono come questa:

Se volete lanciarlo in background senza avere a video nessun output ma salvando gli errori in un file di log, questo è il comando:

Ovviamente però il processo non si interromperà a meno che non killerete il processo con un “kill -9 PID”.

CREAZIONE SCRIPT e SCHEDULAZIONE NEL CRONTAB

Siccome avevo necessità di registrare il video alle prime luci del giorno (inutile registrare durante la notte perché non vi era, fortunatamente, alcuna forma di illuminazione notturna) ho creato al volo uno script in bash come segue:

e quindi con il comando “crontab -e” ho inserito la seguente riga nel crontab per farlo partire alle 5:55 di mattina (ovvero all’alba):

Attenzione: il server non è in Italia per cui, dopo aver controllato l’ora locale, ho sottratto 6 ore dall’ora italiana, impostando così la partenza dello script a alle 23:55 ora locale del server per avere una partenza effettiva della registrazione alle ore 5:55 ora italiana.

TRASFERIMENTO DEL VIDEO

Una volta conclusa la fase di registrazione (in questa fase preliminare per stoppare il processo eseguivo, brutalmente un kill del relativo pid) dovevo trasferire il video appena salvato dal server al mio computer. Detto fatto: basta aprire il Prompt dei Comandi da Windows o il Terminale di Mac OS X e si esegue il semplice accesso SFTP sul server remoto di DigitalOcean con le credenziali ricevute via email (che sono le stesse per usate per l’accesso SSH) ed eseguire una GET del file:

CONCLUSIONE

Ovviamente lo script in bash si può migliorare, come anche la gestione della registrazione del flusso video, ma lo scopo del presente articolo è quello di illustrare una delle tante procedure possibile e far capire come si può risolvere un problema, apparentemente complicato, in maniera molto veloce.

Tag:centos, digital ocean, Linux, webcam
CONTINUE READING >
0 comments
Giu 17 2015

Vinci un SuperServer con SelfServer

Posted by Antonio Troise
Tweet

Selfserver Giveway

Giveway

Se vi interessa vincere un vero Super Server allora non dovrete perdere questo Giveway di ‪SelfServer‬. In palio un Super Server per un anno!

Ecco le regole per partecipare:

  • Essere Fan della pagina Facebook di Enter
  • Mettere un commento o un like sotto al post del Giveway
  • Condividere il post del Giveway sulla propria bacheca (mettendo il post Pubblico)

Il termine del giveaway è fissato per domenica 21 giugno h 24.00.
Il vincitore verrà estratto con Rafflecopter e comunicato con un post sulla nostra bacheca il 22 giugno alle h 12.00.

Per ricevere il premio, il selezionato dovrà rispondere al post entro le h 12.00 del 23 giugno, in caso di mancata risposta verrà estratto un nuovo vincitore e comunicato sulla nostra bacheca.

Eccezionale Offerta

In ogni caso, vi segnalo anche la eccezionale offerta che scadrà proprio Domenica 21 Giugno, per la stessa tipologia di Server: Super Server. Si tratta di un virtual private server ad altissime prestazioni, con risorse elevate (Server Linux con 4 CPU, 6GB RAM e 400 GB di storage), adatto a supportare qualsiasi attività. Il server ha già pre-installato il pannello di controllo (Webuzo) oltre a firewall ed antivirus. Il traffico è illimitato. Il prezzo? Solo 17€ al mese per sempre, invece di €85 del prezzo canonico… e fidatevi… le prestazioni sono reali.

SelfServer Sconto

Tag:Linux, server
CONTINUE READING >
0 comments
Set 29 2014

Shellshock: come proteggere i vostri server linux aggiornando la shell Bash

Posted by Antonio Troise
Tweet

Qualche giorno fa è stato scoperto un pericoloso bug riguardante la shell Bash, ampiamente diffusa in ambito Unix. “Shellshock” è il nome di questa vulnerabilità che permette in diversi casi ad un attaccante esterno di eseguire comandi su una macchina, o nel peggiore dei casi di prenderne il controllo.

Maggiori dettagli sono disponibili qui e qui.

Per verificare se le tue macchine sono vulnerabili o meno digita la seguente stringa:


env VAR='() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"

Se a schermo comparirà la stringa ‘Bash is vulnerable!’ dovrai mettere in sicurezza i tuoi sistemi. Per farlo sarà sufficiente aggiornare tutti i pacchetti all’ultima versione, utilizzando il package manager integrato, con dei semplici comandi:


Sistemi Debian / Ubuntu: apt-get update && apt-get upgrade
Sistemi Centos / Fedora / Redhat: yum update

In realtà, piuttosto che aggiornare tutti i pacchetti, è sufficiente aggiornare la shell Bash. Per verificare la release della propria shell Bash installata, sarà sufficiente lanciare il seguente comando:


bash --version

E questo sarà l’output.


GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Un altro modo è quello di entrare nella snella e lanciare il comando di visualizzazione della variabile di ambiente $BASH_VERSION


# bash
# echo $BASH_VERSION
4.1.2(1)-release

Nel mio caso avevo la shell Bash aggiornata alla release 4.1.2(1)-release.

Per aggiornare solo la shell Bash:


Sistemi Debian / Ubuntu: apt-get install --only-upgrade bash
Sistemi Centos / Fedora / Redhat: yum update bash

Questo sarà quello che verrà visualizzato:

Resolving Dependencies
--> Running transaction check
---> Package bash.x86_64 0:4.1.2-14.el6 will be updated
---> Package bash.x86_64 0:4.1.2-15.el6_5.2 will be an update
--> Finished Dependency Resolution

e, al momento in cui scrivo, la shell Bash verrà aggiornata alla release 4.1.2-15.el6_5.2.

Ora lanciando il comando di verifica:


env VAR='() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"

otterrò questo output: “Bash Test” e questo sta ad indicare che la shell Bash non è più vulnerabile.

UPDATE 1: Per testare la presenza della vulnerabilità in un server o un dispositivo remoti accessibili tramite URL è disponibile on-line il sito Shellshocker.net.

UPDATE 2: Apple ha appena rilasciato OS X Bash Update 1.0 per OS X Mavericks, Mountain Lion, e Lion, una patch che risolve la falla di sicurezza nota come Bash Bug o Shellshock. Se la patch non compare ancora tra gli aggiornamenti disponibili, può essere scaricata manualmente dal link ufficiale Apple.

Tag:bash, bug, fix, Linux, shellshock, vulnerabilita
CONTINUE READING >
0 comments
Lug 29 2009

Come creare facilmente flowchart in ASCII

Posted by Antonio Troise
Tweet

Oramai trovare documentazione scritta in puro ASCII non è più così facile come qualche anno fa, soppiantata da pagine html e file pdf, anche se comunque questo metodo rimane molto in voga in svariati settori per la sua immediatezza, semplicità e per il fatto di potersi svincolare da qualsiasi formato proprietario tanto da poter essere riprodotto con un qualsiasi semplice editor di testo. Analogamente è anche più difficile trovare chi si diletta ad inserire nei file txt (magari a corredo di un programma unix), diagrammi a blocchi, per puro scopo di documentazione.
Bisogna comunque ammettere che qualche atavica traccia ancora resiste al progresso nella sua forma più famosa di ASCII Art, ovvero quelle immagini prodotte componendo insieme i caratteri ASCII. Nate con il semplice scopo di sopperire alle scarse possibilità grafiche delle prime generazioni di stampanti, ricorrendo all’uso di caratteri alfabetici al posto dei segni grafici, sono divenute molto in voga nelle BBS testuali intorno agli anni Novanta, fino a quando la diffusione di Internet e del World Wide Web (che supportava nativamente la grafica) non ha soppiantato questo principale mezzo di comunicazione fra appassionati di computer.

Se escludiamo esperimenti più arditi dell’ASCII Art atti a riprodurre veri e propri filmati, grazie al driver video per Linux AAlib (ASCII art library) in grado di convertire automaticamente immagini e video in ASCII art, oggigiorno è possibile ancora trovare l’ASCII Art, oltre che nel sempre eterno Televideo, anche all’interno del codice sorgente di alcuni programmi per computer, per rappresentare dei logo di prodotti o società, o per includere diagrammi di controllo di flusso a scopo di documentazione e, per esteso, qualsiasi mappa concettuale.

Flow Chart Ascii

Quindi, anche se raro, è possibile che qualche programmatore abbia bisogno di mostrare un flow chart su un terminale ascii linux, poiché magari lavora su un server senza interfaccia grafica. E’ indubbio che il vantaggio di questo metodo di scrittura è quello di poter essere creata con un semplice editor di testo, dal vi o eMacs fino al Notepad di WIndows, ma mettersi a creare manualmente tutta una serie di blocchetti ASCII, spostandoli con gli spazi ognivolta si vuole inserire un nuovo blocco, in modo da allinearli tra di loro, è un lavoro certosino che non invidio a nessuno (e ho visto anche qualcuno che, con molta pazienza, si dilettava in questa amena attività).
Se siete tra quei pochi che hanno bisogno di svolgere questo genere di lavoro, allora vi consiglio un interessante modulo per Perl (un linguaggio di programmazione presente in tutte le distribuzioni linux): Graph::Easy. Similmente a GraphViz è in grado di creare, attraverso una semplice sintassi, flowchart, grafici e schemi a blocchi; dalla sua però, ha l’indubbio vantaggio di effettuare, per tutti gli amanti di Emacs, anche il rendering di strutture grafiche più o meno complesse in formato Ascii, con tanto di blocchi, nodi e freccette.
I formati supportati sono: HTML, ASCII art, Unicode boxart, SVG e graphviz png.

Flow Chart Graph Viz

Qui potete trovare la pagina di supporto al progetto, con tanto di manuale introduttivo e di demo. Ed è proprio quest’ultimo link che vi consiglio di appuntarvi, poiché vi consentirà di sfruttare tutta la potenza del modulo Graph::Easy dovunque siate e senza installare alcunché sulla vostra macchina Unix.
Vi basterà imparare la semplice ed intuitiva sintassi per realizzare i vostri complessi schemi a blocchi e che si semplicherà ulteriormente se dovete creare solo flowchart in ASCII perché, evidentemente, potrete fare a meno di tutta la sezione dei colori dei blocchi e della formattazione del testo.

Per esempio se nella pagina della demo di Graph::Easy scrivete il seguente codice:


[ Bonn ] --> [ Berlin ] { shape: circle; }
..> [ Ulm ] { shape: circle; }
[ Berlin ] == train ==> [ Koblenz ] { shape: rounded; }
= > [ Bautzen ] { border: solid dotted; }

darà come risultato questo grafico ASCII:

Flow Chart Ascii

UPDATE: Un altro interessante servizio online gratuito che potrebbe essere usato per disegnare flowchart in ASCII è ASCIIPaint: “Si sceglie un carattere e lo si disegna a mano libera nel foglio bianco, oppure inserendo frecce, linee e forme geometriche. C’è perfino il classico secchiello per il riempimento e i tool per cancellare tutto o tornare indietro di un’azione“.

Tag:ascii, flowchart, Linux
CONTINUE READING >
2 comments
Apr 21 2009

Portable Ubuntu: come far girare Ubuntu su Windows senza installazioni, partizioni o virtualizzazioni

Posted by Antonio Troise
Tweet

Recentemente ho provato Portable Ubuntu, un’alternativa molto più performante e più semplice ad Ulteo Virtual Desktop, recensito su questo sito qualche tempo fa, che consente di far girare su Windows molte delle applicazioni scritte per Linux, utilizzando la tecnologia Cooperative Linux. Lo scopo principale di Portable Ubuntu è quello di far avvicinare a Linux anche gli utenti meno smaliziati che non sopportano una installazione ex novo di Ubuntu, con tutti i timori, ora meno giustificati di un tempo, di un partizionamento del disco fisso.

Ubuntu, grazie anche alla sua comunity, si è sempre contraddistinto, rispetto alle altre distribuzioni linux, per la estrema semplicità d’uso, sia durante il processo di installazione molto semplificato sia per il fatto di rendere la distribuzione avviabile direttamente da DVD senza passare per forza per una installazione (con tutti gli svantaggi dal punto di vista delle performance dato che la velocità in lettura di un dvd sono sicuramente inferiori a quelle di un hard disk) proprio per offrire a chiunque la possibilità di una valutazione del prodotto.
Ultimamente sono nate anche altre soluzioni, come Wubi Installer, uno speciale tipo di installazione per Windows (che si appoggia sempre alla ISO scaricabile da qui) che permette di trattare Ubuntu come un normale applicativo che si installa e si disinstalla (da Aggiungi/Rimuovi Programmi) e penserà tutto lui ad impostare il setup e a creare le partizioni. Oppure, grazie a Portable Qemu Persistent Ubuntu, che sfrutta la potenza della coppia di Qemu e di un’immagine ISO di Ubuntu (che potete anche personalizzare usando il l’Ubuntu Customization Kit), si può eseguire il sistema operativo virtualizzato su una macchina Windows che resterà intatta: è sufficiente scaricare il file qpubuntu.zip scompattarlo in un device USB e avviare il file batch ubuntu.bat (un altro esempio di uso di QEMU, trattato anche in un mio vecchio articolo, è la mini distribuzione Damn Small Linux).

Come far funzionare Portable Ubuntu

Portable Ubuntu è una applicazione portabile che non richiede alcuna installazione o virtualizzazione di sistema il che viene indubbiamente in soccorso agli utenti poco esperti.
La procedura è semplice (su HowToForge trovate anche una guida inglese passo passo):

  1. Scaricate il file Portable_Ubuntu.exe (che altro non è che un pacchetto autoestraente 7zSFX da 438 MB) e decomprimete l’archivio (che richiede in totale 1,85 GB di spazio libero su disco)
  2. Fate doppio clic sul file run_portable_ubuntu.bat che si trova nella cartella appena scompattata
  3. Si aprirà in alto una piccola barra che metterà a disposizione una versione di Ubuntu utilizzabile come un qualsiasi programma per Windows: infatti tutte le applicazioni linux appariranno come finestre sul desktop di windows (tanto che nella taskbar troverete i task di ogni applicativo aperto e da li potrete massimizzare, minimizzare o chiudere le finestre) e sarà anche possibile effettuare copia ed incolla fra i due diversi ambienti in entrambe le direzioni.
Portable Ubuntu 1

Nel caso aveste ancora dubbi, ecco un filmato che vi spiegherà tutte le semplici e poche operazioni da seguire:

Prime impressioni

Devo però constatare che, a differenza di quanto venga affermato, su un sistema di non ultima generazione (parlo di un PC Pentium IV con appena 512 MB di RAM), l’avvio di Portable Ubuntu, richiede poco più di 1 minuto e l’apertura delle varie applicazioni non risulta molto veloce. Ma d’altronde è comprensibile: se ad occupare la memoria di sistema vi è Windows, con tutti i suoi memory leaks nativi, non è possibile beneficiare totalmente della agilità propria di un sistema operativo come Linux, almeno su sistemi datati.

In ogni caso è indubbiamente comodo avere, sul proprio sistema operativo principale, ahimè Windows, la possibilità di lanciare ma anche installare alcune potenti applicazioni solo per Linux (per non parlare del grande vantaggio di avere la potente shell unix su Windows)! Addirittura, per come è lo scopo del progetto e come si può intuire dal nome, se copiate la cartella di Portable Ubuntu su una pennetta USB o su un hard disk esterno USB (cosa consiglio per avere maggiori performance), avrete la vostra distribuzione Linux sempre con voi ed eseguibile da qualsiasi PC Windows a cui avrete accesso.

Portable Ubuntu 2
Come funziona

Se siete curiosi di sapere quale sia il segreto su che si nasconde dietro Portable Ubuntu, dovete sapere che alla base di questo idea vi è un progetto precedente: andLinux che, usando sempre Ubuntu, si appoggiava su XFCE Panel e KDE (qui la guida step-by-step per l’installazione). Entrambi i progetti, però, si appoggiano a 3 pacchetti software sapientemente combinati tra loro:

  • Xming è una versione dell’X Server per sistemi Windows;
  • Pulse Audio è un Server Audio per sistemi POSIX e Win32 che si “interpone” tra il sistema audio nativo di Windows e quello delle applicazioni;
  • coLinux Kernel è uno dei porting del Kernel Linux per Windows, che permette di far funzionare il kernel di Linux come un vero e proprio processo di Windows. in pratica utilizzando un driver particolare che rende possibile l’esecuzione dell’applicativo coLinux in “modalità Ring 0″ (la modalità privilegiata cui esegue parte del Windows Kernel) si rende funzionante il Kernel Linux all’interno di uno specifico spazio di indirizzamento (quello del processo coLinux). Intercettando gli interrupt hardware, e cooperando con alcune funzionalità del sistema di basso livello di Windows, l’applicativo coLinux rende il Kernel Linux pienamente funzionante. In questo modo il Kernel Linux si avvia ed è in grado di gestire gli esegubili in formato binario elf, ovvero quelli di una tradizionale distribuzione Linux.

Se volete approfondire l’argomento sul sito del progetto troverete tutta la documentazione necessaria, come le istruzioni su come ampliare lo spazio di archiviazione, su quale è la password (importante per installare applicazioni con synaptic) per l’utente predefinito pubuntu (di default è impostata a: 123456) e su come accedere ai file del vostro disco C: di Windows (sarà sufficiente andare nella cartella /mnt/C).

Tag:Linux, portableapps, qemu, ubuntu, usb, virtualizzazione, Windows
CONTINUE READING >
6 comments
Mar 25 2009

Avidemux: l’alternativa per Mac OS X e Linux del famoso programma di video editing Virtualdub per Windows

Posted by Antonio Troise
Tweet

Da quando sono passato a Mac OS X, l’unica cosa di cui sentivo realmente la mancanza era poter usare un programma per l’editing video flessibile e veloce come Virtualdub per Windows. A volte mi capita di registrare qualche programma televisivo con Vcast in qualità Divx e poi, dopo averlo scaricato (comoda la funzionalità di feed rss messa a disposizione da Vcast per il download automatico con iTunes a mo’ di personal Podcast) sono solito eliminare la pubblicità dal file video (o tutto ciò che ritengo inutile o superfluo) in modo da potermi godere la visione senza interruzioni. Virtualdub ha dalla sua il vantaggio di essere un programma che, con pochissimi passaggi, permette di tagliare parti video (ma volendo anche può anche unire più filmati in uno solo) senza effettuare alcuna ricodifica audio/video (grazie all’opzione “Direct Stream Copy“).

Ebbene, finalmente sono riuscito a trovare un degno sostituto a Virtualdub: si chiama Avidemux ed è un programma di video editing open source rilasciato sotto licenza GPL e multipiattaforma (funziona, infatti, per Windows, Mac OS X, BSD e Linux) che mette a disposizione un tool di editing video leggero, funzionale e veloce. Dalle funzionalità simili a Virtualdub, per molti aspetti è anche più intuitivo, più semplice e completo della sua controparte, mostrando anche una interfaccia grafica meno spartana e un po’ più gradevole (grazie alle librerie GTK).

Tra le sue funzionalità, spiccano quelle di tagliare, unire, modificare, applicare filtri, e convertire in diversi formati, i video caricati. Nella sezione Wiki Docs del sito di Avidemux trovate tutte le guide (in inglese) per le funzionalità più importanti. Nonostante, apparentemente, leggendo, per esempio, la dettagliata ed esauriente guida del Cutting Video possa sembrare una operazione lunga, dovete sapere che sono necessari solo pochi passi.

Avidemux

E’ sufficiente, infatti, lasciare impostate su “Copy” le opzioni di ricodifica video e audio (se si imposta un altro formato, come per esempio, MPEG2 o 3GP, i tempi di salvataggio saliranno proporzionalmente alla durata del filmato da ricodificare), che corrispondono alle opzioni “Direct Stream Copy” di VirtualDub (impostabili dal menu Video e Audio del programma) e, dopo aver selezionato, con i tasti A e B la porzione di video da tagliare, andare sul menu Edit->Delete per rimuovere la selezione (se invece si clicca sul pulsante “Salva”, senza cancellare nulla, si salverà direttamente la parte di video selezionata) e quindi cliccare sul tasto “Salva” per fare, in pochi secondi, una copia del filmato modificato.

Tag:avidemux, licenza_gpl, Linux, Mac os x, opensource, Video, virtualdub, Windows
CONTINUE READING >
2 comments
Feb 19 2009

La psicologia della ricorrenza numerica: 1234567890 Day, il Bug del 2038 e altre celebrazioni numeriche

Posted by Antonio Troise
Tweet

Alle ore 3:31:30 PM dello scorso venerdi 13 febbraio 2009 (in Italia, a causa del fuso orario, erano le 00:31:30 del 14 Febbraio 2009), l’orologio interno dei sistemi Unix (e quindi anche Mac OS X) ha raggiunto il valore, non indifferente, di 1234567890 secondi. Infatti, come è noto, nei sistemi operativi Unix e Unix-like il tempo viene rappresentato come offset in secondi rispetto alla mezzanotte (UTC) del 1º gennaio 1970 (definita epoca o Epoch Time). Quindi, contando il tempo a partire dall’Epoch Time ad oggi sono appunto passati 1.234.567.890 secondi. Questo tipo di rappresentazione ha il vantaggio che, oltre che ad essere compatta, è indipendente dai fusi orari, ed è quindi direttamente confrontabile anche tra calcolatori situati a grandi distanze geografiche tra loro, ed evita di dover effettuare aggiustamenti nel caso ad esempio di dati trasmessi da un fuso orario all’altro. L’unico svantaggio è che, per averne una rappresentazione sotto forma di data e ora locali, è necessario effettuare una conversione (sempre comunque lasciata al sistema operativo).

1234567890 Day

Sebbene, questo evento non abbia nulla di realmente universale (è stato un convenzione comune decidere di iniziare a far scandire arbitrariamente l’orologio interno del cuore dei sistemi operativi Unix dalla data del 1970, ma c’è chi nota come lo scandire dell’Epoch Time sia approssimativamente vicina allo sbarco sulla Luna), l’evento ha suscitato un valore mediatico minimo, ma, al contempo, ha coinvolto i geek più puri di tutto il mondo (dai syadmin ai consulenti IT fino ad arrivare al semplice appassionato di Linux), in una maniera che solo internet può regalare con la versione geek del capodanno dell’anno 2000.

Infatti, questa curiosa ricorrenza ha visto persino dei festeggiamenti “ufficiali” da parte di gruppi di utenza e di programmazione in tutto il mondo. Il sito che ha raccolto tutti questi eventi è stato 1234567890day.com con tanto di countdown in homepage, anche se, per la verità, per molti questa ricorrenza altro non era che una scusa per organizzare una vera e propria rimpatriata di amici amanti del pinguino.

La celebrazione di questo particolare evento è stata pianificata in diverse città di tutto il mondo (San Francisco, Vancouver, Seattle, Los Angeles, Nairobi, Vienna, Copenaghen, Budapest, Croazia, etc … ovviamente è mancata una località italiana).

Geek Party

Per chi, comunque, non era riuscito a festeggiare questa singolarità numerica in compagnia, non è mancato il supporto di Digg (con oltre 5005 diggs) e di Twitter che ha unito centinaia di followers (423 per l’appunto) uniti nei festeggiamenti davanti al proprio monitor, magari supportati dalla Desk clock from ThinkGeek, una sveglia capace di visualizzare la data e l’ora in diversi formati, tra cui, oltre quello standard, anche Esadecimale, Ottale, Binario, a Numeri Romani e, ovviamente, nel formato Unix Epoch Time.

Think Geek Clock

In alternativa, il sito Cool Epoch Countdown ha fornito, e fornisce tuttora, in tempo reale lo scandire del tempo in Unix Time.

Se questi festeggiamenti vi sono sembrati assurdi, allora dovete sapere che le frasi più ricorrenti che giravano sulla blogosfera fino a qualche giorno primo, erano tutte di genere apocalittico, come questa:

It’s The End Of The World As We Know It!
There’s a fairly good chance the world is going to end tomorrow…at least the world of Unix

Ovviamente, quando si tratta di cose strane, anche Google ci mette lo zampino e per festeggiare il 1234567890 Day, Google ha proposto uno dei suoi Doodle riportante la scritta

$ date +%s …
1234567890

Google 1234567890 Day

Per i non addetti ai lavori, “date +%s” è il comando da lanciare sul vostro terminale linux/unix like/mac os x per vedere visualizzata la data nel formato unix time. Per sapere a che ora e che giorno corrisponde una particolare data in unix time, è sufficiente lanciare questo script in Perl (ma potete anche visitare uno dei tanti siti di conversione data/unix time):

perl -e ‘print scalar localtime(1234567890),”\n”;’
Sat Feb 14 00:31:30 2009

Altre celebrazioni numeriche create ad hoc

E se nel lontano 09 Settembre 2001 (2001-09-09T01:46:40Z) si sono festeggiati a Copenhagen in Danimarca (presso il DKUUG), il primo 1.000.000.000 di secondi, allora vi farà piacere che che nel lontano 18 Maggio 2033 alle ore 03:33:20, ricorrerà la celebrazione del Secondo Billenium: 2000000000!

perl -e ‘print scalar localtime(2000000000),”\n”;’
Wed May 18 05:33:20 2033

La cosa buffa è che, giocando con questo piccolo script in Perl, ho scoperto che il 9 Agosto del 2005, è ricorso il Fibonacci Day dei sistemi Unix (ho sostituito la data in unix time con la Successione di Fibonacci, escluso lo zero iniziale, 1123581321):

perl -e ‘print scalar localtime(1123581321),”\n”;’
Tue Aug 9 11:55:21 2005

ma nessuno ne ha mai parlato (o sbaglio?). Forse era una ricorrenza da geek matematici, una specie ancora più rara dei normali geek!

Continuando, possiamo notare che, il 14 Novembre del 2014, si potrebbe festeggiare il Pi Greco Decimal Day per i sistemi Unix (prendendo in esame la prima parte decimale del pi greco):

perl -e ‘print scalar localtime(1415926535),”\n”;’
Fri Nov 14 01:55:35 2014

Come vedete, i motivi per festeggiare ce ne saranno molti ed è tutto frutto della psicologia della ricorrenza numerica. Un comportamento tutto tipico dell’essere umano, che si è dimostrato in tutta la sua potenza mediatica nell’anno 2000 (amplificato poi anche dal famoso Millennium Bug). Per l’uomo tutte le ricorrenze numeriche sono sempre affascinanti, come quando si prendono le misure della Piramide di Cheope della piana di Giza in Egitto e si scopre che dividendo il perimetro della Piramide per il doppio dell’altezza si ottiene un valore molto simile al pi-greco. O quando Joseph Seiss, un ecclesiastico americano, scrisse che le pietre della Piramide contenevano un sistema di numeri che indicavano misure, pesi, angoli, temperature, gradi, problemi geometrici e rilevamenti cosmici. Seiss fu sorpreso dalla ricorrente presenza nei suoi calcoli del numero 5!

E che dire della sequenza numerica 4 – 8 – 15 – 16 – 23 – 42, nota come Equazione di Valenzetti, che la DHARMA, nel mondo immaginario del serial televisivo Lost, aveva il compito di modificare per evitare la fine dell’umanità. In poco tempo finzione e realtà si sono fusi insieme, girando per internet e assumendo connotazioni di quasi-realtà.

Ovviamente alcune ricorrenze numeriche sono talmente singolari che appaiono dare un significato agli eventi più strani, dando una sorta di potere ai numeri che si trasformano in elementi cabalo-matematici.

Il Bug del 2038

Ma vi è un’altra data che i programmatori di tutto il mondo stanno aspettando, questa volta, con grande paura (come quella del Millennium Bug): è il 19 gennaio 2038 alle ore 03:14:07 AM. Dopo questo momento, il contatore supererebbe il valore massimo, e verrebbe considerato come un numero negativo. I computer leggeranno la data non come 2038 ma come 1901 (precisamente, le 20:45:52 di venerdì 13 dicembre 1901) causando errori di calcolo!

Il problema è noto da tempo a tutti e la causa del bug informatico dell’anno 2038 (“Year 2038” è chiamato anche “Y2038”, “Y2K38”, o “Y2.038K” nel linguaggio specialistico) è da imputarsi all’architettura a 32 bit di molte macchine unix attualmente esistenti che usano, come spiegato prima, la rappresentazione POSIX per calcolare il tempo (partendo dal numero di secondi a partire dal 1 gennaio 1970). Questo tipo di sistema è lo standard per i sistemi Unix, e colpisce anche software per altri sistemi operativi che siano stati sviluppati in C. Sulla maggior parte dei sistemi a 32 bit il valore del dato time_t usato per questo calcolo è un numero intero a 32 bit di tipo signed.

Infatti, se un programmatore crea una variabile di tipologia intero segnato per memorizzare un valore numerico, questo può essere come minimo -2147483648 e come massimo 2147483647. Un numero molto grande, ma che diventa un valore piccolissimo se lo trasformiamo in secondi. In 32 bit, infatti, ci stanno appena 136 anni! Usando questo sistema, la data più avanzata rappresentabile a partire dalle 00:00:00 del 1/1/1970 sono le 03:14:07 di giovedì 19/01/2038!

La cosa interessante è che il mondo POSIX comprende, oltre ai sistemi operativi derivati dal sistema UNIX (GNU/Linux, BSD, Solaris, Mac OS X), anche tutti i protocolli di rete UNIX style (http, ftp, etc). In parole povere, se le previsioni nefaste degli addetti ai lavori si avverassero, sarebbe anche la fine di internet (che funziona grazie a protocolli Unix) e dei principali server del globo (che utilizzano sistemi operativi derivati da Unix). Dopo quel secondo saremo proiettati nel 13 dicembre 1901 alle 20:45. Sicuramente questo sarà un problema da gestire da qui ai prossimi anni e richiederà un cambio epocale nella gestione del tempo e di tutto il resto nei sistemi Unix. In teoria la soluzione è semplice e già disponibile, e consiste nell’usare solo sistemi a 64 bit, come il 99% dei processori in commercio attualmente. Infatti, nei sistemi a 32 bit il limite massimo di un intero è (2^32) – 1, mentre in quelli a 64 bit è (2^64) – 1.

Come denunciato anche dal sito ufficiale, 2038bug.com, però, l’errore comune è quello di credere che il problema verrà risolto con la semplice adozione dei 64 bit, non considerando che i molti strumenti che utilizzano sistemi embedded (forni a microonde, ascensori, orologi da polso, ecc.), sono ancora a 8/16 bit e che molti database utilizzano, per i propri campi data, dei Timestamp a 32 bit.

Un aspetto curioso di questa faccenda è che su questo bug del 2038 è stata costruita la storia di John Titor, un fantomatico uomo del futuro (2036) tornato nel 1975 per recuperare un esemplare di IBM 5100 come sorta di moderna Stele di Rosetta, poiché sarebbe l’unica macchina capace di risolvere il bug che sconvolgerebbe il mondo.

Interessante come, anche in questo caso, Google ci abbia messo lo zampino, perché i più attenti avranno scoperto che la data di scadenza dei cookie di Google è il 17 gennaio 2038, due giorni prima della fine dell’Unix Epoch (solo dopo questa data il browser può procedere all’eliminazione dei dati contenuti nel cookie stesso).

Ovviamente c’è anche chi, per celebrare l’evento, ha iniziato vendere magliette con la fine dell’Unix Epoch, ma anche tazze e mousepad per ricordarvi che, la fine dei sistemi operativi come voi li conoscete, è vicina!

T-Shirt Epoch Time

Se invece, volete verificare se il vostro sistema è immune o meno da questo bug, ecco il codice C da compilare:

Questo semplice esempio in C mostra come l’aggiunta di un solo secondo al Timestamp ”Tue Jan 19 03:14:07 2038” lo tramuti in un sinistro venerdì 13 dicembre 1901. Quindi, se il vostro sistema è a 32 bit, dovrebbe produrre questo risultato:

1000000000, Sun Sep 9 01:46:40 2001
2147483647, Tue Jan 19 03:14:07 2038
-2147483648, Fri Dec 13 20:45:52 1901

Ecco una simulazione di quello che accadrebbe nel 2038 ai sistemi unix a 32 bit:

Y2038 Bug Simulation

UPDATE: Ho appena scoperto che molti geek matematici festeggiano la giornata della radice quadrata che viene celebrata nella data in cui, sia il giorno che il mese, risultano essere la radice delle ultime due cifre dell’anno. L’ultima festività è occorsa il 03 Marzo 2009 (3/3/09 Square Root Day), ma beccare la radice giusta non è facile come sembra (sembra che capiti solo 9 volte in un secolo). Se vogliamo continuare a dare i numeri, l’ultimo giorno papabile prima di questo è stato infatti il due febbraio del 2004, che casualmente coincideva con il ‘giorno della marmotta’ americano. Per festeggiare di nuovo dovremo aspettare ben sette anni, esattamente il quattro aprile del 2016. Il primo a celebrare questo evento è stato, nella lontana radice dell’81, Ron Gordon.

Tag:2038, 42, blogosfera, bug, digg, fibonacci, geek, Google, Linux, lost, mac, perl, pi-greco, titor, twitter, unix
CONTINUE READING >
2 comments
Dic 5 2008

Come scaricare da Rapidshare da riga di comando con Linux o Mac OS X

Posted by Antonio Troise
Tweet

Wget Rapidshare Alle volte può sembrare che, quando vengono proposte soluzioni a riga di comando, ci si voglia complicare le cose nonostante esistano decine di altri modi, molto più user friendly, semplici, efficaci e veloci. Vi starete chiedendo per quale motivo una persona vorrebbe scaricare un file da riga di comando piuttosto che usare una delle tanti utility grafiche e gratuite disponibili o, più semplicemente, usare il download manager del proprio browser, che qualunque esso sia, svolge già efficacemente il proprio lavoro?
Ebbene, la ricerca di queste soluzioni alternative avvengono semplicemente per necessità e non solo per il gusto di complicarsi la vita lanciandosi ogni volta in nuove sfide, o almeno è questo quello che accade a me!

Vi siete mai chiesti o vi siete mai trovati nella situazione di dover scaricare qualche file in parallelo? Ebbene, sicuramente avrete constatato un inevitabile rallentamento del sistema direttamente proporzionale al numero di download simultanei che vengono lanciati, sia perché, almeno in minima parte il processore deve gestire il trasferimento, sia perché la scrittura di più file contemporaneamente sull’hard disk (anche se in questo caso il concetto di simultaneità non è verosimile) impegnano il drive tanto da lasciare indietro le operazioni del sistema operativo.

Ebbene, la situazione potrebbe essere spiacevole se su quello stesso PC ci dovete lavorare. Ed è allora che vi viene in mente che forse potreste riutilizzare quel vecchio PC che non usate più, formattarlo, installarci sopra una qualsiasi distribuzione linux, e usarlo esclusivamente come Download Manager. Quindi, ogni qualvolta, vorrete scaricare un o più file da Rapidshare, basterà che vi colleghiate in telnet sul PC Muletto, aprite un file di testo, incollate le url dei file Rapidshare da scaricare, salvate il file e lanciate un piccolo script che eseguirà per voi tutto il lavoro, senza appesantire il sistema su cui state lavorando. Ovviamente, il sistema che adotterò, per essere il più leggero e flessibile possibile, non disporrà di una interfaccia grafica, bensì sarà esclusivamente a riga di comando, insomma da veri geek. Ma vi assicuro che questa è la soluzione inaspettatamente più semplice per risolvere il vostro problema di performance.

In questa sede, comunque, affronterò esclusivamente la soluzione che risolverà il problema di come scaricare un file da Rapidshare se si possiede un abbonamento Premium e quindi si potrà disporre di un utente e password che vi garantirà un servizio che può accettare più richieste di download contemporanee (anche se come vedremo più tardi ho deciso di non usarlo per non appesantire il vecchio PC Muletto) e che non richiede alcun tempo di attesa tra un download e il successivo.

Installare WGET

Per la mia soluzione userò wget, un potente comando per scaricare una pagina web o inviare richieste GET o POST, con o senza autenticazione. Se disponete di un sistema Unix/Linux, è molto probabile che lo troverete compilato e già pronto per essere eseguito. Se invece vi trovate su un sistema Mac OS X (Tiger o Leopard che sia), nonostante si abbia a disposizione nel sistema operativo una shell unix completa di tutti i maggiori comandi, l’unico a mancare sarà proprio wget. Ci sono alternative altrettanto valide, come curl o ftp (e, per chi se lo ricorda, anche lynx che col comando “lynx URL >dump.txt” è una variante alternativa), ma per i nostri scopi, wget è abbastanza flessibile e semplice tanto da essere necessario per creare il nostro script. Quindi, per chi non volesse passare per la fase di compilazione, qui potete scaricare la versione compilata per i sistemi Mac OS X 10.5.3 e superiori (quindi anche Tiger e Leopard): wget.zip. Una volta scaricato sarà già funzionante sul vostro sistema, ma per una installazione completa, lanciate questi comandi:

e se fosse necessario, eseguirte un

anche se nel file .profile della propria home directory dovrebbe già contenere il percorso settato, come qui mostrato:

Ora che abbiamo installato wget sul nostro sistema Mac, questo si comporterà a tutti gli effetti come un sistema Linux, quindi d’ora in poi non farò alcuna distinzione tra i due sistemi operativi.

Creare lo script – STEP 1

Per la creazione dello script ho preso spunto da my-guides.net e in questa sede mi dedicherò a spiegarne il funzionamento del codice adattato alle mie esigenze.

Rapidshare, per l’autenticazione, usa i cookie HTTP, dei file di testo inviati da un server ad un Web client (di solito un browser) e poi rimandati indietro dal client al server, senza subire modifiche, ogni volta che il client accede allo stesso server, e sono usati per eseguire autenticazioni e tracking di sessioni e per memorizzare informazioni specifiche riguardanti gli utenti che accedono al server.
Quindi, la nostra prima operazione, sarà quella di autenticarsi sul server Rapidshare e di salvare i cookie che mi permetteranno, in seguito, di scaricare qualsiasi file dal sito di hosting file.
Attensione, lo STEP 1, andrà eseguito solo una volta, perché i cookie, a meno che non si proceda alla loro eliminazione manuale, verranno salvati in una cartella della vostra home directory.

Il comando da lanciare è il seguente:

dove i parametri indicano:

  • –save-cookies: definisce dove salvare i cookies. Essendo dati più sensibili ho preferito creare un file nascosto (anche se ciò non garantisce la sicurezza del file)
  • –post-data: assegna il metodo POST (piuttosto che GET) per inviare al form di login i dati di username e password.
    –no-check-certificate: non richiede la validazione del certificato che restituisce il server (Se state usando una versione di wget precedente alla 1.10.2 l’opzione –no-check-certificate non è necessaria)
    -O: esegue il download della pagina html solo per ottenere i cookie e redirige l’output su /dev/null per non far comparire a video le righe del codice html.

Ovviamente, ricordatevi di sostuire USERNAME e PASSWORD con quelli del vostro account Rapidshare.

Creare lo script – STEP 2

Ora, ogni qualvolta dobbiamo scaricare un file da Rapidshare, dobbiamo digitare quanto segue:

dove il parametro -c si occupa di recuperare un eventuale download precedentemente interrotto che, quindi, ripartirò dal punto di arresto, mentre il parametro –load-cookies esegue un caricamento preventivo dei cookie precedentemente salvati per ottenere l’autorizzazione a scaricare, per poi, infine, dare in pasto la URL desiderata del file da scaricare. Però, nel momento in cui dovete scaricare più di un file, è evidente che dover scrivere ogni volta questa riga può essere noioso. Ecco perché ci troveremo a dover scrivere un piccolo script bash che automatizzerà il processo, dandogli in input le righe di un file urls.txt (che conterrà un file per ogni riga):

Salvate il codice sopra come file downloader.sh e rendetelo eseguibile con il seguente comando:

Ora copiate tutti i link dei file Rapidshare (uno per riga) che volete scaricare e incollateli nel file urls.txt. Quindi, per scaricare tutti i file, basterà digitare questo semplice comando:

Et Voilà! Il gioco è fatto e potete disporre di un sistema leggero, indipendente e autonomo per scaricare decine di file senza appesantire il vostro PC.

Scompattare un file RAR da riga di comando

Di solito i file su Rapidshare vengono compressi nel formato RAR e qualche volta sono anche protetti da password. Se volete completare l’opera, potete scaricare l’utility per riga di comando per Linux (o Mac) unRar 2.71 (ma esiste anche unrar della rarlab) e una volta decompresso

è possibile compilarlo entrando nella cartella unrar-2.71 appena creata e lanciando i comandi

Ora vi ritroverete il file eseguibile unrar nella directory /usr/local/bin/ e quindi accessibile da qualsiasi directory.

Tag:bash, curl, download, export, Linux, Mac os x, password, rapidshare, shell, unix, wget
CONTINUE READING >
0 comments
Ago 19 2008

Tips: come unire più file splittati in ambiente Windows, Linux e Mac OS X tramite una join da riga di comando

Posted by Antonio Troise
Tweet

Il bello di avere un sistema Mac è che si ha sempre a disposizione una potente shell unix; in tal modo, tutti i tips validi per il mondo Linux, sono funzionanti anche per Mac OS X. Tra questi oggi vi voglio segnalare un trucchetto che ha dalla sua una estrema semplicità e al contempo risulta essere davvero utile.
Spesso capita di scaricare dei file splittati, ovvero dei file di grandi dimensioni che, per velocizzarne il download o a causa dei limiti di upload dei server di hosting, sono stati suddivisi in più parti di dimensioni massime prestabilite, creando file con estensioni tipo .001, .002, .003, etc.

Join per un utente Windows

A questo punto, un qualsiasi utente Windows, dopo aver scaricato tutti questi file, per riunirli ha due alternative: o si scarica HJSplit, un applicativo che permette, tramite una intuitiva interfaccia di unire tutti i file in uno unico, oppure apre il Command Prompt e digita la seguente riga di comando:

copy /b file.001+file.002+file.003 joinfile.ext

Grazie al argomento “/b” del comando “copy” è possibile copiare file binary, mentre concatenando con il comando + i file è possibile fare il join dei file indicati. Se fossimo stati sicuri che si trattava di una semplice file di testo in ASCII, allora avremmo potuto omettere l’argomento “/b”.
E’ evidente, però, che eseguire una join di questo tipo prevede di dover scrivere a mano tutti i nomi dei file splittati (e a volte possono anche essere decine) ed è per questo che un utente Windows preferisce usare HJSplit per eseguire una Join più rapidamente.

Join per un utente Linux e Mac OS X

Un utente Linux e Mac, invece, ha una scelta in più. Se è vero che esiste anche la controparte per Linux di HJSplit e un analogo software per Mac OS X (Split&Concat) è possibile eseguire il join dei file da riga di comando in maniera molto veloce e senza essere costretti a specificare, ad uno ad uno, i file splittati.
E’ sufficiente, infatti, usare il comando cat in questo modo:

cat file.00* > joinfile.ext

In realtà, come ho scoperto, il comando split dei sistemi Unix-like, quando separa un file in più parti, genera i nomi dei file (con estensioni tipo con .001, .002, .003) in modo che possano essere automaticamente determinati e ordinati alfabeticamente, in modo da poter ricostruire i dati originari tramite il comando “cat” che, in questo modo, si trova facilmente tutti i file in sequenza e senza necessità di specificarglieli.
Analogamente al comando “copy” del dos, si potrebbero anche scrivere tutti i file uno ad uno, ma sfruttando appunto la sinergia dei comandi split/cat dell’ambiente Unix, si può benissimo usare il wildcard * in modo da non dover ripetere prima del segno “>” tutti i nomi dei files splittati.

Tag:join, Linux, Mac os x, split, Tips, Windows
CONTINUE READING >
0 comments
Lug 30 2008

Controllate che i server DNS del vostro Provider non soffrano della grave vulnerabilità che permette ad un malintenzionato di controllare il traffico internet e fare del Pishing!

Posted by Antonio Troise
Tweet

Avete presente quella notizia di qualche mese fa di una vulnerabilità insita nelle specifiche del DNS (Domain Name System), scoperta da Dan Kaminsky, che permetteva di alterare il funzionamento del DNS stesso in modo da fornire agli utenti delle “traduzioni” sbagliate e quindi far credere agli utenti di stare visitando un sito fidato? Questa falla del DNS è in grado di dare la possibilità ad un aggressore di sostituirsi perfettamente e in tutta semplicità ad un sito fidato, mettendo di fatto in ginocchio la sicurezza della rete mondiale.

A differenza di altre falle informatiche, però, questa vulnerabilità interessa praticamente tutti i programmi di gestione del DNS proprio perché seguono le specifiche tecniche: tutti i più diffusi sistemi operativi, da Windows a Linux, da BSD a Mac OS X e quasi tutti i provider sono quindi potenzialmente vulnerabili!

L’incontro segreto

Fortunatamente, dati gli effetti devastanti di questa vulnerabilità, in quanto minava alla base la fiducia nei sistemi di internet, dopo una riunione segreta (per non dare la possibilità di rendere di dominio pubblico le specifiche tecniche ancora prima di poter diffondere una patch), il 31 Marzo 2008 presso il campus di Microsoft, a Redmond, si sono riuniti i più grandi nomi del mercato informatico (tra cui Microsoft, Sun e Cisco) per trovare una soluzione al problema.

La diffusione della patch

Così, l’8 Luglio 2008, tutti i maggiori sistemi operativi (sorprendentemente Apple quel giorno arrivò in ritardo forse distratta dall’imminente uscita del iPhone 3G e del servizio .Me) hanno distribuito, più o meno velatamente, tramite i meccanismi di aggiornamento automatico, questa patch. Infatti, gli accordi erano che tutti i sistemi operativi, e quindi tutti gli utenti e tutti i provider di accesso a Internet, dovevano applicare questa patch al proprio software di gestione del DNS o, nei casi limite, passare ad una sua versione aggiornata.

Non tutti i provider hanno chiuso la falla

Il problema, però, è che non tutte le aziende e i provider che gestiscono un domain name server, si sono mossi in tempo e molti provider, fra cui anche alcuni italiani, non hanno ancora provveduto a bloccare questa grave vulnerabilità.
Sul sito del CERT trovate la lista di tutti i sistemi e dei sistemi operativi che sono vulnerabili o meno a questa falla: il problema è che qui, come immaginabile, non sono elencati tutti i provider che hanno risolto il problema per cui, se mentre navighiamo su internet, usiamo fiduciosi dei DNS assegnati dal nostro provider, potrebbe accadere che questi possano essere attaccati e, quindi, potrebbe aumentare la possibilità di subire attacchi di pishing (in effetti stanno ad iniziare a spuntare alcuni esperimenti di attacco basate su questa vulnerabilità).

In ogni caso i dettagli circa la falla non verranno rilasciati prima di un mese circa, tempo in cui si spera che ormai le patch siano state installate su tutti i computer del mondo. Inoltre, a detta di Kaminsky, le patch non dovrebbero permettere il reverse-engineering (o per lo meno, non in tempi brevi), dato che un’analisi di questo tipo potrebbe consentire di concretizzare un exploit funzionante.

Come controllare che i propri server DNS non soffrano del bug

Se volete essere, quindi, certi di poter navigare sicuri, allora vi consiglio di usare un test, come suggerito dal sempre informato Paolo Attivissimo, presente sulla homepage del sito Doxpara Research. E’ sufficiente cliccare sul tasto “Check My DNS” presente nella sidebar a destra del sito, per sapere se il vostro provider ha già provveduto ad installare la patch. Sfortunatamente, come ho potuto appurare io stessi, alcuni server DNS di Telecom Italia, soffrono ancora di questa vulnerabilità. Vi consiglio, quindi, di usare direttamente i server OpenDNS: essendo un sistema centralizzato è stato più facile aggiornarli velocemente.

Ovviamente, quando scrissi che, per un utente italiano, a causa di latenze georgrafiche molto alte dei server OpenDNS rispetto a quelli Telecom, consigliavo di usare i server DNS italiani di Alice, oggi la situazione si è completamente ribaltata perché ad essere a rischio è la nostra navigazione su internet, per cui invito tutti, a meno che tutti i provider non risolvano presto la situazione, ad usare i server OpenDNS.

Tag:Alice, cisco, Dan Kaminsky, dns, exploit, Internet, Linux, microsoft, opendns, patch, Provider, sicurezza, Windows
CONTINUE READING >
2 comments
SeguiPrezzi - Risparmia con Amazon.it

Categorie

Commenti Recenti

  • Antonio Troise on UltraEdit: per i programmatori esigenti il miglior editor di testo per Windows, Mac OS e Linux
  • Fioredicollina on UltraEdit: per i programmatori esigenti il miglior editor di testo per Windows, Mac OS e Linux
  • Antonio Troise on UltraEdit: per i programmatori esigenti il miglior editor di testo per Windows, Mac OS e Linux
  • Emanuele on UltraEdit: per i programmatori esigenti il miglior editor di testo per Windows, Mac OS e Linux
  • Luca on iDatabase: la valida alternativa di Bento per macOS e iOS per i database personali
1 2 … 5 NEXT

Meta

  • Accedi
  • Entries RSS
  • Comments RSS
  • WordPress.org

Friends Link

  • GamerTagMatch
  • SeguiPrezzi.it – Risparmia con Amazon.it
  • Trendy Nail

Seguimi su:

  • facebook
  • twitter
  • rss
Creative Commons License
Levysoft by Antonio Troise is licensed under a Creative Commons Attribuzione-Non commerciale 2.5 Italia License.
© Copyright 2004 - 2014 - Levysoft by Antonio Troise