HTTP e servizi collegati

public_html/ u0.1

NLNX offre un servente HTTP, costituito precisamente da Mathopd che si configura con il solo file /etc/mathopd.conf. In base alla configurazione predefinita di NLNX, il servente HTTP consente la pubblicazione di documenti a partire dalla directory /var/www/, dove il file index.html va sostituito o semplicemente eliminato, e dalla directory ~/public_html/ di ogni utente.

La configurazione può essere modificata, ma per questo occorre intervenire manualmente nel file /etc/mathopd.conf.

Tabella u44.10. Script nlnxrc: funzionalità relative a servizi offerti tramite il servente HTTP.

Comando Descrizione
nlnxrc mrtg config
nlnxrc mrtg unconf
Configura o disabilita le statistiche di utilizzo delle interfacce di rete, attraverso MRTG.
nlnxrc webalizer update
Aggiorna le statistiche di accesso al servente HTTP, prodotte con Webalizer.

Impedire la pubblicazione di file personali

NLNX è organizzato per poter soddisfare le esigenze dell'attività didattica in una scuola media superiore. A tale proposito, il fatto che gli utenti possano pubblicare dei file utilizzando la directory ~/public_html/ può essere un problema, in quanto gli studenti potrebbero così passarsi facilmente dei dati.

La configurazione predefinita di NLNX è tale per cui le directory personali degli utenti hanno i permessi 17718, pari a rwxrwx--t, appartenendo all'utente root e al gruppo privato dell'utente rispettivo. In tal modo, gli utenti non hanno la facoltà di modificare i permessi della propria directory personale e non possono cancellare file o directory che non appartengono a loro stessi. Così facendo, per impedire che gli utenti possano pubblicare qualcosa attraverso il protocollo HTTP, è sufficiente che l'amministratore crei le directory ~/public_html/, appartenenti a se stesso, ma senza alcun permesso di accesso, lettura o modifica. Gli utenti, non potendo cancellare queste directory, non possono nemmeno collocarci dei file per la mancanza dei permessi necessari.

Programmi CGI

In base alla configurazione predefinita del servente HTTP, i file che hanno estensione .cgi, .pl e .sh, vengono eseguiti in qualità di programmi CGI (Common gateway interface). A titolo di esempio, nella directory /var/www/cgi/ sono disponibili alcuni file di questo tipo; per visualizzarli occorre accedere all'indirizzo http://nodo/cgi/.

PHP

NLNX dispone normalmente dell'interprete PHP. Perché intervenga l'elaborazione di tale interprete è sufficiente che i file abbiano l'estensione .php, oppure .phtml o .pht. Eventualmente, nella directory /var/www/php/ (ovvero http://nodo/php/) si trova il file test.php con il quale è possibile verificarne il funzionamento e conoscere le estensioni disponibili.

Webalizer

Attraverso lo script /etc/cron.daily/nlnx-webalizer si ottiene l'aggiornamento quotidiano delle statistiche di accesso al servente HTTP. Se Mathopd è rimasto alla sua configurazione standard di NLNX, sono accessibili all'indirizzo http://nodo/access/. Inoltre, all'indirizzo http://nodo/filter/ sono accessibili le statistiche degli accessi all'esterno, come contabilizzato da OOPS.

Per eseguire manualmente l'aggiornamento di queste statistiche si può usare il comando seguente:

nlnxrc webalizer update[Invio]

MRTG

NLNX dispone di un servizio SNMP preconfigurato per l'accesso in sola lettura, in modo da consentire di ottenere le informazioni sul traffico che attraversa le interfacce di rete locali. Inoltre è disponibile MRTG, con il quale è possibile elaborare le statistiche di tale traffico all'indirizzo http://nodo/mrtg/. Tuttavia, MRTG va configurato in modo da fare riferimento alle interfacce di rete esistenti effettivamente. Va usato il comando seguente per fissare tale configurazione:

nlnxrc mrgt config[Invio]

.------------------SNMP agent---------------------.
| Please insert a router SNMP agent address with  |
| community, like this: "COMMUNITY@ROUTER"        |
| When you have finished, select the "cancel"     |
| button.                                         |
| .---------------------------------------------. |
| |public@localhost                             | |
| `---------------------------------------------' |
|-------------------------------------------------|
|           <  OK   >      <Cancel>               |
`-------------------------------------------------'

<OK>

Dopo l'indicazione dell'elaboratore locale, si possono aggiungere altri router, come nell'esempio successivo. Al termine si deve annullare per concludere la configurazione.

.------------------SNMP agent---------------------.
| Please insert a router SNMP agent address with  |
| community, like this: "COMMUNITY@ROUTER"        |
| When you have finished, select the "cancel"     |
| button.                                         |
| .---------------------------------------------. |
| |public@192.168.1.254                         | |
| `---------------------------------------------' |
|-------------------------------------------------|
|           <  OK   >      <Cancel>               |
`-------------------------------------------------'

<OK>

...

<Cancel>

.Clean MRTG from previous data--.
| Should I remove previous data |
| inside "/var/www/mrtg/"?      |
|                               |
|-------------------------------|
|     <  Yes >   <  No  >       |
`-------------------------------'

<Yes>

L'aggiornamento delle statistiche, in base alla configurazione prodotta, avviene attraverso uno script avviato da Cron.

Accessibilità dei registri (log)

In condizioni normali, principalmente per motivi didattici, i file del registro di sistema (log) e altri file analoghi contenuti a partire dalla directory /var/log/, sono accessibili a tutti gli utenti. In tal caso (se ci sono effettivamente i permessi di accesso in lettura per tutti), è possibile leggere il contenuto di questi registri anche attraverso un programma CGI, che consente l'accesso da parte di utenti di reti private (127.0.0.1, 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16): http://nodo/cgi-bin/var_log.

Se si accede all'indirizzo http://nodo/cgi-bin/var_log si ottiene la lista del contenuto della directory /var/log/ dell'elaboratore corrispondente al nome o all'indirizzo indicato (il «nodo»); se si aggiunge la stringa ?percorso, si intende visualizzare il contenuto del percorso /var/log/percorso. Per esempio, per visualizzare il contenuto del file /var/log/syslog, si deve usare l'indirizzo http://nodo/cgi-bin/var_log?syslog, mentre per leggere il contenuto del file /var/log/oops/access.log, si deve usare l'indirizzo http://nodo/cgi-bin/var_log?oops/access.log.

L'accessibilità a questi file dipende dai loro permessi, tenendo conto che il programma CGI funziona con gli stessi privilegi del servente HTTP.

Documentazione interna

Oltre ai servizi menzionati nel capitolo, attraverso il servente HTTP è disponibile della documentazione interna: le pagine di manuale, la documentazione Info (se installata) e a2. Nella tabella successiva sono riepilogati questi e gli altri indirizzi corrispondenti alla configurazione predefinita del servizio HTTP.

Tabella u57.4. Indirizzi URI della configurazione predefinita del servente HTTP.

Indirizzo Descrizione
http://nodo/a2/
http://nodo/a2.pdf
a2
http://nodo/access/ Statistiche di accesso al servizio.
http://nodo/cgi/ Esempi pronti di programmi CGI.
http://nodo/cgi-bin/ Corrisponde alla directory /usr/lib/cgi-bin/, di cui può essere visionato il contenuto. Contiene i programmi CGI dei servizi predisposti.
http://nodo/cgi-bin/var_log Accesso ai registri del sistema (log), ammesso che siano disponibili i permessi di lettura nei file relativi.
http://cgi-bin/nodo/info2www/ Documentazione Info.
http://nodo/dwww/ Pagine di manuale e documentazione interna dei pacchetti applicativi installati.
http://nodo/filter/ Statistiche di accesso all'esterno, sotto il controllo di DansGuardian.
http://nodo/mrtg/ Statistiche del traffico di rete.
http://nodo/php/ Esempi di utilizzo del linguaggio PHP.

Esercitazioni con il linguaggio HTML

Per potersi esercitare nella realizzazione di file HTML aderenti allo standard è possibile utilizzare nsgmls, ma il menù grafico di NLNX viene in aiuto per una gestione ordinata del lavoro. Per questa funzionalità si parte da {home page}, come si vede nella figura successiva.

Figura u57.5. Funzioni del menù grafico di NLNX dedicate alla realizzazione e verifica di pagine HTML. In questo caso si viene guidati alla selezione di un file, per il suo controllo sintattico.

pagine HTML

In questo caso, il menù grafico è sensibile ai file .html e .htm, contenuti nella directory personale dell'utente e la directory ~/public_html/, ammesso che sia presente.

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net