LeoBenelli
Personal WebPage


WEBSERVER

 

Per lanciare il demone, si esegue httpd, i files di configurazione vengono cercati nella directory predefinita, se dovesse essere necessario usare altri files di configurazione usare httpd -f <percorso al file di configurazione httpd.conf>

I files necessari alla configurazione sono :

httpd.conf
access.conf
srm.conf


anche se le versioni recenti riuniscano tutti i files in httpd.conf.

Una volta lanciato il demone tra i processi ci dovrebbero essere una serie di istanze di httpd, una con proprietario root e le altre con l'utente specificato in httpd.conf in User.

Ed usando un browser e scrivendo http://localhost o http://<nome host> si dovrebbero vedere le pagine impostate nella directory root del web server.

Se ci sono problemi controllare il file error_log nella directory /var/log/httpd. Per rilevare le azioni di transfer del server controllare il file access_log nella directory /var/log/httpd.

Per fermare il server usare kill -TERM <pid processo> ( e' possibile trovarlo in /var/run/httpd.pid ).

Per fare rileggere i file di configurazione e riavviare il server web usare kill -HUP <pid processo>.
per eseguire un -HUP terminando prima le richieste in corso usare kill -USR1 <pid processo>.
Per definire le autorizzazioni e i percorsi logici e' necessario modificare il file access.conf. le sezioni sono fatte tramite i tag <directory> </directory> :
<directory /home/httpd/html>
DIRETTIVE
</directory>


In questo esempio le direttive specificate sono applicate per la directory /home/httpd/html.

Tra le direttive utilizzabili ci sono :

 

Direttive

Descrizione

Options

None

Disabilita tutti i permessi

All

Considera come se specificate tutte le opzioni

FollowSymLinks

Abilita il permesso di usare i link simbolici

ExecCGI

Permette l'esecuzione di script CGI

Indexes

Permette la visualizzazione sottoforma di directory

Includes

Abilita i Server Side Includes

SymLinksIfOwnerMatch

Permette di avere la sicurezza che i link simbolici attivabili siano solo quelli solo dove il possessore del link e quello del target del link coincidono. Questo evita che gli utenti creino link solo ai propri file e non quelli di sistema.

AllowOverride

Specifica quali opzioni possono essere prevaricati delle specifiche di accesso delle singole directory con l'uso di .htaccess

None

Non permette prevaricazioni

All

Tutte le direttive possono essere prevaricate

AuthConfig

Consente l'uso di direttive di autorizzazione

Limit

Permette l'uso di direttive di controllo sugli accessi

Indexes

Consente di ottenere il listato del contenuto

Fileinfo

Permette l'uso di direttive di controllo del tipo di documento

Direttive di Autorizzazione con identificazione utente

E' possibile condizionare la visualizzazione di una directory tramite parametri di autorizzazione.

AuthName

Nome associato all'autorizzazione

AuthType

Tipo di autorizzazione (solitamente Basic

AuthUserFile

Percorso al file con i nomi e password degli utenti.
Questo file e' generato dal comando, htpasswd :
htpasswd -c <nome file> <utente> <password>(crea un file <nome file> e aggiunge l'utente con la <password>).
Se non specificato il parametro -c accoda al <nome file> specificato. Esistono altri parametri che permettono di specificare il metodo da usare per la criptazione delle password.

AuthGroupFile

Percorso al file con l'associazione degli utenti a uno o piu' gruppi. Tale file e' creato manualmente con la sintassi :
<gruppo1>: <utente1> <utente2> <utente3>
<gruppo2>: <utente1> <utente2><utente3>

Require user

Elenca gli utenti abilitati alla visualizzazione della directory.
Es. require user utente1 utente3

Require group

Elenca i gruppi abilitati alla visualizzazione della directory.
Es. require group gruppo2

Require valid-user

Permette a tutti gli utenti l'accesso alla directory, ma solo dopo l'autentificazione.

Un esempio di quanto esposto e' :
<Directory /usr/doc>
......
AuthName "Directory Documenti"
AuthType Basic
AuthUserFile /etc/httpd/conf/xpwd
AuthGroupFile /etc/httpd/conf/xgrp
Require user user1
Require group grp1
</Directory> require valid-user (le direttive require sono da usare alternativamente alle altre)
.......

Direttive di Autorizzazione in base agli host.

E' possibile limitare l'accesso a particolari host tramite una serie di direttive:

deny from host
allow from host

E' possibile specificare il nome dell'host che a cui si vuole limitare o permettere l'accesso.
In questo caso pero' e' necessario abilitare la direttiva di gestione nomi host al posto dell'IP : HostNameLookUps in httpd.conf.
Es. : deny from .host.com (non permette l'accesso a tutti gli utenti del dominio host.com)

deny from all
allow from all

E' possibile limitare o permettere l'accesso a tutti indistintamente

deny from <IP>
allow from <IP>

E' possibile specificare l'indirizzo IP al posto del nome Host con possibilita' di non specificare completamente l'IP per eliminare intere reti. Es. 192.168.

Order deny,allow
Order allow,deny

Con questa direttiva si puo' decidere se considerare prima i permessi o le restrizioni.
Es.
Order deny,allow (Legge prima le restrizioni poi i permessi)
deny from all
allow from 192.168.2.1
In questo modo e' possibile negare a tutti e poi specificare chi puo' accedere o fare viceversa.

ErrorDocument

Con questa direttiva si intercettano gli errori con la sintassi :
ErrorDocument <codice di errore> <Indirizzo Pagina>
Indirizzo e' relativo alla DocumentRoot e non al filesystem come per esempio la direttiva AuthUserFile.
Es.
ErrorDocument 401 /error.html
In questo caso al verificarsi dell'errore 401 (autorizzazione non concessa) viene visualizzata la pagina error.html al posto della pagina di default del web server.

All'interno di <directory> ...</directory> e' possibile includere il tag<limit>...</limit> che permette di impostare determinate direttive solo con l'uso di metodi di accesso GET e/o POST.
Es.
<directory ...>
....
<limit GET POST>
require valid-user
</limit>
</directory>
In questo caso se viene invocato un GET o un POST richiede prima l'autentificazione.

Al posto di <directory> ...</directory> si usa <location>... </location> in caso di direttive mirate ad un URL piuttosto che ad una directory.
Es.
<Location /server-status>
SetHandler server-status
....
</Location>

Come specificato sopra e' possibile prevaricare, se autorizzato, le direttive di access.conf tramite la creazione del file .htaccess all'interno della directory.
La sintassi e' identica a quella di access.conf con solo pero' le direttive desiderate.