Tag Archives: apache

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

Pubblicato da

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

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

Ottimizzazione Apache con mod_pagespeed

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

Configurazione limiti Apache in Virtuozzo

Configurazione limiti Apache in Virtuozzo

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

Server web. Stanco del solito Apache? Prova Cherokee!

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

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

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"

Piccolo vademecum al .htaccess

Pubblicato da

Piccolo vademecum al .htaccess

Chi lavora con Apache conosce benissimo l’utilità del .htaccess. Questo file serve per impostare alcuni comportamenti del server.
Qui di seguito un piccolo vademecum delle impostazioni più utilizzate

Abilitare la navigazione nella directory

Options +Indexes
## bloccare alcuni tipi di file
IndexIgnore *.wmv *.mp4 *.avi

Disabilitare la navigazione nella directory

Options All -Indexes

Disabilitare l’hotlinking (le immagini o le altre risorse prelevate dal proprio sito)

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?miodominio.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css)$ – [F]

Pagine di errore personalizzate

ErrorDocument 400 /errori/richiestaerrata.html
ErrorDocument 401 /errori/autorizzazionerichiesta.html
ErrorDocument 403 /errori/paginavietata.html
ErrorDocument 404 /errori/paginanontrovata.html
ErrorDocument 500 /errori/erroredelserver.html

Cambiare l’ordine di priorità di pagina

DirectoryIndex primapagina.htm index.htm index.php

Bloccare un utente tramite IP o dominio

order deny,allow
deny from 123.456.789.00
deny from 123.456.789.00
deny from .specificodominio.com
allow from all

Bloccare utenti provenienti da specifici siti (deve essere abilitato il modulo mod_rewrite)

RewriteEngine on
RewriteCond %{HTTP_REFERER} sitodabloccare.com [NC]
RewriteCond %{HTTP_REFERER} sitodabloccare2.com [NC]
RewriteRule .* – [F]

Bloccare specifici bot di siti (deve essere abilitato il modulo mod_rewrite)

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^botricerca1 [OR]
RewriteCond %{HTTP_USER_AGENT} ^botricerca2 [OR]
RewriteCond %{HTTP_USER_AGENT} ^botricerca3
RewriteRule ^(.*)$ http://www.altrosito.com/

Redirezionare la navigazione

es. Redirect 302 /unadirectory http://www.sito.com/altradirectory

permanent (301) – La risorsa è stata spostata definitivamente
temp (302) – La risorsa è stata spostata temporaneamente
seeother (303) – La risorsa è stata sostituita
gone (410) – La risorsa è stata rimossa. In questo caso l’indirizzo di destinazione non va indicato