Upgrade di Nginx alla versione 0.8.54

In attesa di Nginx 0.9.5, ancora in fase di sviluppo, se vuoi fare un upgrade della tua attuale versione portandola alla 0.8.54 segui questo breve post.

L’esigenza di un upgrade può nascere nel caso in cui sul sistema sia installata una versione superata, ciò accade tipicamente su Debian o CentOS dove i binari pacchettizzati sono fermi alla 0.6.32.

La procedura che segue è riferita ad un sistema Debian 5.0 Lenny perciò prima di iniziare il tutto sarà necessario installare la suite di compilazione oltre alle librerie pcre e libevent necessarie per Nginx :

# apt-get install libevent-dev libpcre3-dev build-essential

Prima di compilare Nginx è importante predisporre un backup del vecchio binario oltre ad un salvataggio dei precedenti file di configurazione, ciò per evitare dolorose sovrascritture :

# cd /usr/src
# cp /usr/sbin/nginx nginx_06
# cp -r /etc/nginx/ old_conf

Se attivo fermiamo il demone Nginx :

 # /etc/init.d/nginx stop

Assicuriamoci inoltre di appuntare su un pezzo di carta gli attuali path in cui risiede il binario ed i file di configurazione. Solitamente /usr/sbin/ e /etc/nginx/. Abbiamo bisogno di sapere anche dove dovrà essere allocato il pid del demone, generalmente nella directory /var/run e la directory dove saranno salvati i log di errore ovvero /var/log/nginx. Con questi dati possiamo prelevare il codice sorgente e configurare i path.  :

# wget http://nginx.org/download/nginx-0.8.54.tar.gz
# tar zxf nginx-0.8.54.tar.gz
# cd nginx-0.8.54
# ./configure --sbin-path="/usr/sbin/nginx" --conf-path="/etc/nginx/nginx.conf" \

--error-log-path="/var/log/nginx/error.log"  --pid-path="/var/run/nginx.pid" \

--with-ipv6 --with-http_ssl_module --with-http_gzip_static_module

Dato che non vogliamo ritornare più di una volta in futuro a ricompilare qualche opzione mancante assicuriamoci di abilitare il modulo per l’Ipv6.

Dopo aver configurato la compilazione controlliamo che le opzioni presentate corrispondano alle nostre aspettative :

nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/sbin/nginx"
nginx configuration prefix: "/etc/nginx"
nginx configuration file: "/etc/nginx/nginx.conf"
nginx pid file: "/var/run/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"

Se la risposta è si avviamo la compilazione :

# make

A questo punto, piuttosto che digitare il classico make install, ci interessa copiare solamente il binario prodotto dalla compilazione dato che sul sistema è già presente lo scheletro dell’installazione della precedente versione di Nginx :

# cd objs/
# cp nginx /usr/sbin/

Abbiamo quasi finito, controlliamo che il nuovo eseguibile corrisponda alla versione che abbiamo prelevato :

# nginx -v
nginx version: nginx/0.8.54

Restano solo alcuni ritocchi :

# mkdir /usr/local/nginx
# touch /usr/local/nginx/client_body_temp

Controlliamo che il nuovo eseguibile non riscontri problemi con i file di configurazione in /etc/nginx già presenti sul sistema :

# nginx -t
the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful

E’ andato tutto per il verso giusto. Per terminare riavviamo il demone Nginx appena installato :

# /etc/init.d/nginx start

Post simili:

Bloccare i DoS di tipo slow loris con mod_security

“L’attacco HTTP DoS di tipo slow headers consiste nell’invio di un numero molto elevato di richieste di connessione, a cui da parte del client non segue nessun invio di dati. Apache rimane in attesa di poter servire una richiesta, che però non arriverà mai. In questo modo è possibile portare il demone al collasso con l’invio di migliaia di richieste HTTP senza scambio di dati.”

Questo tipo di tecnica è racchiusa all’interno del tool slowloris. Con questo piccolo script perl è possibile annichilire un’installazione di Apache, a meno di non essere adeguatamente protetti.

Esistono due tipi di contromisure agli attacchi di tipo slowloris. La prima è l’installazione del modulo mod_antiloris per Apache, che abbiamo visto in un post apparso tempo fa su questo blog. La seconda soluzione consiste nell’utilizzo di una nuova funzionalità contenuta in mod_security2 all’interno della versione 2.5.13.

security Bloccare i DoS di tipo slow loris con mod security

La direttiva SecReadStateLimit consente di specificare un limite al numero di richieste in attesa di essere servite da Apache che ogni client può aprire. Per attivare la limitazione e” sufficiente inserire la direttiva all’interno del file di configurazione /etc/apache2/mods-enabled/mod_security2.conf e riavviare Apache. Mod_security si occuperà di bloccare le richieste che superino tale limitazione, rendendo l’installazione di Apache immune da slowloris :

ModSecurity: Access denied with code 400. Too many threads [11] of 10 allowed in READ state from xx.xx.xx.xx - Possible DoS Consumption Attack [Rejected]
ModSecurity: Access denied with code 400. Too many threads [11] of 10 allowed in READ state from xx.xx.xx.xx - Possible DoS Consumption Attack [Rejected]
ModSecurity: Access denied with code 400. Too many threads [11] of 10 allowed in READ state from xx.xx.xx.xx - Possible DoS Consumption Attack [Rejected]
ModSecurity: Access denied with code 400. Too many threads [11] of 10 allowed in READ state from xx.xx.xx.xx - Possible DoS Consumption Attack [Rejected]
ModSecurity: Access denied with code 400. Too many threads [11] of 10 allowed in READ state from xx.xx.xx.xx - Possible DoS Consumption Attack [Rejected]

Post simili:

Installiamo phpBB3

PhpBB è uno dei più popolari software opensource per la costruzione di forum e community.

Per completare questo tutorial devi disporre di un server virtuale VPS con accesso shell non necessariamente root. Hai bisogno inoltre di un database Mysql oltre ad un’installazione funzionante di Php e Apache (o Nginx).

Puntiamo il nostro browser sul sito ufficiale di phpBB. Nella sezione downloads clicchiamo su Download Stable Release Continue reading

Post simili: