c'e' solo un modo di fare le cose: farle bene
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 »
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.
Dopo la spettacolare settimana passata a Madonna di Campiglio eccomi di nuovo a casa e al lavoro pronto per aggiornare il sito.
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!:)
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.
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.
$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 = "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 “_”.
$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 = "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.
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:
Powered by Lifestream.
| L | M | M | G | V | S | D |
|---|---|---|---|---|---|---|
| « feb | ||||||
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 | ||||