Il servizio offerto da http://telnet.informaticalibera.net può essere allestito facilmente utilizzando il sistema NLNX, con la dovuta configurazione. In questo capitolo si descrive in che modo è organizzato internamente il servizio http://telnet.informaticalibera.net, proprio per favorirne la «clonazione» in altri contesti.
Per il servizio di http://telnet.informaticalibera.net sono coinvolti due elaboratori, dei quali uno solo è in comunicazione con l'esterno.
L'elaboratore che a sinistra appare indicato con la lettera «A», è un servente realizzato con NLNX, per vari tipi di servizi, in particolare funziona da firewall e da NAT, separando la rete esterna dalla rete locale. L'elaboratore a destra, indicato con la lettera «B», si trova nella rete locale, come si può vedere dall'indirizzo IPv4, il quale appartiene all'insieme riservato per le reti private. Questo secondo elaboratore è privo di unità di memorizzazione di massa (dischi, memorie solide e simili) e viene avviato dalla rete, attraverso i servizi offerti dall'elaboratore «A».
Il sistema operativo avviato dal secondo elaboratore è sempre NLNX, nella versione in sola lettura avviato dalla rete, come descritto nella sezione u56. |
L'elaboratore «A» mette in atto tre ridirezioni di traffico TCP, per mettere in contatto l'elaboratore «B» con l'esterno: quando viene richiesta la porta 23 presso l'elaboratore «A» (TELNET), la connessione viene trasferita all'elaboratore «B», presso la stessa porta; quando viene richiesta la porta 2 222 presso l'elaboratore «A», la connessione viene trasferita all'elaboratore «B», presso la porta 22 (SSH); quando viene richiesta la porta 8 080 presso l'elaboratore «A», la connessione viene trasferita all'elaboratore «B», presso la porta 80 (HTTP).
Per attuare questa ridirezione, nel file /etc/init.d/nlnx.network
dell'elaboratore «A», la variabile di ambiente GENERIC_FILTER riceve la stringa «false», in modo da personalizzarne il funzionamento. In questo caso particolare, si trova il codice seguente:
|
Come già accennato nel capitolo, l'elaboratore «B» si avvia dalla rete, utilizzando un sistema NLNX. Per questo NLNX prevede che si possa procedere soltanto nell'ambito di una rete locale, condividendo le directory personali e la gestione delle utenze dall'elaboratore che offre già il servizio di avvio del sistema. Pertanto, l'elaboratore «A» deve offrire tutto ciò che serve al funzionamento dell'elaboratore «B», ma deve essere in grado di distinguere tra le utenze privilegiate, le quali possono accedere direttamente all'elaboratore «A», dalla rete locale o dall'esterno tramite SSH, rispetto alle utenze di tutori e pupilli, le quali possono accedere attraverso TELNET, per essere però ridirette all'elaboratore «B».
In questa fase si vuole considerare solo la configurazione del DHCP e del servizio PXE, per l'avvio dalla rete, fornendo i parametri di avvio del kernel necessari alla configurazione corretta dell'elaboratore «B».
Prima di tutto, è necessario che il servizio DHCP offerto dall'elaboratore «A» associ univocamente l'interfaccia di rete dell'elaboratore «B» all'indirizzo IPv4 stabilito, ovvero 172.21.254.23. Pertanto, con il comando nlnxrc dhcp_server config è stato annotato un abbinamento simile a quello successivo:
|
Nel file /etc/dhcp3/dhcpd.conf
ciò si traduce nella direttiva seguente:
|
Quindi si passa alla definizione del file /var/lib/tftpboot/pxelinux/pxelinux.cfg/AC15FE17
. il nome AC15FE17
rappresenta in esadecimale l'indirizzo IPv4 172.21.254.23, pertanto questo file diventa la configurazione personalizzata dell'elaboratore con tale indirizzo:
|
Si possono vedere delle opzioni di avvio insolite, specifiche di NLNX, il cui significato viene descritto nell'elenco seguente:
n_no_way_out=1
Il sistema avviato con questa opzione, configura un firewall interno in cui disabilita le connessioni verso l'esterno, rivolte a servizi non vitali.
n_reboot=05:30+13:30
Viene innescato il riavvio dell'elaboratore alle 5:30 e alle 13:30 di ogni giorno.
n_lpr_directory=/home/guestrooms/print
Si stabilisce che la stampa deve essere ridiretta verso file PDF, da creare nella directory /home/guestrooms/print/
.
Il servizio in questione serve a offrire a un gran numero di persone, anche minorenni, accesso a un elaboratore. Una cosa che si deve cercare di evitare è di permettere l'accesso, anche erroneamente, ai dati personali di utenti che utilizzano i servizi dell'elaboratore «A» al di fuori del conteso didattico di studio che riguarda invece gli utenti tutori e pupilli. Per cercare di ovviare a questo problema, le utenze di tutori e pupilli hanno una directory personale che discende dal percorso /home/guestrooms/
, mentre le utenze si trovano in percorsi diversi, anche se discendenti da /home/
.
L'elaboratore «A», oltre alla gestione delle utenze, gestisce la condivisione delle directory personali che si articolano tutte da /home/
. Nel file /etc/exports
dell'elaboratore «A» si fa in modo che l'elaboratore «B» possa innestare solo il percorso /home/guestrooms/
, rimanendo così all'oscuro di tutto il resto del contenuto della directory /home/
:
|
Come si vede dalla porzione mostrata del file /etc/exports
, tutti gli elaboratori con indirizzi del tipo 172.21.*.*, possono innestare la directory /home/guestrooms/
, mentre la directory /home/
può essere innestata direttamente solo da una parte che ha indirizzi del tipo 172.21.*.*.
In pratica, il sistema NLNX avviato dalla rete, prima tenta di innestare la directory /home/
, poi, non riuscendoci, prova con /home/guestrooms/
.
Presso l'elaboratore «A» si accede attraverso il protocollo HTTP, per la gestione delle utenze e per funzioni simili. Per questo scopo sono previsti alcuni script e programmi nella distribuzione di NLNX, collocati nella directory /etc/script.cgi/
, ma il servente HTTP (Mathopd) va configurato di conseguenza. L'estratto seguente del file di configurazione /etc/mathopd.conf
mostra le porzioni significative al riguardo:
|
Il programma nlnxrc.cgi acquisisce i privilegi dell'utente root (è configurato come SUID-root) e quindi avvia lo script nlnxrc.su.cgi. Questo script è responsabile della gestione delle utenze e ci si avvale del file /etc/nlnx/CGI_PASSWD
per riconoscere gli utenti tutori.
Lo script home_guestrooms_log non richiede privilegi particolari e si occupa di visualizzare il contenuto della directory /home/guestrooms/log/
, assieme ai suoi file.
Il programma tutors_and_pupils.cgi acquisisce i privilegi dell'utente root per avviare lo script tutors_and_pupils.su.cgi, il quale produce l'elenco dei tutori e dei pupilli, assieme a tutti i riferimenti ai documenti pubblicati dagli utenti rispettivi. Lo script richiede i privilegi dell'utenza amministrativa, per poter leggere alcuni file contenuti nelle directory personali degli utenti.
Download PuTTY
«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net