reti di calcolatori e sicurezza
“Configurare il web-server Apache”
a cura di
Luca Sozio
Un piccolo ripasso..
HTTP: hypertext transfer protocol
●
●
E il protocollo dello stato di applicazione del web
L'http è implementato in due programmi: un programma client e uno
server
–
client: il browser richiede, riceve, “mostra” i Web objects
–
server: il Web server invia gli oggetti a risposta delle richieste
Un piccolo ripasso..
L'HTTP usa il TCP come protocollo di trasmissione
vediamo in breve come funziona:
●
Il client inizia una connesione TCP al server, sulla porta 80(di default)
●
Il server accetta la connessione TCP del client
●
●
Vengono quindi scambiati messaggi HTTP tra browser (HTTP client) e il
Web server (HTTP server)
La connessione TCP viene chiusa
Panoramica
●
●
Spesso però è' desiderabile dispensare contenuti in funzione
dell'identità degli utenti
L'HTTP fornisce due meccanismi per aiutare il server ad identificare gli
utenti:
-
AUTENTICAZIONE
-
COOKIE
Autenticazione
Spesso molti siti ci richiedono agli utenti per l'accesso di fornire un
username e una password per poter accedere a contenuti del server.
In questa presentazione ci si riferirà a questi requisiti nel parlare di
AUTENTICAZIONE.
La richiesta e la ricezione dell'autorizzazione avviene spesso usando
speciali intestazioni e codici di stato dell'HTTP.
Ma vediamo un'esempio per capire meglio...
Autenticazione
●
●
Nel processo di autenticazione il client invia un messaggio di richiesta,
il server risponde con un corpo dell'entità vuoto e un codice di stato
401 Authorization Required. In questo messaggio il server include
l'intestazione WWW-Authenticate:che specifica i dettagli su come
eseguire l'autenticazione.
Il client riceve il messaggio di risposta e suggerisce all'utente di inserire
username e password. Il client spedisce il messaggio di richiesta ma
con in più una linea di intestazione Authorization:,che comprende
username e password inseriti dall'utente
- n.b. username e password sono messi nella cache del browser
Autenticazione: il SERVER
●
●
●
Apache è il server web più usato al mondo
Apache, quando installato, sarà in esecuzione con le impostazioni di
default, alcuni di questi parametri verranno modificati per renderli adatti
alle nostre esigenze.
Il file di configurazione: /etc/httpd/conf/httpd.conf
Creazione di Aree Private
●
●
●
Apache da la possibilità di creare delle sezioni di un sito il cui accesso
è consentito solo ad alcuni utenti a seguito dell'immissione di una login
e di una password:
Creiamo una directory da proteggere
/var/www/html/privato
mkdir
Per applicare regole di autenticazione alla cartella bisogna intervenire
sul file di configurazione di apache
<Directory "/var/www/html/privato">
AllowOverride All
</Directory>
Il file .htaccess
●
●
●
All'interno della cartella privato va creato un file .htaccess
AuthName "Area Privata"
AuthType Basic
AuthUserFile /etc/httpd/webpasswd
require valid-user
Procediamo quindi alla creazione degli utenti:
touch /etc/httpd/webpasswd
e all'inserimento degli utenti
htpasswd /etc/httpd/webpasswd nome nuovo utente
Sottodirectory private
●
●
●
Supponiamo di creare due sottodirectory private “reti” e “sicurezza”
mkdir /var/www/html/privato/reti
mkdir
/var/www/html/privato/sicurezza
In ognuno di essi andrà creato un file .htaccess
AuthName
"Area Privata"
AuthType Basic
AuthUserFile /etc/httpd/webpasswd
require user utente1
utente2
Se il numero di utenti dovesse crescere in modo elevato ed alcuni di
questi richiedessero l'accesso ad entrambe le directory invece che
aggiungere i nomi manualmente si può utilizzare una nuova direttiva:
require Group che permette di suddividere gli utenti per gruppi.
Conclusioni
Andiamo a vedere quanto detto.
●
●
L'HTTP esegue una forma di autenticazione piuttosto debole, che non è
difficile da agirare
Esistono schemi di autenticazione più robusti e sicuri per l'autenticazone
- Apache-ssl
- Crittografia a chiave pubblica
- Crittografia a chiave simmetrica
- Firma digitale
Scarica

presentazioneSOZIO