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 mkdir /var/www/html/privato
●
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
●
L'HTTP esegue una forma di autenticazione piuttosto debole, che non è difficile da agirare
●