c'e' solo un modo di fare le cose: farle bene

Nuovo tema per il mio blog

mar 18, 2009 Author: Gianluca | Filed under: Senza categoria

Come avrete notato ho cambiato (di nuovo) veste al sito, questa volta però sono contento: il tema mi ricorda la mia tavola e quindi mi piace tantissimo!.

Ride DH

Sfogliavo Smashing Magazine e rovistando a fondo ho trovato la recensione di questo layout per WordPress, il tempo di caricarlo via FTP, aggiungerci qualche plug-in, come ad esempio quello necessario per il lifestream, ed ecco il mio nuovo sito!

Che ve ne pare?

p.s.: i colori non vi ricordano il logo Debian? ;)

Montare uno spazio FTP nel filesystem con CurlFtpFS

mar 17, 2009 Author: Gianluca | Filed under: Debian

Stufi del Client FTP tradizionale ed in cerca di “qualcosa” che monti lo spazio FTP del nostro provider nella nostra Linux box?

La soluzione si chiama:  CurlFtpFS.

Installiamolo:

apt-get install curlftpfs

E’ importante caricare il modulo di fuse:

modprobe fuse

Montiamo la partizione remota FTP:

curlftpfs -o allow_other ftp://<user>:<pass>@<host_ftp> <directory_di_mount>

Per per montare la partizione all’avvio impostiamo fstab aggiungendo questa riga:

curlftpfs#<user>:<pass>@<host_ftp> <directory_di_mount> fuse rw,uid=500,user,noauto 0 0

Fine!:)

Ecco le caratteristiche principali di CurlFtpFS:

  • support for SSLv3 and TLSv1
  • connecting through tunneling HTTP proxies
  • automatic reconnection if the server times out
  • conversion of absolute symlinks to point back into the FTP filesystem

OpenVPN routed su Debian

mar 17, 2009 Author: Gianluca | Filed under: Debian

OpenVPN is a free and open source virtual private network (VPN) program for creating point-to-point or server-to-multiclient encrypted tunnels between host computers. It is capable of establishing direct links between computers across network address translators (NATs) and firewalls. It was written by James Yonan and is published under the GNU General Public License (GPL).

Bene, procediamo.

Supponiamo di avere due host e di creare una VPN tra loro, installiamo su entrambi openvpn:

apt-get install openvpn

Adesso usiamo la Debian Way e quindi utilizziamo gli script per la creazione dei certificati e delle chiavi.

Read the rest of this entry »

SSH Public Key Authentication in Debian

mar 13, 2009 Author: Gianluca | Filed under: Debian

La gestione remota del server viene (ed è giusto così!) fatta tramite SSH perché garantisce sicurezza ed affidabilità che altri sistemi sognano.

Per fortificare ancor più questo sistema si può usare SSH con l’autenticazione a chiave pubblica. Esistono decine di siti che descrivono bene questo sistema e spiagano come creare la coppia di chiavi quindi io do per assodato la creazione delle chiavi.

Per prima cosa va copiata la nostra chiave pubblica nel server remoto:

scp -p id_rsa.pub <utente_remoto>@<hot_remoto>:

Il file nel mio caso si chiama id_rsa.pub perché ho generato una chiave RSA ma anche una di altro tipo va più che bene!

Adesso creiamo le directory opportune nella home del nostro utente sul server remoto:

mkdir ~/.ssh
chmod 700 ~/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
mv id_rsa.pub ~/.ssh

Adesso sul server remoto va configurato il demone SSH attraverso il file /etc/ssh/sshd_config.

Settiamo queste direttive:

PermitRootLogin no
PasswordAuthentication no
UsePAM no

e riavviamo SSH:

/etc/init.d/ssh restart

Da adesso al nostro server ci si accede senza password…ma con la chiave!:)

Apache e GeoIP in Debian

mar 10, 2009 Author: Gianluca | Filed under: Debian

Avevo la necessità di permettere l’accesso ad un determinato virtual host di Apache solo ad utenti italiani, ho risolto con mod_geoip.

Ecco come installarlo:

apt-get install libapache2-mod-geoip

Per la configurazione del modulo è necessario editare il file

/etc/apache2/mods-available/geoip.conf

e decommentare la riga:

GeoIPDBFile /usr/share/GeoIP/GeoIP.dat

Salviamo questo file ed editiamo il file di configurazione del virtual-host aggiungendo questa specifica:

SetEnvIf GEOIP_COUNTRY_CODE <codice_del_paese> AllowCountry

E le policy di accesso:

Order Deny,Allow
Deny from all
Allow from env=AllowCountry

Scarichiamo l’ultima versione del database contenente gli IP tramite wget:

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

Salviamo il file nella directory:

/usr/share/GeoIP/

Eliminiamo il file vecchio:

rm GeoIP.dat

Mettiamo il nuovo:

gunzip GeoIP.dat.gz

Riavviamo Apache:

/etc/init.d/apache2 restart

e solo la nazione a voi simpatica accederà al sito!:)

Il modulo GeoIP è usabile anche all’interno di PHP:

<?php
$country_name = apache_note("GEOIP_COUNTRY_NAME");
$country_code = apache_note("GEOIP_COUNTRY_CODE");
print "Nazione: " . $country_name . " - Codice nazione: ".$country_code;
?>

Per maggiori informazioni ralative a mod_geoip potete consultare questa pagina.

RoundCube Security Bug

mar 9, 2009 Author: Gianluca | Filed under: Linux

Roundcube logoA me piace il web 2.0, AJAX e tutte quelle belle iconcine con effetto glossy aqua e quindi ho sempre cercato ed usato software web 2.0 like ma, per una volta, questa scelta si è rivelata fatale: RoundCube WebMail soffriva di un bug altamente pericoloso.

Tramite file html2text.php era possibile effettuare code injection e quindi caricare file ed eseguirli. E’ successo ad un server che gestisco e chi ha sfruttato tale vulnerabilità ha carico sulla macchina uno script che si collegava ad IRC ed era in grado di smurfare IP di altri utenti.

Risultato? Lo script ha usato fino a 70 Mbit di banda rallentando quindi la connessione e rendendo i servizi ospitati sul server inutilizzabili.

Per fortuna sono stato in grado di capire dove fosse il problema e quindi di prendere le dovute contromisure ma la cosa che mi ha insegnato questo spiacevole evento è che BISOGNA USARE SEMPRE SOFTWARE DEBIAN se non si vuole perdere tempo a cercare ed installare gli aggiornamenti a mano.

Se RoundCube non fa parte del repository Debian un motivo c’è…

Loading AJAX in stile Google con jQuery

mar 4, 2009 Author: Gianluca | Filed under: jQuery

Chiunque utilizza applicazioni made in Google è abituato a vedere “Caricamento in corso” o informazioni simili ogni qualvolta si muove all’interno della pagina.

Facciamo la stessa cosa con jQuery!:)

La prima cosa da fare è creare un DIV all’interno della nostra applicazione web che abbia un ID ben definito (nell’esempio l’ho chiamato “loading“) e nel foglio di stile andremo a dargli queste caratteristiche:


#loading{
position: fixed;
top: 0;
left: 0;
z-index: 5000;
background-color: red;
font-size: 150%;
color: white;
padding: 2px;
display:none;

}

Tramite la direttiva position: fixed e le coordinate di top e left ho posizionato il DIV nell’angolo in alto a sinistra dell’applicazione ed iniziamente non è visibile (display:none).

Adesso, tramite jQuery, facciamo in modo che ad ogni chiamata AJAX il DIV venga messo a video:


$(document).ready(function()
{
$("#loading").bind("ajaxSend", function(){
$(this).show();
}).bind("ajaxComplete", function(){
$(this).hide();
});
})

Non appena la richiesta AJAX termina il DIV viene di nuovo nascosto.

Buon javascript a tutti!:)

Last 3 LifeStream

  1. Today

    1. RT @lddio: La mafia teme più la scuola della giustizia. L'istruzione toglie erba sotto i piedi della cultura mafiosa. (A. Caponnetto, 19 ... [gianlucagentile]

      9h ago via Twitter

    2. RT @gzaffagnini: @riotta Dio accolga coloro che lo #Stato non riesce a proteggere [gianlucagentile]

      9h ago via Twitter

    3. RT @donati_giacomo: Solo delle Merde possono piazzare una bomba davanti una scuola! #brindisi [gianlucagentile]

      10h ago via Twitter

    Upstream

    Powered by Lifestream.

Flickr PhotoStream

    DSCF9988.JPGDSCF9958.JPGDSCF9968.JPGDSCF9980.JPGDSCF9981.JPG

Blogroll


Calendar

maggio: 2012
L M M G V S D
« nov    
 123456
78910111213
14151617181920
21222324252627
28293031