]> git.piffa.net Git - doc/.git/commitdiff
Alcune modifiche sparse *sempre a servizi)
authorAndrea Manni <andrea@andreamanni.com>
Mon, 25 May 2009 16:24:24 +0000 (18:24 +0200)
committerAndrea Manni <andrea@andreamanni.com>
Mon, 25 May 2009 16:24:24 +0000 (18:24 +0200)
e iniziata la nuova parte sul DNS Bind.

modified:   source/servizi.txt

source/servizi.txt

index 0e11f8af6ce942ec6be92144da43b97a990e88f9..f622f61cb20ee5b1d4e20184aa5303c0c4323442 100644 (file)
@@ -24,7 +24,7 @@ Solo per uso interno
 
 Impostazioni di base per la configurazione del sistema operativo e della rete nel laboratorio 208 facente parte della rete piffa.net .
 
-Qui riportati per comodita' degli studenti (e del docente che non sara' **mai piu'** costretto a ripeterli continuamente! ). Gli altri lettori potranno tenerli presenti per cercare di comprendere gli esempi nel testo. Ad esempio: quando leggerete ``10.10.208.254:3128`` saprete che si tratta del nostro *proxy http*, stara' quindi a voi sostituire i dati con gli *ip* della vostra rete.
+Qui riportati per comodita' degli studenti (e del docente che non sara' **mai piu'** costretto a ripeterli continuamente! ). Gli altri lettori potranno tenerli presenti per cercare di comprendere gli esempi nel testo. Ad esempio: quando leggerete ``10.10.208.254:3128`` saprete che si tratta del nostro *proxy http*, stara' quindi a voi sostituire i dati con gli equivalenti *ip* della vostra rete.
 
 Rete
 ------
@@ -38,15 +38,11 @@ rete              10.10.208.0/24
 netmask              255.255.255.0
 broadcast     10.10.208.255
 gateway              10.10.208.254
-gateway              10.10.208.250
-             persistente
 DNS          10.10.208.254
-DNS          10.10.208.250
-             persistente
 proxy http    10.10.208.254:3128
 ============= ================
 
-Sul portatile di Andrea, corrispondente all'ip 254, gira un DHCP, proxy http e mirror di Debian ( http://debian.piffa.net). Se Andrea non e' in aula (o ancora peggio non c'e' il suo portatile Net) gli studenti dovranno darsi un indirizzo ip manualmente e disabilitare il proxy (che pero' e trasparente, quindi fate pure come se non ci fosse ;) . Questo in attesa che si sappia se sara' nuovamente utilizzabile il vecchio server Bender.
+Sul portatile di Andrea, corrispondente all'ip 254, gira un DHCP, proxy http e mirror di Debian ( http://debian.piffa.net). Se Andrea non e' in aula (o ancora peggio non c'e' il suo portatile Net) gli studenti dovranno darsi un indirizzo ip manualmente e disabilitare il proxy (che pero' e trasparente, quindi fate pure come se non ci fosse ;) . Ad oggi il *lab208* e' servito dal server Bender (254 o 248) che ha ripreso le sue vecchie funzioni.
 
 interfaces
 ~~~~~~~~~~~~~~~
@@ -63,7 +59,7 @@ Segue un esempio del file di configurazione della scheda di rete con configurazi
        # La prima scheda di rete (se si chiama eth0)
        # (network, broadcast and gateway sono optional)
        iface etho inet static
-         # esempio con dhcp
+         # esempio con dhcp:
          # iface etho inet dhcp
         address 10.10.208.101
         netmask 255.255.255.0
@@ -78,6 +74,8 @@ Controllare il nome della propia scheda di rete: a volte *udev* rinomina la prim
 
 Se si usano *schede di rete virtuali* ( eth0:1 , eth0:1 , ...) ricordarsi che queste dipendono dalla scheda fisica a cui sono associate: abbattere con ``ifconfig down eth0`` la scheda principale fara' cadere anche queste. Tornando ad attivare la schda principale con ``ifconfig eth0 up`` la virtuale tornera' attiva: nel caso voleste disabilitarla dovrete quindi sempre abbattere manualmente la scheda virtuale *prima* della scheda reale.
 
+I DNS vanno indicati nel file ``/etc/resolv.conf`` , la cui sintassi e' spiegata al punto 4.6 .
+
 Bash completion
 -------------------
 
@@ -124,7 +122,7 @@ Vim
 
 Vim e' l'editor di testo preferito dai sistemisti, quindi sara' conveniente impostare fin da subito alcune impostazioni per renderlo piu' comodo.
 
-Assicurarsi che sia installata nel sistema la versione completa dell'editor ``vim`` nstallando il  pacchetto vimi::
+Assicurarsi che sia installata nel sistema la versione completa dell'editor ``vim`` installando il  pacchetto ``vim``::
 
        # apt-get install vim
 
@@ -186,12 +184,15 @@ Assicurarsi che sia installata nel sistema la versione completa dell'editor ``vi
       source /etc/vim/vimrc.local
     endif                                             
 
+
+I principianti faranno bene ad esercitarsi con ``vimtutor it``.
+
 VNC
 ------------
 
-I Virtual Network Computing (o VNC) sono software di controllo remoto e servono per amministrare il proprio computer a distanza o visuallizare la sessione di lavoro di un altro computer sul proprio a scopo didattico. Installando un server VNC sulla propria macchina ed impostando una opportuna password si consente ai client VNC di ricevere una immagine dello schermo ed eventualmente di inviare input di tastiera e mouse al computer server (durante le lezioni questo non e' possibile per gli studenti, solo Andrea esegue i comandi). In pratica si può gestire il computer server da un'altra postazione, come se fosse il proprio computer fisico.
+I Virtual Network Computing (o VNC) sono software di controllo remoto e servono per amministrare il proprio computer a distanza o visuallizare la sessione di lavoro di un altro computer sul proprio a scopo didattico. 
 
-Scaricare il pacchetto ``xtightvncviewer`` e lo script ``guarda.sh`` in una posizione (collocazione nel *path* degli utenti, es ``echo $PATH`` per visualizzare l'attuale path ) comoda per gli utenti ( in genere ``/bin`` ), rndere eseguibile lo script.
+Scaricare il pacchetto ``xtightvncviewer`` e lo script ``guarda.sh`` in una posizione (collocazione nel *path* degli utenti, es ``echo $PATH`` per visualizzare l'attuale path ) comoda per gli utenti ( in genere ``/bin`` ), rendere eseguibile lo script.
 
 Procedura::
 
@@ -212,7 +213,7 @@ I pacchetti installati generalmente [#]_ per poter seguire le lezioni sono::
 
        kde-core kdm kde-i18n-it xorg vim less xtightvncviewer 
 
-.. [#] ``kde-core`` e' piu' leggero del pacchetto ``kde``, esiste anche un equivalente ``gnome-core gnome`` e il log-in manager ``gdm`` per il l'ambiente grafico Gnome.    
+.. [#] ``kde-core`` e' piu' leggero del pacchetto ``kde``. Esiste un equivalente ``gnome-core gnome`` per chi preferisce gnome, nel caso si potrebbe installare  il log-in manager ``gdm`` al posto di ``kdm``.    
 
 Apt configurazione
 ---------------------
@@ -242,15 +243,16 @@ Gli archivi sono generalmente:
     
     # Archivio principale debian via http su piffa.net,
     # non funziona al difuori dell'aula dei corsi
-    deb http://debian.piffa.net/debian/ Lenny main
-    # deb http://debian.piffa.net/debian/ Lenny  non-free contrib
+    deb http://debian.piffa.net/debian/ lenny main
+    # Sono diponibili anche i rami non-free contrib
+    # deb http://debian.piffa.net/debian/ lenny  non-free contrib
     
     # Mirror da kernel.org da usare a casa:
-    deb http://mirrors.eu.kernel.org/debian/ Lenny main
+    deb http://mirrors.eu.kernel.org/debian/ lenny main
     
     # Security dal sito principale
-    deb http://security.debian.org/ Lenny/updates main
-    deb-src http://security.debian.org/ Lenny/updates main
+    deb http://security.debian.org/ lenny/updates main
+    deb-src http://security.debian.org/ lenny/updates main
     
     # Debian volatile per le cose soggette a cambiamenti non legati
     # a dinamiche di sicurezza
@@ -274,9 +276,9 @@ Si tenga conto che se si imposta un proxy per apt sul proprio portatile e tornat
 Squid
 ======
 
-Squid e' un proxy  cache http (ma anche FTP e https) robusto e strutturato, puo' essere usato sia in reti relativamente piccole grazie alla semplicita' di configurazione che in scenari piu' complessi grazie alla possibilita' di gestirne in modo granulare le risorse partendo dalle configurazioni piu' semplici per la semplice *condivisione della navigazione* internet, la gestione degli accessi, il filtraggio dei contenuti (Squid e' una applicazione che si muove nel 4' livello del modello TCP/IP a differenza di un *ipfilter* limitato al 2') nel l bilanciamento del carico tra piu' hosts.
+Squid e' un proxy  cache http (ma anche FTP e https) robusto e strutturato, puo' essere usato sia in reti relativamente piccole grazie alla semplicita' di configurazione che in scenari piu' complessi grazie alla possibilita' di gestirne in modo granulare le risorse.  Si partira' dalle configurazioni piu' semplici per la semplice *condivisione della navigazione* internet, per poi poter ocnfigurare la gestione degli accessi, il filtraggio dei contenuti (Squid e' una applicazione che si muove nel 4' livello del modello TCP/IP a differenza di un *ipfilter* limitato al 2') nel l bilanciamento del carico tra piu' hosts.
 
-Inoltre svolge la funzione di *anonymizer*:
+Inoltre Squid svolge la funzione di *anonymizer*:
        nasconde i client http alla rete internet: risulta solo il server proxy nei log dei server web frequentati dagli utenti di Squid.
 
 Cosa a volte sottovalutata, squid permette la navigazione web a una rete basata su *indirizzi ip privati* (es una 192.168.0.0/24). E se la rete privata deve *solo navigare* in internet, non serve un *NAT* od altro, basta il solo Squid. Per altro non servira' neanche un servizio DNS dato che *sara' il solo squid a risolvere i nomi di dominio* per i suoi client http.
@@ -636,12 +638,12 @@ Prima di tutto per poter impostare i virtual hosts dovete avere un server DNS ch
          Utilizzare un servizio come ad es: https://www.dyndns.com/ per mappare nomi di dominio sul proprio indirizzo ip, comodo ad esempio se si dispone di un indirzzo ip pubblico (anche se dinamico) per la propria connessione ad internet.
 
         *Dnsmasq* (DNS server)
-         Utilizzabile a livello locale per fare dei test, utilizzando direttive come: ``address=/davide.piffa.net/10.10.208.178``
+         Utilizzabile al livello della rete locale per fare dei test, utilizzando direttive come: ``address=/davide.piffa.net/10.10.208.178``
 
         ``/etc/hosts``
-         Per prove *strettamente a livello locale* potete impostare i nomi dei vostri virtual server nel file /etc/hosts .
+         Per prove sul propio sistema potete impostare i nomi dei vostri virtual server nel file /etc/hosts .
 
-::
+Query DNS con ``dig``::
 
     # dig 177.piffa.net
 
@@ -657,12 +659,8 @@ Prima di tutto per poter impostare i virtual hosts dovete avere un server DNS ch
     ;; ANSWER SECTION:
     177.piffa.net.          0       IN      A       10.10.208.177
     
-    ;; Query time: 12 msec
-    ;; SERVER: 10.10.208.254#53(10.10.208.254)
-    ;; WHEN: Wed May  6 12:27:08 2009
-    ;; MSG SIZE  rcvd: 47
 
-La parte interessante e' ``177.piffa.net.          0       IN      A       10.10.208.177`` . Il nome di dominio 177.piffa.net viene risolto sull'ip 10.10.208.177 , nel nostro Apache (che risponde all'ip 10.10.208.177 ) dovra' essere disponibile un virtual host che corrisponde al nome ``177.piffa.net`` .
+La parte interessante e' l'*ANSWER SECTION*: ``177.piffa.net.          0       IN      A       10.10.208.177`` . Il nome di dominio 177.piffa.net viene risolto sull'ip 10.10.208.177 , nel nostro Apache (che risponde all'ip 10.10.208.177 ) dovra' essere disponibile un virtual host che corrisponde al nome ``177.piffa.net`` (``ServerName``) .
 
 Virtual host
 ~~~~~~~~~~~~~~
@@ -707,9 +705,9 @@ Potrebbe essere utile modificare le impostazioni di una intera directory, ad ese
 Negoziazione accessi
 ---------------------
 
-Tipicamente quando si installa un server web il proprio desiderio e' di dare accesso ai materiali disponibili al maggior numero di visitatori possibile. Talvolta pero' puo essere utile o necessario limitare gli accessi, ad esempio per escludere un *bot* indesiderato che scansiona ininterottamente le nostre pagine o per creare una *Area Riservata* i cui materiali non devono essere disponibile a tutti.
+Tipicamente quando si installa un server web il proprio desiderio e' di dare accesso ai materiali disponibili al maggior numero di visitatori possibile. Talvolta pero' puo essere utile poter limitare questi accessi, ad esempio per escludere un *bot* indesiderato che scansiona ininterottamente le nostre pagine o per creare una *Area Riservata* i cui materiali non devono essere disponibile a tutti.
 
-Limiti su base ip
+Limiti su base IP
 ~~~~~~~~~~~~~~~~~~~~~~
 
 La forma piu' semplice di restrizine degli accessi e' su base degli indirizzi IP dei client: tipicamente i siti web sono settati per dare accesso a chiunque::
@@ -717,18 +715,19 @@ La forma piu' semplice di restrizine degli accessi e' su base degli indirizzi IP
         <VirtualHost *:80 >
                # ...
                <Directory "/var/www/177.piffa.net">
-               Order allow,deny
-               Allow from all
+                 Order allow,deny
+                 Allow from all
                </Directory>
         </VirtualHost>
 
 Potremmo negare l'accesso a uno o piu' indirizzi IP in questo modo::
 
         <VirtualHost *:80 >
+               # ...
                <Directory "/var/www/177.piffa.net">
-               Order allow,deny
-               Allow from all
-               Deny from 192.168.0.1
+                 Order allow,deny
+                 Allow from all
+                 Deny from 192.168.0.1
                </Directory>
         </VirtualHost>
 
@@ -741,13 +740,16 @@ Ora l'IP 192.168.0.1 non potra' piu' accedere ai materiali dell'intero sito virt
         </Directory>
 
 In questo modo solo la classe IP ``192.168.0.0/24`` potra' accedere alla directory ``/limitata``
-Si tenga pero' conto che e' relativamente facile per un malintenzionato cambiare il propio indirizzo ip, oppure collegarsi da un altra zona. Meno facile e' accedere ad una classe privata trovandosi all'esterno di questa, ma e' comunque possibile mandare delle richieste ``GET`` per cercare di mandare in Denial Of Service il webserver.
+Si tenga pero' conto che e' relativamente facile per un malintenzionato cambiare il propio indirizzo ip, oppure collegarsi da un altra zona. Meno facile e' accedere ad una classe privata trovandosi all'esterno di questa, ma ci sono comunque soluzioni piu' eleganti.
 
 
 User Authentication
 ---------------------
 
-A volte conviene negoziare gli accessi ad un area di un sito tramite autenticazione basata sull'accopiata *nome utente / password*. Questo puo' venire utile per creare una area download *intranet*, alla quale possano accedere solo gli utenti previsti a prescindere dagli indirizzi IP dei loro client. Per quanto esistano soluzioni piu' granulari e sofisticate per ottenere questo, *mod-auth* puo'essere sufficente. E mod auth non richiede l'installazione di software aggiuntivi.
+Si puo' negoziare gli accessi ad un area del sito tramite autenticazione basata su *nome utente / password*. Questo puo' venire utile per creare una area download *intranet*, alla quale possano accedere solo gli utenti previsti a prescindere dagli indirizzi IP dei loro client. 
+
+Tramite il modulo di Apache *mod-auth* e' possibile implementare questo paradigma, per quanto esistano soluzioni piu' granulari e sofisticate, che richiedono pero' l'implementazione di interpreti di linuguaggi di programmazione, criptazione delle passwords, gestione degli utenti ed eventualmente delle sessioni. 
+Mod auth non richiede l'installazione di niente di tutto questo.
 
 
 link: http://www.apacheweek.com/features/userauth
@@ -755,7 +757,7 @@ link: http://www.apacheweek.com/features/userauth
 Definire la cartella
 ~~~~~~~~~~~~~~~~~~~~~~
 
-Decidere quale sara' il *path* della cartella da sottoporre ad autentizazione:(e creiamo la cartella):
+Decidere quale sara' il *path* della cartella da sottoporre ad autentizazione:
 
        ``mkdir /var/www/177.piffa.net/privata``
 
@@ -775,11 +777,11 @@ Creiamo (con il *flag* ``-c``) il file ``/home/utente/passwords`` con l'utente `
 Configurazione di Apache
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Ora possiamo passare alla configurazione vera e propria di Apache, ma con una novita': andremo a inserire la voce in un ``.htaccess`` invece che modificare il file di impostazione del virtual-host.
+Ora possiamo passare alla configurazione vera e propria di Apache, ma con una novita': andremo a inserire la voce in un ``.htaccess`` invece che modificare (tramite una direttiva ``<Directory>`` ) il file di impostazione del virtual-host.
 
 Questo per motivi pratici: solo l'utente *root* puo' modificare l'impostazione del virtual host nel file ``/etc/apache2/sites-enabled/177.piffa.net``, ma spesso il motivo per cui creiamo i virtual hosts e' ospitare i siti di altri utenti, che possono solo pubblicare (generalmente tramite *FTP*) i loro documenti nella loro *DocumentRoot*, senza poter quindi modificare in alcun modo la configurazione del virtual host.
 
-Dando agli utenti la possibilita' di modificare (*AllowOverride*) autonomamente alcuni parametri (in questo caso solo l'*AuthConfig*) relativi al funzionamenteo del loro spazio web ci togliera' l'incombenza di dover intervenire suii vari virtual host.
+Dando agli utenti la possibilita' di modificare (*AllowOverride*) autonomamente alcuni parametri (in questo caso solo l'*AuthConfig*) relativi al funzionamenteo del loro spazio web ci togliera' l'incombenza di dover intervenire continuamente sui vari virtual host.
 
 Abilitiamo l'AllowOverride nel file di configurazione del virtual host per la sola directory ``privata``::
 
@@ -798,13 +800,11 @@ Ora sara' possibile, anche per l'utente di sistema, creare un fie ``.htaccess``
 
 /var/www/177.piffa.net/privata/.htaccess ::
 
-       # Questo file viene incluso
-       # nella configurazione del sito web
        # Messaggio visualizzato al prompt per l'autenticazione
        AuthName "Area privata soggetta ad autentizazione"
        # tipo di autenticazione da usarsi
        AuthType Basic
-       # File generato precedentemente con htpasswd
+       # File precedentemente generato con htpasswd
        AuthUserFile  /home/utente/passwords
        
        # Negoziazione degli accessi
@@ -814,6 +814,20 @@ Ora sara' possibile, anche per l'utente di sistema, creare un fie ``.htaccess``
 
 Si noti che non e' necessario fare ripartire Apache per onorare i cambiamenti (un utente non avrebbe la possibilita' di farlo!).
 
+Oltre a ``valid-users`` si potrebbe scegliere di usare la formula ``users``  che permette di elencare esplicitamente gli utenti::
+       require user pippo pluto 
+
+L'utente *paperino* che fosse comunque presente nel file generatoda htpasswd non potrebbe accedere alla risorsa.
+
+Nel caso ci foosero molti utenti conviene gestirli tramite *gruppi*::
+       require group staff studenti
+
+I gruppi vengono definiti in un file in modo simile a ``/etc/groups`` per gli utenti di sistema::
+
+       staff:andrea sara
+       studenti: lucap federico luca
+
+da richiamare tramite la direttiva ``AuthGroupFile``.
 
 Cavets
 -----------
@@ -1139,10 +1153,53 @@ Questo pero' potrebbe essere problematico se un altro servizio, ad esempio il DH
 Oppure potrebbe essere il nostro *PPP client* (per la connessione ADSL) a intervenire sul file ``//etc/resolv.conf``, si modifichi quindi ``/etc/ppp/peers/dsl-provider`` commentando ``usepeerdns``. Se la vostra connessione ad internet e' ADSL raramente dovreste aver bisogno di cambiare i DNS una volta impostati (a meno che non usiate un portatile!).
 
 
-DHCPd
----------
+Bind : DNS Autoritativo
+===========================
+
+Le soluzioni viste possono bastare per la rete locale o per fare delle prove, ma prima o poi verra' il momento in cui si e' chiamati a gestire dei domini su internet: lo standard e' da sempre *Bind* ( demone *named*), ora alla versione 9.
+
+Installare i pacchetti::
+       
+       bind9
+
+DNS cache
+-------------
+
+Bind appena installato funzionera' come DNS cache: si faccia un test con un ``dig @localhost`` . Bind a diffrenza di Dnsmasq e' autonomo: non ha bisogno di forwardare (inoltrare) le query a un DNS esterno: queste verranno risolte direttamente da Bind partendo dai *DNS root servers*.  
+
+E' comunque possibile impostare dei DNS forwarders, tipicamente i DNS server forniti dal propio provider, per velocizzare le query:
+
+/etc/bind/named.conf.options  (riga 13)::
+
+       forwarders {
+                        10.10.208.254;
+                  }; 
+
+Nel caso si voglia usare Bind solo come server DNS cache per la propia LAN senza ospitare delle zone DNS pubbliche sara' il caso di limitare gli accessi al server alla sola LAN:
+
+/etc/bind/named.conf.options  (riga 19)::
+        
+        // Se il propio server ha ip 10.10.208.254 
+        // sulla rete LAN privata:
+        listen-on { 10.10.208.254; }
+
+E non si lasci il server in ascolto su uno degli eventuali indirizzi IP pubblici.
+
+Se questo non fosse possibile si puo' sempre lavorare su una *acl*:
+
+/etc/bind/named.conf ::
+        
+        acl "localnet" {
+                212.22.136.0/24 ; 127.0.0.0/8 ;
+                } ;
+
+Per poi aggiungere all'interno della stanza options la direttiva che abilita' l'entita' ``localnet``:
+
+/etc/bind/named.conf.options ::
+
+        allow-query {"localnet" ;} ;
+
 
-Dnsmasq puo' lavorare anche come DHCP server per la vostra LAN.
 
 Samba
 ======