Apache è il programma Web server per antonomasia: il suo scopo è ospitare le risorse WWW (pagine HTML, immagini e via discorrendo), dialogare con le tecnologie server-side (allo scopo di creare contenuti on-demand) e comunicare con i browser remoti conformemente al protocollo HTTP (e sue estensioni), al fine di fornir loro tali risorse.
Lato server, i file delle risorse disponibili sono fisicamente salvati in directory del filesystem: su Debian/Ubuntu l'albero di directory predefinito sotto il controllo di Apache è /var/www/
.
Per poter accedere ai dati lì contenuti, i browser devono connettersi al server Apache, da remoto, via rete, di solito alla porta 80 - o 443 per l'SSL.
Il Web server può essere raggiunto tramite il suo indirizzo IP o relativo nome simbolico (es.: http://www.mio_server.com/mia_applicazione
), nome tradotto nell'indirizzo IP corrispondente dai server DNS, trasparentemente all'utente.
Apache permetterà lo scaricamento diretto dei soli file contenuti nella /www (per default) ed, indirettamente, di tutti i file che la tecnologia server-side (per noi PHP) gli fornirà.
Ciò premesso, ci occuperemo di:
- verificare e rendere più sicura l'installazione di Apache, nonché meno passibile di attacchi DoS;
- installare un sito o programma Web e configurare correttamente i permessi delle directory relative;
- utilizzare un canale sicuro SSL per lo scambio di dati coi client.
Per la tecnica del reverse proxying, vedere l'ultimo capitolo.
Tratteremo specificatamente di Apache 2.2 (certo, la stragrande maggioranza di ciò che diremo è valida per ogni 2.x). Data la sua vastità, infine, gli argomenti trattati sono da intendersi come breve cenno alla sicurezza del software, e nulla più.