Read the rest of this entry »

Popularity: 1%

  • Share/Bookmark
Tags: , , , , ,

Comments No Comments »

Ispirato dalla filosofia “security by obscurity” [sicurezza tramite segretezza], ho sempre avuto l’abitudine di limitare le informazioni rivelate dai server Apache che amministro. Solitamente (= di default), Apache rivela le seguenti informazioni:

  • Versione, major build [1, 2]
  • Packaging [Ubuntu, Fedora, etc.]
  • Eventuali moduli installati [mod_security, mod_python, etc.]
  • Versione estesa [2.0.47]

Un po’ troppe per i miei gusti… Quindi limito la quantità di informazioni che Apache rivela al mondo in questo modo [istruzioni personalizzate per Ubuntu]:

  • Diventando root, modificate il file /etc/apache2/conf.d/security
  • Andate alla riga ServerTokens: # ServerTokens
    # This directive configures what you return as the Server HTTP response
    # Header. The default is 'Full' which sends information about the OS-Type
    # and compiled in modules.
    # Set to one of:  Full | OS | Minimal | Minor | Major | Prod
    # where Full conveys the most information, and Prod the least.
    #
    ServerTokens Minimal

    Come vi viene spiegato, potete scegliere il livello di granularità delle informazioni rivelate, andando da Full (che rivela tutte le informazioni possibili) fino a Prod, che non rivela quasi nulla (solo che usate Apache). Sui miei server, di solito, scelgo una via di mezzo e di conseguenza imposto ServerTokens a Minimal.

  • Salvate e riavviate Apache: sudo /etc/init.d/apache2 reload

Popularity: 1%

  • Share/Bookmark
Tags: , , ,

Comments No Comments »

image thumb Cheese: unapplicazione per fare fotografia con la webcam per Ubuntu [un clone di Photo Booth]Se state cercando un’alternativa a Photo Booth, il popolare software di Apple per scattare fotografie tramite la webcam del proprio computer, allora dovreste considerare Cheese.

Si tratta di un programma molto semplice: una volta aperto, mostra l’immagine della webcam e vi permette di scattare una foto. Inoltre, è possibile applicare alcuni effetti “simpatici” [le foto sono degli sviluppatori di Gnome/Cheese].

Cheese è incluso nei repository di Ubuntu, quindi per installarlo è sufficiente digitare: sudo apt-get install cheese

Senza dubbio da provare!

Popularity: 1%

  • Share/Bookmark
Tags: , , ,

Comments No Comments »

Navigando qua e là sul web in cerca di materiale audio sul mio cantante preferito [per chi non lo sapesse ancora è Ligabue] mi sono imbattuto in un sito interessante: mp3.it
A differenza di tutti gli altri siti di musica, autorevoli e non, questo portale mi ha dato la possibilità di ascoltare ogni singolo brano del mio beniamino senza pagare e di consultare il catalogo multimediale alla ricerca di qualche pezzo ancora sconosciuto (cosa improbabile!).

Subito ho ascoltato “Urlando contro il cielo“, un classico intramontabile, e devo dire che anche la qualità del suono era superiore alla media. Insomma qualche ora piacevole ascoltando buona musica e condividendo le mie passioni musicali su Facebook, grazie alla possibilità di condivisione sui maggiori social.
Niente da aggiungere, provare per credere!

Nota: il servizio è legale e garantisce il rispetto dei diritti d’autore. Il servizio è gestito da Register.it

Popularity: 1%

  • Share/Bookmark
Tags:

Comments 1 Comment »

Recentemente mi è capitato di dover installare apache [in particolare, apache2] su una macchina Ubuntu. In particolare, mi è stato chiesto di installare la versione con ssl, ovvero che implementa il protocollo cifrato https.

Apache2+ssl richiede l’utilizzo di un certificato firmato da un’autorità [es. Thawte, Verisign, etc.]. Se non vogliamo pagare una CA per ottenere un certificato firmato, possiamo generare un certificato firmato da noi stessi. Tuttavia, seguendo molte delle guide che si trovano in rete, apache viene installato con l’opzione ssl ma ogni volta che viene avviato richiede la password per l’utilizzo del certificato.

Per questo riporterò qui una guida passo-passo che fa in modo che Apache2 non richieda la password per l’utilizzo del certificato: questa procedura è consigliata solamente se l’utilizzo è volto al testing o allo sviluppo. Qualsiasi altro uso è sconsigliato [richiedere una password per l’utilizzo del certificato è più che normale].

  • Abilitate il modulo ssl per apache2: sudo a2enmod ssl
  • Generiamo il certificato: cd /tmp; sudo openssl req -new > new.cert.csr
  • Vi verranno chieste delle informazioni a scopo puramente informativo e che compariranno nel certificato. Riempite le varie informazioni come credete
  • Ed ora una serie di comandi per generare tutti i file richiesti dai certificati:

    sudo openssl rsa -in privkey.pem -out new.cert.key
    sudo openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 1825
    sudo cp new.cert.cert /etc/ssl/certs/server.crt
    sudo cp new.cert.key /etc/ssl/private/server.key

  • Ora abilitiamo l’utilizzo dei certificati appena generati:sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
  • Modificate il file /etc/apache2/sites-available/default con il vostro editor preferito, ad esempio vi: sudo vi /etc/apache2/sites-available/default e cambiate le seguenti linee:
    Cambiare da… A…
    NameVirtualHost: *
    NameVirtualHost: *:80
    <VirtualHost *>
    <VirtualHost *:80>
  • Modificate ora il file /etc/apache2/sites-available/ssl sempre con il vostro editor preferito e cambiate le seguenti linee:
    Cambiare da… A…
    NameVirtualHost: *
    NameVirtualHost: *:443
    <VirtualHost *>
    <VirtualHost *>

    Dopo la linea che contiene DocumentRoot, aggiungete le seguenti righe:

    SSLEngine on
    SSLOptions +StrictRequire
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key

  • Ora date i seguenti comandi per abilitare l’utilizzo dei certificati in apache2:

    sudo cd /etc/apache2/sites-enabled
    sudo a2ensite ssl

  • Infine riavviate Apache2 e finalmente non chiederà più la password del certificato

    sudo /etc/init.d/apache2 restart

Nota: se avete problemi controllate che il vostro file /etc/hosts sia fatto in questo modo:

127.0.0.1 localhost localhost.localdomain {il vostro hostname}
127.0.1.1 {il vostro hostname}
{IP statico se ne avete uno} {DNS fully qualified se ne avete uno}

Popularity: 1%

  • Share/Bookmark
Tags: , , , , , ,

Comments No Comments »

In Python, i dizionari (dict) sono una struttura dati associativa che associa una chiave ad un valore (k, v):
[code lang="python"]
d = {}
d['bart'] = 'marge'
d['maggie'] = 'homer'
d['milhouse'] = 'nelson'
d['lisa'] = 'skinner'
>>> d
{'maggie': 'homer', 'lisa': 'skinner', 'bart': 'marge', 'milhouse': 'nelson'}
[/code]
Esistono due modi di ordinare un dizionario:

  • La modalità “classica” e più conosciuta: ovvero ordinare il dizionario sulla base delle chiavi che lo compongono:
  • [code lang="python"]
    for k in sorted(d.keys()):
         print k + ' -> ' + d[k]

    bart -> marge
    lisa -> skinner
    maggie -> homer
    milhouse -> nelson
    [/code]

  • La modalità meno conosciuta e che ho dovuto ricercare [e che quindi condivido con voi] ovvero quella di ordinare il dizionario sulla base dei valori che sono associati alle chiavi:
  • [code lang="python"]
    sorted(d.items(), key=lambda(k,v):(v,k))
    >>> [('maggie', 'homer'), ('bart', 'marge'), ('milhouse', 'nelson'), ('lisa', 'skinner')]
    [/code]
    Come vedete questa volta abbiamo ottenuto una lista degli elementi ordinati secondo il valore associato ad ogni chiave. Può tornare utile!

    Esistono molteplici versioni di quest’ultima istruzione, ma questa ritengo che sia la più compatta e veloce.

Popularity: 1%

  • Share/Bookmark
Tags: , ,

Comments No Comments »

Alcuni client ssh permettono di definire “sessioni salvate” di connessioni in modo che username e password vengano salvati e non vengano richiesti ad ogni connessione verso un host. Trovo che permettere all’utente di poter salvare la password sia profondamente sbagliato dal punto di vista della security, soprattutto se l’utente ha privilegi non indifferenti sulla macchina remota [ad esempio è nei sudoers].

Detto questo, trovo anche che sia abbastanza noioso inserire la propria password ad ogni connessione. Ma non disperate: il meccanismo standard per risparmiarvi preziosi secondi esiste e ve lo spiegherò tra poco. Inoltre, il meccanismo standard è sicuro di per sé e non indebolisce la struttura di ssh perché utilizza un’autenticazione basata sulla crittografia asimmetrica.

Innanzitutto: queste istruzioni sono per Linux e OSX. In futuro posterò anche le istruzioni per Windows/PuTTY.

Obiettivo: loggarsi dalla macchina locale (local) alla macchina remota (remote) senza inserire la password

Sulla macchina locale: generare le chiavi di autenticazione [1/2]

Le chiavi di autenticazione sono composte da 2 chiavi, una pubblica e una privata. La chiave pubblica rappresenta la nostra identità nel mondo esterno. La chiave privata, invece, rappresenta la nostra chiave segreta, la nostra “password” [anche se è molto più lunga di una password].

Per generare le chiavi bisogna dare questo comando:
local$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mbologna/.ssh/id_rsa):

Accettate il path che vi viene proposto premendo Invio
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Vi consiglio fortemente di inserire una password a questo punto. Nonostante molte persone consiglino (sbagliando) di non inserire una password perché si ripeterebbe il problema di dover inserire una password, vi posso assicurare che impostare un ulteriore livello di sicurezza per poter accedere ad un file così delicato come la vostra chiave privata è più che consigliato [e per sfatare un falso mito: non è vero che bisogna reinserire la password, basta affidarsi a un’implementazione sicura di ssh-agent].

Ora controllate che effettivamente il comando abbia creato le vostre chiavi:

local$ ls -la .ssh/
drwx------  2 mbologna mbologna   4096 2009-09-24 18:43 .
drwx------ 55 mbologna mbologna   4096 2009-11-13 00:42 ..
-rwx------  1 mbologna mbologna   1743 2009-08-04 16:52 id_rsa
-rwx------  1 mbologna mbologna    433 2009-08-04 16:52 id_rsa.pub

id_rsa contiene la vostra chiave privata, mentre id_rsa.pub contiene la vostra chiave pubblica.

Sulla macchina remota: autorizzare l’autenticazione tramite chiave pubblica [2/2]

Loggatevi sulla macchina remota inserendo la vostra password [per l’ultima volta :) ]:

local$ ssh username@remote
A questo punto seguite i seguenti passi:

  • create una directory .ssh nella vostra home mkdir .ssh
  • impostate i permessi appropriati chmod 700 .ssh
  • spostatevi nella directory .ssh cd .ssh
  • create un file chiamato authorized_keys touch authorized_keys
  • impostate i permessi approppriati chmod 600 authorized keys
  • aprite il file authorized_keys con il vostro editor preferito [ad esempio vi] vi authorized_keys
  • copiate e incollate il contenuto del file ~/.ssh/id_rsa.pub presente su local nel file authorized_keys
  • fate un logout

Abbiamo finito! Ora potete semplicemente loggarvi sulla macchina remote semplicemente con ssh username@remote

Nota: se non volete digitare la password ogni volta che accedete alla vostra chiave privata, date un’occhiata a ssh-agent.

Popularity: 1%

  • Share/Bookmark
Tags: , , , ,

Comments No Comments »

DSCN1936 thumb Dell Precision M4400: la mia recensioneDopo aver valutato per molto tempo l’acquisto di un notebook, ho recentemente acquistato un notebook di fascia aziendale prodotto da Dell, il Dell Precision M4400 per la precisione; l’acquisto è avvenuto ad aprile 2009 e dopo 7 giorni dall’ordine ho ricevuto il notebook completo di alimentatore, manuali e CD.

Il notebook ha le seguenti caratteristiche:

  • Intel Core2 Duo T9400 a 2.53Ghz;
  • 4096MB di RAM;
  • Hard disk: 500GB a 7200 RPM;
  • Scheda video NVIDIA Quadro FX 770M [scheda grafica ottimizzata per CAD]; DSCN1927 thumb Dell Precision M4400: la mia recensione
  • Schermo LED 15.4’ con risoluzione 1440×900;
  • Windows Vista Business SP1

Dopo alcuni giorni di test, il notebook si è comportato molto bene: la capacità computazionale è davvero eccezionale, sia per le performances della CPU che per la potenza della scheda video. Il case è in plastica ma è comunque molto resistente e con un design tutto sommato accattivante. Il peso è sicuramente inferiore rispetto ai notebook aziendali della stessa fascia. Inoltre, caratteristiche quali il disco fisso a 7200 RPM, lo schermo a LED e lo schermo opaco con una risoluzione più alta rispetto ai “notebook da supermercato”, costituiscono senza ombra di dubbio un punto di forza per questo notebook.

DSCN1932 thumb Dell Precision M4400: la mia recensione Un primo grave difetto di progettazione è comparso dopo soltanto un mese dall’utilizzo. Infatti, ho cominciato a notare uno strano aspetto del case all’altezza del processore: molto probabilmente, il calore dissipato dalla CPU scioglie l’adesivo nero che copre gli speaker, lasciando scoperta la struttura metallica sottostante; il risultato è sconcertante, come potete vedere dalle foto. Tengo a precisare che il notebook è stato conservato con molta cura, quindi l’effetto che si vede in foto non è dovuto a usura ma semplicemente alla verniciatura del notebook che si scioglie dopo nemmeno 7 mesi di vita. Sull’altro lato del notebook, invece, il fenomeno è presente in minore quantità ma è comunque presente: la mia intuzione è che sia causato dal calore dissipato dall’hard disk, che è sicuramente inferiore a quello dissipato dal processore.

Un altro difetto molto vistoso è la dimensione dell’alimentatore: acquistando il prodotto online purtroppo non era presente una foto dell’alimentatore, quindi non potevo sapere a priori le dimensioni dello stesso. L’alimentatore è davvero molto ingombrante e pesante rispetto ai notebook della stessa fascia.

Un altro difetto che però è parzialmente imputabile a Dell è la latenza dei drivers della scheda video con l’utilizzo di Windows Vista: misurando il ritardo della scheda audio [con dpclat], possiamo notare che in alcuni casi il driver audio ha una latenza molto alta, che si traduce in interruzioni durante il playout di video o canzoni.

DSCN1934 thumb Dell Precision M4400: la mia recensioneHo avuto già l’occasione di chiamare il supporto Dell: infatti, l’alimentatore del notebook si è rotto mentre ero a Los Angeles. DSCN1937 thumb Dell Precision M4400: la mia recensioneNonostante avessi comprato il computer in Italia, chiamando il supporto tecnico da Los Angeles sono riuscito ad avere l’alimentatore sostitutivo il giorno seguente alla chiamata: davvero molto celeri.

Riassumendo, il notebook presenta i seguenti vantaggi:

  • CPU e scheda video molto performanti
  • Possibilità di montare hard disk a 7200 RPM
  • Schermo opaco
  • Schermo LED con risoluzione adatta ad un 15.4’: 1440×900
  • Supporto Dell competente e rapidoimage thumb1 Dell Precision M4400: la mia recensione

mentre ha i seguenti svantaggi:

  • Difetto di progettazione per quanto riguarda la vernice che copre gli speaker. Il difetto è molto visibile e deve essere corretto al più presto
  • Alimentatore fuori scala: troppo ingombrante e pesante
  • Latenza dei drivers per Windows inaccettabile per un computer di questa fascia: serve un aggiornamento dei driver per Windows.

Popularity: 1%

  • Share/Bookmark
Tags: , , , , , , , , ,

Comments No Comments »

Safari [e molti altri browser] hanno un comportamento che mi infastidisce quando tentano di aprire un link [come ad esempio questo] in una nuova finestra.

Mi piace l’idea di avere una finestra unica del browser ma con molteplici tab: dopotutto i tab sono stati introdotti proprio per non avere più finestre aperte. Quindi, per forzare Safari ad aprire un nuovo link in un nuovo tab, anziché in una nuova finestra, si deve modificare il comportamento di Safari tramite il terminale [non preoccupatevi, nulla di trascendentale]. Le istruzioni per MacOSX sono le seguenti:

  • Premete command+space per lanciare Spotlight e digitate ‘terminale’, il top hit che avrete è l’applicazione del terminale. Lanciatela
  • Una volta aperto il terminale, vi basterà copiare-incollare il seguente comando:
    defaults write com.apple.Safari TargetedClicksCreateTabs -bool true
  • Riavviate Safari

Ben fatto! Ora i link che si aprivano in una nuova finestra verranno aperti in un nuovo tab.

    Popularity: 1%

    • Share/Bookmark
    Tags: , , ,

    Comments 1 Comment »

    Sono recentemente stato invitato a provare Google Wave, la nuova piattaforma di comunicazione e di collaborazione made in Google. Più in generale è un framework che integra email, istant messaging, wiki e social networking; se vi state chiedendo a cosa più servire, molto probabilmente non vi serve.

    Se invece avete un gruppo di persone con cui state condividendo un progetto e con cui volete rimanere sempre in contatto, organizzando ogni tipo di comunicazione in maniera compatta e facilmente accessibile, allora Google Wave è quello che fa per voi.image thumb Google Wave: recensione e inviti

    Google conta molto nel progetto Wave: infatti, come spiegato nel keynote, Google vuole che Wave rimpiazzi presto l’uso quotidiano dell’email. Tant’è che lo slogan con cui Wave è stato lanciato è proprio “Is What Email Would Look Like If It Were Invented Today

    Dopo averlo provato per qualche giorno, devo dire che è davvero un buon prodotto, facile da usare, e soprattutto semplice ma completo, come tutti i prodotti Google. Google Wave lamenta però ancora qualche problema (più che comprensibile, il prodotto è ancora su invito): infatti, per tutto un pomeriggio (PDT time) non sono riuscito ad utilizzare Wave perché il javascript non veniva renderizzato correttamente.

    Detto questo, offro 6 3 1 0 inviti [non ho più inviti ma appena ne avrò a disposizione inviterò quelli che commenteranno qui sotto] 28 inviti per provare Google Wave: scrivete un commento (avendo cura di riempire il campo email altrimenti non potrò mandarvi l’invito) e appena posso vi manderò un invito. Happy Waving!

    Popularity: 2%

    • Share/Bookmark
    Tags: , ,

    Comments 19 Comments »