Product SiteDocumentation Site

5.6. Rendere sicuro il servizio di posta

Se il vostro server non fornisce servizi di posta, non avete bisogno di avere un demone di posta in attesa di connessioni. Potreste aver bisogno solamente di un sistema di trasporto locale, che ad esempio riceva la posta per l'utente root e dagli altri allarmi di sistema.
Se state usando exim non avete bisogno di configurare il demone, in quanto, in maniera predefinita, si assume cron il compito di svuotare la coda di posta. Vedete Sezione 3.5.1, «Disabilitare i servizi attivi in modalità demone» per sapere come questo avviene.

5.6.1. Configurare un nullmailer

Potreste voler avere un demone di posta locale che possa ritrasmettere verso un altro sistema i messaggi spediti localmente. Questa è una cosa comune quando dobbiamo amministrare un certo numero di sistemi e non desideriamo connetterci ad ognuno di essi per leggere la posta spedita localmente. Proprio come la scrittura dei log di ogni singolo sistema può essere centralizzata usando un server syslog centrale, la posta può essere spedita ad un server di posta centralizzato.
Un tale sistema solo-redirezione (relay-only) dovrebbe essere propriamente configurato per svolgere questo compito. Il demone potrebbe anche essere configurato per rimanere in ascolto sul solo indirizzo di loopback.
I seguenti passaggi per la configurazione si rendono necessari solo per configurare il pacchetto exim nel rilascio di Debian 3.0. Nell'utilizzo di un rilascio successivo (come ad esempio per 3.1 che usa exim4) il sistema d'installazione è stato migliorato in maniera tale che se l'MTA viene configurato per smistare solamente la posta locale, automaticamente allora permetterà connessioni solo dalla macchina locale e non consentirà connessioni remote.
In un sistema Debian 3.0 che usa exim, dovrete rimuovere da inetd il demone SMTP.
$ update-inetd --disable smtp
e configurare il demone di posta perché rimanga in ascolto sulla sola interfaccia di loopback. In exim (l'MTA predefinito) lo potete fare modificando il file /etc/exim.conf e aggiungendo la linea seguente:
local_interfaces = "127.0.0.1"
Riavviare entrambi i demoni (inetd e exim); exim sarà in ascolto sul solo socket 127.0.0.1:25. Fate attenzione e per prima cosa disabilitate inetd, altrimenti exim non partirà poiché il demone inetd sta già gestendo le connessioni in arrivo.
Per postfix modificate /etc/postfix/main.conf:
inet_interfaces = localhost
Se volete solo posta locale, questo approccio è migliore dell'uso del tcp-wrapping sul demone di posta o dell'aggiunta di regole per il firewall per limitarne l'accesso. Tuttavia, se avete bisogno che esso resti in ascolto su altre interfacce, lo potreste lanciare da inetd ed aggiungere un tcp wrapper in modo che le connessioni in arrivo vengano controllate tramite i file /etc/hosts.allow e /etc/hosts.deny. Inoltre, configurando un'appropriata scrittura dei log per qualunque dei metodi sopra descritti, potrete sapere quando si verifica un tentativo di accesso non autorizzato al demone di posta.
In ogni caso, per respingere i tentativi di ritrasmissione della posta a livello di SMTP, potete cambiare /etc/exim/exim.conf in modo che contenga:
receiver_verify = true
Anche se il vostro server di posta non ritrasmetterà il messaggio, questo tipo di configurazione è necessaria al test di ritrasmissione che trovate all'indirizzo http://www.abuse.net/relay.html per determinare che il vostro server non sia in grado di ritrasmettere.
If you want a relay-only setup, however, you can consider changing the mailer daemon to programs that can only be configured to forward the mail to a remote mail server. Debian provides currently both ssmtp and nullmailer for this purpose. In any case, you can evaluate for yourself any of the mail transport agents [37] provided by Debian and see which one suits best to the system's purposes.

5.6.2. Fornire un accesso sicuro alle mailbox

If you want to give remote access to mailboxes there are a number of POP3 and IMAP daemons available.[38] However, if you provide IMAP access note that it is a general file access protocol, it can become the equivalent of a shell access because users might be able to retrieve any file that they can through it.
Provate, ad esempio, a configurare {server.com}/etc/passwd come percorso della vostra inbox. Se ci riuscite questo significa che il demone IMAP non è correttamente configurato per impedire questo tipo di accesso.
Tra i server IMAP disponibili in Debian il server cyrus (nel pacchetto cyrus-imapd) risolve il problema, facendo in modo che tutti gli accessi siano rivolti verso un database che risiede in una parte del file system dove l'accesso è ristretto. Inoltre, uw-imapd (installare uw-imapd o meglio, se il vostro client IMAP lo supporta, uw-imapd-ssl) può essere configurato per ottenere la cartella della posta degli utenti in chroot, ma questa funzionalità non è abilitata nella configurazione predefinita. La documentazione a corredo del programma fornisce ulteriori informazioni su come configurarlo.
Inoltre, potreste voler eseguire un server IMAP che non necessiti di utenti validi creati sul sistema locale (cosa che consentirebbe anche l'accesso tramite shell); sia courier-imap (per IMAP) che courier-pop teapop (per POP3) e cyrus-imapd (per POP3 e IMAP) forniscono server con metodi di autenticazione non dipendenti dagli account degli utenti locali. Cyrus può usare qualunque metodo di autenticazione configurabile per mezzo di PAM, mentre teapop può usare dei database (come postgresql e mysql) per l'autenticazione degli utenti.
FIXME: Controllare: anche uw-imapd potrebbe essere configurato per l'autenticazione utenti mediante PAM.

5.6.3. Ricevere posta in sicurezza

Nella ricezione e lettura della posta viene impiegato il più comune protocollo con testo in chiaro; usando sia IMAP che POP3, si invia la propria password in chiaro, in questo modo, da quel momento in avanti, quasi chiunque può leggere la nostra posta; per evitare ciò, scaricatela usando il protocollo SSL o, in alternativa, ssh se avete un'account dotato di shell sulla postazione che funge da server POP o IMAP. Ecco un essenziale fetchmailrc esemplificativo:
poll my-imap-mailserver.org via "localhost"
  with proto IMAP port 1236
      user "ref" there with password "hackme" is alex here warnings 3600
    folders
      .Mail/debian
    preconnect 'ssh -f -P -C -L 1236:my-imap-mailserver.org:143 -l ref
     my-imap-mailserver.org sleep 15 </dev/null > /dev/null'
La linea che inizia con "preconnect" è importante, in quanto dà il via ad una sessione ssh e crea il tunnel necessario, che inoltra le connessioni alla porta 1236 del localhost verso il server di posta IMAP, in modo automatico, ma sottoponendole a cifratura. Un'altra possibilità sarebbe usare fetchmail con la funzionalità SSL.
Se volete fornire servizi di posta cifrata, come POP e IMAP, usate il comando apt-get install stunnel e attivate i demoni in questo modo:
stunnel -p /etc/ssl/certs/stunnel.pem -d pop3s -l /usr/sbin/popd
Questo ultimo comando collega il demone fornito (-l) alla porta (-d) e utilizza lo specificato modo di certificazione SSL (-p).


[37] To retrieve the list of mailer daemons available in Debian try:
$ apt-cache search mail-transport-agent
The list will not include qmail, which is distributed only as source code in the qmail-src package.
[38] A list of servers/daemons which support these protocols in Debian can be retrieved with:
$ apt-cache search pop3-server
$ apt-cache search imap-server