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

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 »

Bookmark and Share

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!:)

Bookmark and Share

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.

Bookmark and Share

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’è…

Bookmark and Share

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!:)

Bookmark and Share

Sincronizzare due database MySQL via SSH

mar 2, 2009 Author: Gianluca | Filed under: Linux, MySQL

MySQL supporta nativamente la configurazione master/slave tra due database ma in questo modo si può scrivere solo sul master.

Se si ha la necessità di  avere due database identici ed eseguire su entrambi operazioni di scrittura è necessario sincronizzarli in qualche modo. Si può optare per rsync e quindi aggiornare i file che compongono il database o, come nel caso che vedremo tra poco, usare i comandi di MySQL e muovere i dati via SSH.

Supponiamo di voler trasferire il dump di un database locale in un db remoto, il comando è questo:

ssh user@www.my_domain.com "mysqldump
-u my_remote_db_username --password=my_remote_db_password my_remote_db_name"
| mysql -u my_local_db_username --password=my_local_db_password --host=localhost -C my_local_db_name

Viceversa, dal database remoto a quello locale:
mysqldump -u my_local_db_username --password=my_local_db_password --host=localhost -C my_local_db_name | ssh user@www.my_domain.com "mysql -u my_remote_db_username --password=my_remote_db_password my_remote_db_name"

Facile no?

Usando SSH con autenticazione a chiave pubblica è possibile automatizzare la sincronizzazione con crond e quindi schedulare il processo di aggiornameno.

Bookmark and Share

Problemi con jFrame e jQuery 1.3? Ecco la soluzione

feb 25, 2009 Author: Gianluca | Filed under: jQuery

Utilizzo abitualmente jQuery e tempo addietro ho scoperto un comodissimo plugin chiamato jFrame.

Ecco cosa fa jFrame:

Thanks to jQuery library, jFrame provides an easy way to get an HTML frame-like behaviour on DIV Elements with AJAX. It comes with Pimentech Scripts library. Also alvaiable on jQuery_site .

With jFrame, you can build smart, complex modern, internet apps without leaving the main page, without a single line of JavaScript !

A jFrame is a DIV tag with a src attribute. In a jFrame, click events on and input type=”submit” tags will be handled by jframe and loaded in ajax.

Aggiornando le versione di jQuery alla “current”, jFrame aveva smesso di funzionare.

La soluzione è semplice, basta aprire il file .JS di jFrame e sostituire:

div[@src]

con

div[src]

Va tolta la chiocciola perché dalle versione 1.2.6 di jQuery è stata deprecetata come selettore di attributo.

Bookmark and Share

Last 3 LifeStream

  1. Yesterday

    1. Gianluca dai che domani è sabato!

      4:40pm via Facebook

  2. September 6th

    1. Gianluca si lo ammetto sono razzista, odio le ex.L'unica razza per cui nemmeno l'Onu muoverebbe un dito in caso di estinzione. Esseri spregevoli e abietti senza eguali.

      9:37pm via Facebook

  3. September 5th

    1. Gianluca le belle donne sono invisibili,vedi solo la bella facciata,ti blocca la barriera della bellezza. Ammagliati dall'aspetto esteriore non arriviamo mai al mondo interiore e se mai accade uno dei due rimane deluso.

      9:06am via Facebook

    Upstream

    Powered by Lifestream.

Flickr PhotoStream

    DSCF9988.JPGDSCF9958.JPGDSCF9962.JPGDSCF9968.JPGDSCF9972.JPG

Blogroll


Calendar

settembre: 2010
L M M G V S D
« lug    
 12345
6789101112
13141516171819
20212223242526
27282930  

Recent Comments