]> git.piffa.net Git - doc/.git/blobdiff - source/servizi.txt
modified: source/servizi.txt
[doc/.git] / source / servizi.txt
index 6cb832077d8cfd41e7fce4d8035e8b4e1d8db6c1..5f0fb29a23cb7aa40fdf9493b84e38da526d738a 100644 (file)
@@ -150,7 +150,7 @@ Assicurarsi che sia installata nel sistema la versione completa dell'editor ``vi
     syntax on
     
     " If using a dark background within the editing area and syntax highlighting
-    " turn on this option as well
+    " turn on this option as well.
     set background=dark
     
     " Uncomment the following to have Vim jump to the last position when
@@ -163,14 +163,22 @@ Assicurarsi che sia installata nel sistema la versione completa dell'editor ``vi
     
     " Uncomment the following to have Vim load indentation rules and plugins
     " according to the detected filetype.
+    " This is not recommanded if you often copy and paste into vim,
+    " as it messes all the indentation.
     if has("autocmd")
       filetype plugin indent on
     endif
+
+    " This goes for comments folding: use co to expnad and zc to compress,
+    " zi to toggle on/off
+    set fdm=expr
+    set fde=getline(v:lnum)=~'^\\s*#'?1:getline(prevnonblank(v:lnum))=~'^\\s*#'?1:getline(nextnonblank(v:lnum))=~'^\\s*#'?1:0
     
     " The following are commented out as they cause vim to behave a lot
     " differently from regular Vi. They are highly recommended though.
     set showcmd             " Show (partial) command in status line.
     "set showmatch          " Show matching brackets.
+    # Ignorecase is quite userfull
     set ignorecase          " Do case insensitive matching
     "set smartcase          " Do smart case matching
     "set incsearch          " Incremental search
@@ -231,7 +239,7 @@ Questo file contiene i sorgenti da cui *apt* preleva i pacchetti da installare t
 
 Gli archivi sono generalmente:
 
-* ``deb`` per pacchetti Debian binari
+* ``deb`` per pacchetti Debian binari, pronti per l'installazione.
 
 * ``deb-src`` per i pacchetti sorgenti (quindi da compilare, come il kernel) degli stessi pacchetti binari. In genere se non compilate spesso potete evitare di tracciare i sorgenti per risparmiare tempo e banda.
 
@@ -243,11 +251,14 @@ Gli archivi sono generalmente:
     
     # Archivio principale debian via http su piffa.net,
     # non funziona al di fuori dell'aula dei corsi
-    deb http://debian.piffa.net/debian/ Lenny main
+    deb http://debian.piffa.net/debian/ lenny main
     # Sono disponibili anche i rami non-free contrib
     # deb http://debian.piffa.net/debian/ lenny  non-free contrib
+    # Sono disponibili anche le release unstable e testing
+    # deb http://debian.piffa.net/debian/ testing  main non-free contrib
+    # deb http://debian.piffa.net/debian/ sid  main non-free contrib
     
-    # Mirror da kernel.org da usare a casa:
+    # Mirror da kernel.org europa da usare a casa:
     deb http://mirrors.eu.kernel.org/debian/ lenny main
     
     # Security dal sito principale
@@ -260,7 +271,9 @@ Gli archivi sono generalmente:
     deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
     
     # Esempio di accesso a un file system locale contenente i pacchetti:
-    # deb file:/mnt/mirror Sid main non-free contrib
+    # Potete scaricarei in aula con debmirror  da debian.piffa.net
+    # un mirror locale da usare poi a casa anche senza internet
+    # deb file:/mnt/mirror sid main non-free contrib
 
 
 /etc/apt/apt.conf
@@ -1206,6 +1219,142 @@ Per poi aggiungere all'interno della stanza options la direttiva che abilita' l'
         allow-query {"localnet" ;} ;
 
 
+Ospitare una zona
+---------------------
+
+Se avete acquistato un nome di dominio e vi serve un software DNS per gestirlo Bind e' la scelta piu' diffusa. Ora vedremo come configurare una *zona* (come piffa.net) in modo che Bind sia autoritativoper questa, rispondendo alle query DNS di tutta la rete internet.
+
+
+named.conf.local
+~~~~~~~~~~~~~~~~
+
+Prima di tutti impostiamo il server bind per gestire la zona, per non fare confusione e' opportuno inserire le propie zone DNS nel file ``named.conf.local`` e non in ``named.conf``.
+
+named.conf.local::
+
+        /
+        // Do any local configuration here
+        //
+
+        // Consider adding the 1918 zones here, if they are not used in your
+        // organization
+        //include "/etc/bind/zones.rfc1918";
+
+        zone "piffa.net" {
+                type master;
+                file "/etc/bind/pz/piffa.net";
+                }
+
+type master
+        Il nostro server DNS sara' il principale, al quale poi potremo affiancare dei DNS secondari nel caso questo non sia disponibile.
+
+file "/etc/bind/pz/piffa.net"
+        Dove verranno inserite le informazioni vere e propie di questa zona.
+
+Configurazione della zona
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Ora dovremo preparare il file contenente i record DNS della zona *piffa.net*, come abbiamo indicato prima questi saranno contenuti nel file ``/etc/bind/pz/piffa.net`` . Tenere le zone dentro una sottocartella e' buona abitudine, usare ``pz`` per queste e' una vecchia abitudine.
+
+piffa.net::
+
+        ; Zona per il dominio di secondo livello piffa.net
+
+        $TTL 3D     ; 3 days
+        @                    IN SOA  ns1.piffa.net. hostmaster.piffa.net. (
+                                        200905245  ; serial
+                                        8H         ; refresh (8 hours)
+                                        2H         ; retry (2 hours)
+                                        4W         ; expire (4 weeks)
+                                        1D         ; minimum (1 day)
+                                        )
+        ;
+                                NS      ns1
+                                NS      ns2
+                                A       94.23.63.105
+                                MX      10 smtp
+                                TXT     "Piffanet main site"
+        ;
+        ns1             A       94.23.63.105
+        ns2             A       65.98.21.97
+        zoo             A       94.23.63.105
+        test.piffa.net. A       94.23.63.105
+        *.piffa.net.    A       94.23.63.105 ; *catch all domain
+        www             CNAME   zoo
+
+
+
+All'interno di questo file si possono inserire dei commenti con il carattere ``;`` (punto-e-virgola), si faccia attenzione alla rigida sintassi: apertura e chiusura delle parentesi tonde nella parte ``IN SOA``, uso del ``punto`` finale per precisare un nome di dominio specifico (*FQDN*:  Fully-qualified Domain Name) come ``test.piffa.net.`` a differenza degli altri domini di terzo livello come ``pop,imap,smtp`` .
+
+La zona inizia con una direttiva ``$TTL 3D`` (RFC 2308) che indica la durata (in questo caso tre giorni) che ogni record dovrebbe avrebbe nella cache degli altri serber DNS. Questo valore dovrebbe essere superiore a un giorno, se non modificate spesso i valori dei vostri record DNS e' consigliabile settarlo a 2/3 settimane in modo da limitare la frequenza delle query al propio server. Questo parametro puo' essere modificato per singoli record::
+
+        $TTL 3D     ; 3 giorni: default se non specificato altrimenti
+        rapido  5h      IN      A       94.23.63.105 ; usa un TTL di 5 ore
+        lento   3w      IN      A       94.23.63.105 ; usa un TTL di 3 settimane
+        normale         IN      A       94.23.63.105 ; usa il TTL di default: 3 giorni
+
+
+Segue poi il nome della zona, indicato con la ``@`` per richiamare la zona originale precisata nel file ``named.conf.options`` . Segue il campo ``SOA``.
+
+SOA: Start of Authority Record
+`````````````````````````````````
+
+Il record SOA puo' comparire solo una volta in una zona, contiene informazioni relative all'autorita' del server DNS.
+
+ns1.piffa.net. name-server
+        primary master DNS di questo dominio.
+
+hostmaster.piffa.net. email-addr
+        email-addr: indirizzo email della persona responsabile di questa zona, il primo punto viene tradotto in una *chiocciola* ``@`` dato che questo carattere ha un'altro utilizzo all'interno di questo file. Il referente della zona **deve** essere un email valido e controllato, come consuetudine si usa ``hostmaster@dominio.tilde`` .
+
+200905245 serial number
+        Questo valore serve per indicare quando e' stato modificato questo file di configurazione, secondo il formato ``yyyymmddss``: ``yyyy`` = anno, ''mm'' = mese, ''dd'' = giorno, ''ss'' = seriale. Il seriale che deve essere sempre specificato anche per una cifra, va incrementato di una unita' nel caso vengano fatte piu' modifiche *nello stesso giorno*.
+
+8H refresh
+        Indica ai DNS secondari quanto tempo attendere per cercare di aggiornare i loro dati con il DNS master.
+
+2H retry
+        Intervallo di tempo per il DNS slave (secondario) da aspettare prima di cercare di ricontattare il *master* in caso di problemi col *refresh*.
+
+4W expire
+        Indica quando i dati dei dns secondarinon sono piu' autoritativi in caso di impossibilita' degli *slaves* di ri-aggiornarsi con il *master*. Consigliato un valore di 2/4 settimane.
+
+1D minimum
+        Questo valore indicava il TTL fino alla versione 8 di Bind, da Bind 9 e secondo la RFC2308 indica la durata del *negative caching*, quanto i resolvers (ad esempio un server dns cache) puo' mantenere un record *negativo* (che non indica la corrispondenza tra un nome di dominio e un ip, ma la non esistenza del record). Nell'uso per il negative caching viene fissato un valore massimo di 3 ore dalla RFC 2308.
+
+
+Altri campi:
+```````````````
+
+All'interno della zona possono essere utilizati vari tipi di records (RR):
+
+TXT
+        Informazioni testuali associate ad un record
+
+NS
+        Name Server della zona
+
+A
+        Indirizzo ipv4 da associare al record
+
+AAA
+        Indirizzo ipv6 da associare al record
+
+CNAME
+        Canonical Name: un alias per un host
+
+MX
+        Mail Exchanger: server di posta che si occupera' della posta elettronica per questo dominio.E' opportuno avere almeno un server di posta di back-up, per indicare la priorita' di un MX rispettoad un altro si usa un valore di 2 cifre: il valore piu' basso indica priorita' piu' bassa. Es: ``MX    10 smtp.piffa.net.`` per il server SMTP principale e ``MX      40 smtp2.piffa.net`` per il secondario.
+
+PTR
+        Reverse look-up, usato per la mappatura inversa di un indirizzo ip a una stringa identificativa dell'host. Si noti che per poter modificare questi record si deve avere *in gestione* la *zona IP*, se cosi' non fosse si dovra' chiedere al propio provider la modifica di questo record per il propio ip. Links: http://www.zytrax.com/books/dns/ch3/
+
+
+Link suggeriti:
+----------------
+
+* DNS for Rocket Scientists http://www.zytrax.com/books/dns/
+* DNS HOWTO http://www.langfeldt.net/DNS-HOWTO/BIND-9/
 
 Samba
 ======
@@ -1352,7 +1501,7 @@ In alternativa e' possibile montare realmente la condivisone anche su GNU/Linux
 Server di posta: Postfix
 ============================
 
-Il server di posta che prenderemo in considerazione e' Postfix, a seguire un estratto di un file do configurazione *semplice* con l'abilitazione delle *Maildir* nelle ``/home`` degli utenti per la consegna della posta:
+Il server di posta che prenderemo in considerazione e' Postfix, a seguire un estratto di un file di configurazione *semplice* con l'abilitazione delle *Maildir* nelle ``/home`` degli utenti per la consegna della posta:
 
 ``/etc/postfix/main.cf``::
 
@@ -1365,30 +1514,143 @@ Il server di posta che prenderemo in considerazione e' Postfix, a seguire un est
        # Se non avete un ip pubblico e statico, con un adeguato record PTR
        # dovrete usare un realy host per l'invio della posta
        relayhost = smtp.piffa.net
+       
        mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
+       # Se dovete inviare la posta per i client della vostra LAN privata:
+       # mynetworks = 127.0.0.0/8 192.168.0.0/24 [::ffff:127.0.0.0]/104 [::1]/128
+       # E si faccia BEN ATTENZIONE a non diventare un open realay smtp
+
 
        # Per effettuare lo storaggio della posta nelle home directory degli utenti
-       # in una Maildir invece che la Mailbox in /var/mail/utente
+       # in una Maildir invece che nella Mailbox in /var/mail/nome_utente
        # si disabiliti procmail
        #mailbox_command = procmail -a "$EXTENSION"
 
-       # Storaggio della posta nella _cartella_ Maildir/ (si noti lo slash)
-       # nella home dell'utente:
+       # cartella_i abiliti lo storaggio della posta nella Maildir/ (si noti lo slash)
+       # all'interno della  home dell'utente:
        home_mailbox = Maildir/
        mailbox_size_limit = 0
        recipient_delimiter = +
        inet_interfaces = all
 
 
+E' disponibile un file di configurazione di esempio ben piu' articolato e commentato::
+        /usr/share/postfix/main.cf.dist .
+
+Test del server smtp
+-----------------------
+
+Per testare il corretto funzionamento del server di posta si puo' procedere in vari modi.
+
+- Spedire una mail a una casella locale / remota e controllare i log (syslog)
+- Collegarsi via *telnet* al server di posta: http://www.netadmintools.com/art276.html
+- usare una utility come SWAKS
+
+Swaks
+~~~~~~~~~~~
+
+Per gli utenti meno esperti e' consigliabile utilizzare *SWAKS*: si installi l'omonimo pacchetto e si esegua un test con::
+        swaks --to utente@destinatario.tilde --from utente@propio.mail.tilde
+
+Ecco un esempio di una sessione corretta::
+
+       swaks --to andrea@piffa.net from andrea@mydomain.com
+       === Trying smtp.piffa.net:25...
+       === Connected to smtp.piffa.net.
+       <-  220 zoo.piffa.net ESMTP Postfix (Debian/GNU)
+        -> EHLO alice.mydomain.com
+       <-  250-zoo.piffa.net
+       <-  250-PIPELINING
+       <-  250-SIZE 10240000
+       <-  250-VRFY
+       <-  250-ETRN
+       <-  250-STARTTLS
+       <-  250-ENHANCEDSTATUSCODES
+       <-  250-8BITMIME
+       <-  250 DSN
+        -> MAIL FROM:<root@alice.mydomain.com>
+       <-  250 2.1.0 Ok
+        -> RCPT TO:<andrea@piffa.net>
+       <-  250 2.1.5 Ok
+        -> DATA
+       <-  354 End data with <CR><LF>.<CR><LF>
+        -> Date: Thu, 28 May 2009 13:11:19 +0200
+        -> To: andrea@piffa.net
+        -> From: root@alice.mydomain.com
+        -> Subject: test Thu, 28 May 2009 13:11:19 +0200
+        -> X-Mailer: swaks v20061116.0 jetmore.org/john/code/#swaks
+        ->
+        -> This is a test mailing
+        ->
+        -> .
+       <-  250 2.0.0 Ok: queued as 41FB261AFC
+        -> QUIT
+       <-  221 2.0.0 Bye
+       === Connection closed with remote host.
+
+
+
 Imap e pop
 ------------------
 
-Postfix e' un server SMTP, di conseguenza se volete che i vostri utenti possano *scaricare* in locale la posta generalmente volete mettere a loro disposizione un server *POP3* o ancora meglio *IMAP*. Oppure entrambi.
+Postfix e' un server SMTP, di conseguenza se volete che i vostri utenti possano *scaricare* in locale la posta generalmente volete mettere a loro disposizione un server *POP3* o *IMAP*. Oppure entrambi.
 
 Pacchetti da installare        
        courier-imap courier-pop
 
-i noti che IMAP necessita delle Maildir, non funziona con le Mailbox in ``/var/mail/`` .
+Si noti che IMAP necessita delle *Maildir*, non funziona con le Mailbox in ``/var/mail/`` .
+
+Client a riga di comando
+---------------------------
+
+Per testare il corretto funzionamento del server di posta e' utile avere a disposizione delle utility per inviare e leggere la posta: ovviamente da riga di comando.
+
+mailx
+~~~~~~~~~~~~~~
+
+Uno dei client piu' semplici, sopratutto per inviare un messaggioi.  e' sufficiente usare una formula come::
+       mail utente@dominio.com
+
+Se il comando ``mail`` non fosse disponibile si installi il pacchetto ``mailx``.
+
+Al primo prompt si digitera' l'oggetto, il testo del messaggio (per terminare l'inserimento lasciare una riga vuota, digitare un ``punto + Invio`` su una riga vuota), la Carbon Copy (se necessaria).
+
+es::
+
+       mail andrea@localhost
+       Subject: Oggetto della mail
+       Testo del messagio,
+       per terminare il messaggio
+       lasciare una riga vuota
+       e un punto (poi Invio).
+
+       .
+       Cc:
+       
+Per altrre opzioni si veda la pagina man.
+
+Mutt
+~~~~~
+
+Mutt e' uno dei gestori di posta preferiti da chi preferisce utilizzare l'interfaccia testuale per la gestione della posta. 
+
+Mutt ha un file di configurazione ``.muttrc`` nella *home* dell'utente, alcuni settaggi possono essere utili:
+
+set folder="~/Maildir"
+       Per utilizzare ``/home/nome_utente/Maildir come mailbox``, invece del default ``/var/mail/nome_utente``.
+
+set editor="vim"
+       Utilizzare ``vim`` come editor per comporre i messaggi.
+
+
+Spesso e' utile poter *levvere al volo* la Mailbox / Maildir di un utente sul server di posta, per controllare se i messaggi vengono recapitati correttamente::
+       
+       mutt -f /var/mail/utente
+       mutt -f /home/utente/Maildir
+
+In modo analogo si puo' consultare al volo la propia mailbox su un server remoto tramite IMAP/POP::
+
+               mutt -f imap://nome_utente@piffa.net
 
 
 Web client
@@ -1399,9 +1661,69 @@ Per mettere a disposizione degli utenti un client web per gestire la propria pos
 L'interfaccia dovrebbe essere disponibile all'url: ``http://localhost/squirrelmail`` . Se cosi' non fosse assicuratevi che Apache abbia incluso il file di configurazione di squirrelmail::
 
        cd /etc/apache2/conf.d/
-       ln -s /etc/squirrelmail/apache.conf ./
+       ln -s /etc/squirrelmail/apache.conf ./squirrelmail.conf
+
+
+Graylisting
+----------------
+
+Il *graylisting* e' un sistema relativamente poco invasivo, con un limitato consumo di risorse per limitare lo *SPAM* in arrivo sul propio server di posta. Come suggerisce il nome e' una via di mezzo tra una *white list* (una lista di mittenti privilegiata, sempre benvenuti) e una *black list* (mittenti *bannati*, banditi dal poter inviare nuovi messaggi).
+
+Il funzionamento e' relativamente semplice: ogni mittente sconosciuto viene immediatamente rifiutato con un errore *non grave* come un *server non disponibile, provare piu' tardi*. Questo inconveniente non dovrebbe mettere in difficolta' un server di posta / mittente legittimo, che dopo un periodo di attesa tentera' nuovamente di inviare il messaggio ottenendo finalmente il risultato atteso. Diversamente un *bot* per l'invio di SPAM o un applicazione improvvisata (tipicamente di derivazione virale) che stesse inviando il messaggio *probabilmente* non insisterebbe, rinunciano ad inviare il messaggio preferendo destinazioni meno problematiche.
+
 
+Abilitazione in Postfix
+~~~~~~~~~~~~~~~~~~~~~~~~
 
+Installare il pacchetto: ``postgrey`` e aggiungere il file di configurazione di Postfix ``/etc/postfix/main.cf``::
+
+       smtpd_recipient_restrictions =
+               permit_mynetworks,
+               reject_unauth_destination,
+               check_policy_service inet:127.0.0.1:60000
+
+Test
+~~~~~~~~
+
+Inviando un messaggio il client dovrebbe ricevere un iniziale messaggio di rifiuto del messaggio::
+
+       swaks --to andrea@piffa.net from andrea@mydonain.com
+       === Trying smtp.piffa.net:25...
+       === Connected to smtp.piffa.net
+       ...
+       <-  250 2.1.0 Ok
+        -> RCPT TO:<andrea@piffa.net>
+       <** 450 4.2.0 <andrea@piffa.net>: Recipient address rejected: 
+       Greylisted, see http://postgrey.schweikert.ch/help/piffa.net.html
+        -> QUIT
+       <-  221 2.0.0 Bye
+       === Connection closed with remote host.
+
+A lato server si dovrebbe rilevare su ``/var/log/syslog`` qualcosa di simile::
+
+       connect from alice.mydomain.com[65.98.21.97]
+       May 28 14:53:34 r24266 postgrey: action=greylist, reason=new, 
+           client_name=alice.mydomain.com,
+          client_address=10.0.0.1, sender=root@alice.mydomain.com, recipient=andrea@piffa.net
+       May 28 14:53:34 r24266 postfix/smtpd[22538]: 
+          NOQUEUE: reject: RCPT from alice.mydomain.com[10.0.0.1]: 
+          450 4.2.0 <andrea@piffa.net>: Recipient address rejected: Greylisted, 
+          see http://postgrey.schweikert.ch/help/piffa.net.html; 
+          from=<root@alice.mydomain.com> to=<andrea@piffa.net> 
+           proto=ESMTP helo=<alice.mydomain.com>
+       May 28 14:53:34 r24266 postfix/smtpd[22538]: disconnect from alice.mydomain.com[10.0.0.1]
+
+
+Statistiche
+~~~~~~~~~~~~~~~
+
+E' sempre utile poter tracciare qualche statistica sulle percentuali di messaggi ricevuti, da chi, messaggi rifiutati (e per quale motivo). Statistiche che attingono dai soliti log del server di posta ``/var/log/syslog`` di default oltre che i dedicati ``/var/log/mail`` .
+
+Una utility semplice per analizzare l'attivita' del propio server smtp potrebbe essere ``pflogsumm`` , installato il pacchetto la si puo' invocare con::
+       
+       pflogsumm.pl  /var/log/mail.log
+
+oppure utilizzare i log piu' vecchi ad es. ``/var/log/mail.log.0``
 
 Firewall
 ==========
@@ -1707,6 +2029,15 @@ Per attivare la network address translation (in questo caso un SNAT) per la rete
 
 Il *Masquerading* a differenza dello *SNAT* puro (``-j SNAT --to-source proprio_ip_pubblico ) legge l'indirizzo ip del device ``ppp0``. In questo modo se l'IP cambia automaticamente si aggiorna anche il source natting. Se avete un indirizzo IP statico assegnato al vostro gateway potete invece usare lo SNAT semplice.
 
+Altri esempi::
+       ## Change source addresses to 1.2.3.4.
+       # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
+
+       ## Change source addresses to 1.2.3.4, 1.2.3.5 or 1.2.3.6
+       # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
+
+       ## Change source addresses to 1.2.3.4, ports 1-1023
+       # iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023
 
 Brute force
 ~~~~~~~~~~~~
@@ -1721,7 +2052,11 @@ Per limitare attacchi di tipo brute force su SSH::
 NOTE
 ========
 
-* controllare apache
+Bind:
+        - altri esempi commenti su una zona
+        - esempi di una zona PTR?
+        - dns secondari
+        - nsupdate
 
 
 sintassi: in ``monospace`` :