
Tranquillo, non parleremo di attacchi DoS o comandi per buttare a terra dei siti web, in quanto queste sono operazioni ben diverse e che si svolgono in altro modo. In questo articolo infatti parleremo di Siege, uno strumento per Mac (i procedimenti sono comunque molto simili a Linux) che ci consente di simulare un bombardamento di connessioni (attraverso protocolli HTTP, HTTPS oppure ) ad un sito web. Si tratta di un vero e proprio test utile ai web developer, ai web master e ai gestori di sistemi, che serve dunque per verificare come un sito web reagisce se messo “sotto stress”.
Cosa fa Siege
Siege è uno strumento per Mac di benchmarking, ovvero uno strumento che ci permette di misurare il codice di un sito web se messo sotto stress. In poche parole questo strumento ci permette di fare tantissime richieste simultanee verso un sito web, mettendolo quindi sotto stress per vedere come reagisce. Alla fine dei test il programma di darà tutte le statistiche. Infatti una volta messo sotto stress non solo vedremo come ha reagito il sito, ma avremo anche dei dati alla mano che potremmo utilizzare per risolvere problemi o per migliorare le performance.
Come installarlo

Siege, come tanti programmi del genere, viene installato ed eseguito tramite terminale. Anche se non hai mai usato il terminale scoprirai che sarà piuttosto semplice installare ed eseguire Siege. Quindi apri il terminale di Mac (puoi aprirlo velocemente cliccando sulla lente di ingrandimento di spotlight in alto a destra e scrivendo terminale, quindi premere Invio) e inserisci questa linea di comando, che scaricherà il pacchetto di Siege:
curl -C - -O http://www.joedog.org/pub/siege/siege-latest.tar.gz
Quindi procedi con quest’altro comando, che scompatta il pacchetto scaricato:
tar -xvf siege-latest.tar.gz
Dopodiché entriamo nella directory in cui abbiamo appena estratto i files scrivendo quest’altro comando:
cd siege-2.70/
Ora bisogna installare Siege. Dato che io ho avuto problemi durante l’installazione sarebbe meglio aggiungere dei permessi di scrittura per alcune cartelle di Mac. Quindi nel Finder vai nel menu Vai>Vai nella cartella… e scrivi /usr/ , ti si aprirà una cartella con altre cartelle, seleziona la cartella local e apri le informazioni della cartella col tasto destro (Ctrl+Click su Mac) e poi Ottieni Informazioni. Nella finestrella che ti si aprirà se bloccato sblocca il lucchetto in basso a destra. Quindi per ogni utente (anche everyone) assegna permessi di lettura e scrittura, clicca sull’icona della rotellina e applica agli elementi inclusi.

Ora puoi chiudere la finestrella e ritornare al terminale. Per l’installazione dovrai i seguenti tre comandi uno alla volta.
./configure make make install
Se tutto è andato a buon fine (io durante la prima installazione mi ero incasinato nei permessi, poi alla fine è funzionato tutto) allora basterà eseguire il seguente comando per entrare in Siege (si lo ammetto, dicendo così mi sembra che stiamo entrando nel portale degli agenti CIA):
siege
Ci serve un’ultimo comando prima di cominciare i test, ed è quello per configurare Siege:
siege.config
Eseguire i test
Una volta entrato in Siege (con il solito comando “siege”), potrai incominciare i test, trovi un bel manuale in questa pagina. Per ogni test dovrai incominciare con siege, poi a seguire tutti i comandi che vuoi e dovrai terminare con l’URL. Ad esempio se voglio inviare ad un sito web 10 richieste con 10 diverse connessioni (come se da 10 computer mi connettessi a Skimbu per 10 volte nel giro di pochissimi secondi) allora dovrò eseguire il comando:
siege -c 10 -r 10 http://www.skimbu.it
Inizia la battaglia secondo Siege…

Alla fine di tutte le righe blu che rappresentano ciascuna richiesta avrai tutte le statistiche elaborate da Siege dopo la battaglia, ecco le mie:
Transactions: 100 hits Availability: 100.00 % Elapsed time: 10.71 secs Data transferred: 2.39 MB Response time: 0.35 secs Transaction rate: 9.34 trans/sec Throughput: 0.22 MB/sec Concurrency: 3.24 Successful transactions: 100 Failed transactions: 0 Longest transaction: 5.51 Shortest transaction: 0.01
Da qui posso capire che il server di Skimbu è in buone condizioni, dal momento che esegue oltre 5 transazioni al secondo (ho fatto vari test ed in altri test è arrivato persino a 70 transazioni al secondo), che ha una media di 0.01 secondi per transazione (questo l’ho elaborato vedendo le 100 trasnazioni), che trasferisce 220 kb al secondo e tanti altri dati… In realtà alcune transazioni, come noterai, hanno impiegato più di un secondo, ma i seguenti test eseguiti hanno dato esito migliore, non so se attribuire questa differenza alla cache o a qualche altro motivo. In sintesi, esegui più test e fai la media dei risultati ottenuti per avere un risultato preciso e completo.
Risoluzione problemi
Prima abbiamo visto che Siege potrebbe avere difficoltà a creare dei file perché non ha i permessi. Se nonostante le correzioni eseguite non permettessero l’installazione di Siege, oppure entrando nella cartella /usr/ noti che non esiste la cartella local, allora esegui i seguenti passaggi:
- Nella cartella /usr/ crea la cartella local
- Dentro la cartella local crea la cartella bin e la cartella etc se non sono già presenti
- Dentro la cartella etc crea la cartella siegerc
- Torna indietro a /usr/ e assegna i permessi a local e tutti gli elementi inclusi, come detto nel passaggio precedente.
Conclusioni
Un bravo sistemista, web developer e web master deve avere un tool come questo per testare la portata dei propri siti web e dei propri server. Siege si rivela affidabile e completo. Insomma, un must-have per tutti coloro che lavorano per il web ma anche un’interessante strumento per chi si vuole divertire a provare a bombardare di connessioni dei siti web.
Ovviamente Skimbu non si assume nessuna responsabilità per gli utilizzi che verranno fatti dell’applicazione. Ricordo che con questa applicazione si rischia solo di rallentare per qualche millisecondo o secondo quei siti web con un firewall mal configurato o comunque senza un hosting solido. I famosi attacchi DOS sono tutt’altra roba, che vengono fatti con più computer.
Pingback: Con Siege (e con un Mac) mettete alla prova il vostro sito web simulando condizioni di stress - SlideToMac