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

Bandwidth monitoring con vnStat

apr 7, 2009 Author: Gianluca | Filed under: Debian

Un ottimo network traffic monitor per Linux è vnStat che consente di avere le statistiche del traffico delle interfacce presenti sulla nostra linux box.

Su Debian l’installazione è banale:

apt-get install vnstat

Adesso dobbiamo inizializzare il database di vnStat con le interfacce in nostro possesso:

vnstat -u -i <interfaccia>

Il più delle volte le nostre interfacce ethernet sono eth0, eth1 etc etc.

Adesso è il momento del caffè visto che i dati devono confluire in vnStat per visualizzare le prime statistiche. Trascorso un pò (bel pò) di tempo torniamo su Linux e vediamo che dati fornisce il tool appenna installato. Read the rest of this entry »

Raccolta fondi per le vittime del terremoto in Abruzzo

apr 6, 2009 Author: Gianluca | Filed under: Senza categoria

L’Abruzzo è la mia regione, all’Aquila ho vissuto per 4 anni ai tempi dell’università, le immagini del terremoto scorrono su tutti i media. Io sono qui a chiedervi un contributo per le vittime.

L’iniziativa è nata su Bucchianico.net ed ho creduto giusto esportarla anche sul mio sito.

Dona qualcosa a chi non ha più niente.


Sono tornato

apr 6, 2009 Author: Gianluca | Filed under: Senza categoria

Dopo la spettacolare settimana passata a Madonna di Campiglio eccomi di nuovo a casa e al lavoro pronto per aggiornare il sito.

Netstat, porte aperte e connessioni attive

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

Il comando più immediato e veloce per vedere tutte le porta aperte sulle nostra Linux box è questo:


netstat -lnp

L’output è bello corposo ma di facilissima comprensione.

Se volessimo vedere tutte le connessioni attive:


netstat -nat

Tutto troppo facile!:)

Linux: che processo ha aperto quella porta?

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

Se con il nostro port-scanner preferito (nmap nel mio caso) vediamo che abbiamo una porta aperta ma non sappiamo chi abbia compiuto un gesto così irrespondabile possiamo usare il comodissimo comando fuser che va eseguito con i privilegi di root:

fuser -v -n (tcp | udp)

Facciamo una prova su un server che ha Apache in esecuzione:

fuser -v -n tcp 80

Ecco l’output:

                     USER        PID ACCESS COMMAND
80/tcp:              root      19375 F.... apache2
                     www-data  23223 F.... apache2
                     www-data  24155 F.... apache2
                     www-data  26253 F.... apache2
                     www-data  26271 F.... apache2
                     www-data  26272 F.... apache2
                     www-data  26273 F.... apache2
                     www-data  26274 F.... apache2
                     www-data  26275 F.... apache2
                     www-data  26277 F.... apache2
                     www-data  26282 F.... apache2

Questo tool è utilissimo quando ci accorgiamo che c’è qualche porta non aperta da noi in ascolto, ed è quindi possibile risalire al processo in esecuzione che crea tale anomalia.

Espressioni regolari

mar 24, 2009 Author: Gianluca | Filed under: PHP

Quando si scrive un qualsiasi tipo di software capita spesso di imbattersi nelle espressioni regolari al fine di vigilare sull’input dell’utente o per estrapolarne dei dati.

Ho deciso di raccogliere le espressioni regolari per PHP più comuni, quelle che ho utilizzato di più nella mia “giovane” carriera da programmattore.

E-Mail

$email = "test@ideafactory.it";
if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
echo "OK";
} else {
echo "KO";
}

E’ importante ricordare che con le espressioni regolati si verifica solo la sintassi e non la semantica, quindi un indirizzo e-mail può essere ben scritto ma inesistente!.

Username

$username = "user_name12";
if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) {
echo "OK";
} else {
echo "KO";
}

La username, nel mio caso, deve essere composta da un minimo 5 ad un massimo di 20 caratteri e può contenere solo lettere, numeri e underscore “_”.

Indirizzo IP

$IP = "198.168.1.7";
if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$IP)) {
echo "OK";
} else {
echo "KO";
}

URL

$url = "http://www.ideafactory.it/";
if (preg_match('/^(http|https):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {
echo "OK";
} else {
echo "KO";
}

Un’ottima guida sulle espressioni regolari in PHP è quella fornita da HTML.IT presente qui.

Ethernet (NIC) bonding su Debian

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

Come la pubblicità di Maxbon ci ha insegnato, sappiamo che “two is meglio che one” quindi perché avere una sola scheda ethernet all’interno del nostro server se con due possiamo avere un ottima ridondanza di rete e/o un ottimo bilanciamento del carico? Vediamo di mettere sù un ethernet bonding, un sistema che la ho lo scopo di unire due flussi ethernet al fine di formare un unico canale.

Prima di procedere all’installazione del software necessario, vediamo le modalità operative del channel bonding:

  • mode=0 (balance-rr): avviene il round-robin tra le due interfacce. I pacchetti vengono trasmessi attraverso la scheda di rete scarica e se una delle due va ko viene usata solo la scheda di rete funzionanete. Questa  modalità fornisce sia il load balance e sia il fault tolerance e non prevede switch di rete con particolari funzionalità.
  • mode=1 (active-backup): una sola schede di rete viene usata se questa si rompe il MAC address viene associato all’altra funzionante (di backup) e quindi il flusso di rete viene garantito. Questa modalità fornisce un sistema di fault tolerance e non è necessario uno switch che abbia funzionalità avanzate.
  • mode=2 (balance-xor): il traffico di rete viene inoltrato sulla scheda in base a questa regola di XOR: ((source MAC) XOR (dest MAC)).  Questa modalità garantisce load balancefault tolerance e non necessità di particolati switch.
  • mode=3 (broadcast): vengono usate entrambe le interfacce per trasmettere e ricevere. Il fault tolerance è garantito senza switch preposti.
  • mode=4 (802.3ad): è una modalità si supporto allo standard IEEE 802.3ad Dynamic link aggregation, per questa modalità è necessario uno switch che supporti lo standard 802.3ad.
  • mode=5 (balance-tlb): Adaptive Transmit Load Balancing. Il traffico in entrata è ricevuto solo sullo slave attivo, il traffico in uscita viene distribuito a seconda del carico su ogni slave. Non necessità di particolai switch.
  • mode=5 (balance-alb): Adaptive Load Balancing. Fornisce bilanciamento del carico sia in ricezione che in trasmissione. Non necessità di switch particolari ma richiede la capacità di cambiare l’indirizzo MAC del dispisitivo di rete senza che questo interrompa il traffico. Read the rest of this entry »

Last 3 LifeStream

March 6th

facebook (feed #2)
Gianluca per me questo splendente sole e questa fantastica neve sono come avere la ragazza con il ciclo: puoi solo guardare!
12:29pm via Facebook

March 4th

facebook (feed #2)
Gianluca most importantly is just about being able to enjoy with my friends.
11:12am via Facebook

March 3rd

facebook (feed #2)
Gianluca nei sogni cominciano le responsabilità.
10:37am via Facebook

Older Entries

Powered by Lifestream.

Flickr PhotoStream

    DSCF9988.JPGDSCF9958.JPGDSCF9962.JPGDSCF9968.JPGDSCF9972.JPG

Blogroll


Calendar

marzo: 2010
L M M G V S D
« feb    
1234567
891011121314
15161718192021
22232425262728
293031