Category Archives: Apache

Htaccess: limitare l’azione di bot, spider ed exploit

Pubblicato da

5G-Blacklist

Uno dei modi più semplici per attaccare un sito realizzato con un linguaggio dinamico (ASP.NET, PHP, ecc.) è quello di scrivere URL malformati o di inoltrare molteplici richieste contemporanee.
Anche l’azione troppo “invadente” di certi spider automatici può causare problemi di accessibilità ad un sito.
I server come Apache hanno la possibilità di configurare l’accesso ad una directory tramite il file .htaccess .
Sfruttando questa caratteristica si possono impostare una serie di regole per filtrare gli accessi.

5G Blacklist è un progetto condiviso per la realizzazione di un .htaccess “definitivo” in cui siano contemplati tutti i casi per limitare l’azione di bot, spider automatici e hacker alle prime armi.
Il nome deriva dal fatto che è la quinta generazione di questo file che è un po’ come una blacklist di un firewall.
Non si tratta della soluzione contro tutti i mali ma permette di risparmiare molta banda e rintuzza gli attacchi più classici.
Il file è strutturato molto bene permettendo di personalizzare, ad esempio, l’elenco degli IP bloccati (o consentiti) oppure quello degli User-Agent (i software che manifestano la propria identità) non consentiti.
Bisogna  dire che entrambi i metodi sono soggetti a raggiro: uno spider può avere diversi IP e un User-Agent può essere simulato.

C’è poi tutta una sezione che “cura” le query string (quelle URL che al loro interno passano valori e parametri).
Il lungo lavoro della community è stato quello di filtrare le URL formate in maniera anomala facendo passare quelle corrette.
Nonostante qualche limite la validità di 5G Blacklist rimane. E’ un metodo semplice e alla portata di tutti per aumentare la sicurezza delle proprie applicazioni web.

Funziona perfettamente con WordPress.

Link: 5G Blacklist (qui la versione beta della 6G)

Ottimizzazione Apache con mod_pagespeed

Pubblicato da

Apache è il web server più diffuso al mondo. All’aumentare della complessità dei siti e delle applicazioni servite, si sono sviluppate molte tecniche per ottimizzarne il codice, le immagini e il trasporto dei dati.
Molte di queste tecniche sono state riunite nel mod_pagespeed, un modulo appunto per Apache sviluppato da Google.
Si va dall’accorpamento dei CSS alla compressione delle immagini, dalla concatenazione dei file all’utilizzo della cache.
Si arriva ad una vera e propria riscrittura del codice HTML. Ecco un esempio

<!– original source –>

<link rel=”stylesheet” type=”text/css” href=”styles/yellow.css”>
<link rel=”stylesheet” type=”text/css” href=”styles/blue.css”>
<link rel=”stylesheet” type=”text/css” href=”styles/big.css”>
<link rel=”stylesheet” type=”text/css” href=”styles/bold.css”>

<!– rewritten resource –>
<link rel=”stylesheet” type=”text/css” href=”styles/yellow.css+blue.css+big.css+bold.css.pagespeed.cc.HASH.css”>

<div class=”blue yellow big bold”>Hello, mod_pagespeed!</div>

Per quel riguarda le immagini, anche queste possono subire ottimizzazioni al volo, generando file con estensione WebP. Purtroppo i  soli browser che supportano queste estensioni sono Chrome e Opera. Gli altri browser sono esclusi ma non subiscono alcuna limitazione continuando a visualizzare normali file grafici (come ad esempio JPG).

Per avere un quadro completo di tutte le ottimizzazioni possibili con questo mod per Apache si faccia riferimento al documento originale su Google Developer.
Questo mod per Apache fa parte di un progetto più ampio chiamato PageSpeed Optimization Libraries (PSOL) che non è legato solo ad Apache ma è indirizzato a risolvere in genere i problemi di lentezza nella fruizione delle moderne applicazioni web.

Link: mod_pagespeed

Configurazione limiti Apache in Virtuozzo

Pubblicato da

Queste sono di quelle cose che quando le scopri, bestemmi o quasi.
Per cambiare le impostazioni dei limiti (ServerLimit, Maxclients ecc.) di Apache, se questo è dentro il contenitore di VPS Virtuozzo, non solo bisogna agire sul classico /etc/httpd/conf.d/httpd.conf ma anche su /etc/httpd/conf.d/swtune.conf.
Ovviamente dopo il cambio di configurazione bisogna riavviare Apache.

[via forum TekTonic]

Server web. Stanco del solito Apache? Prova Cherokee!

Pubblicato da

Apache è il web server più utilizzato nel mondo. Capace di funzionare sia su Linux/UNIX che su Microsoft, è il punto di partenza per i programmatori PHP, Java, Ruby, Python ecc.
La configurazione di Apache è piuttosto ostica (anche se ampiamente documentata), soprattutto per chi è ai primi passi.
Dall’esigenza di avere un’interfaccia di configurazione più amichevole è nato Cherokee, web server open source.
Anche Cherokee è installabile su macchine Linux/UNIX, Windows e Mac OS e supporta i linguaggi e i database più diffusi del mondo della programmazione.
La differenza sostanziale è nell’interfaccia di ammnistrazione che riunisce in un unico posto tutte le possibili configurazioni che è possibile applicare al server.
Nella stessa interfaccia sono presenti anche i monitor classici sullo stato del server.

Gli appassionati della riga di comando e dei file config continueranno ad utilizzare Apache ma, per tutti gli altri, Cherokee può essere una valida alternativa.

Link: Cherokee Project

La posizione del file error.log di Apache sotto LINUX/UNIX

Pubblicato da

L’analisi del file di log per quel che riguarda gli errori di Apache aiuta tantissimo a individuare le criticità di un’applicazione web e il motivo di certi malfunzionamenti apparentemente inspiegabili.
Le diverse distribuzioni Linux però hanno diversi percorsi di default

  • RHEL / Red Hat / CentOS / Fedora – /var/log/httpd/error_log
  • Debian / Ubuntu – /var/log/apache2/error.log
  • FreeBSD  – /var/log/httpd-error.log

Nel caso non si trovi nella sua posizione di default si può sempre utilizzare il comando grep da riga di comando

# grep ErrorLog /usr/local/etc/apache22/httpd.conf
# grep ErrorLog /etc/apache2/apache2.conf
# grep ErrorLog /etc/httpd/conf/httpd.conf

Ovviamente, se si dispone di un accesso FTP, il file di configurazione può essere direttamente visionato.
Per trovare il percorso basta analizzare la riga (per esempio)

ErrorLog "/home/httpd/percorso-interno/error.log"