Il processo per portare una email da una persona a un'altra all'interno di una rete o attraverso internet, comporta l'utilizzo di diversi sistemi che cooperano tra loro. Ognuno di questi sistemi deve essere configurato correttamente. Colui che spedisce una email utilizza un Mail User Agent (MUA), o client email, per spedire il messaggio attraverso uno o più Mail Transfer Agents (MTA), l'ultimo dei quali lo consegnerà a un Mail Delivery Agent (MDA) per la consegna nella casella di posta del destinatario, che la preleverà utilizzando un client email attraverso un server POP3 o IMAP.
Postfix è il Mail Transfer Agent (MTA) predefinito di Ubuntu. Cerca di essere facile da amministrare e sicuro ed è compatibile con l'MTA sendmail. Questa sezione espone come installare e configurare postfix e anche come configurare un server SMTP utilizzando un collegamento sicuro (per l'invio di email in sicurezza).
Per installare postfix con SMTP AUTH e TLS (Transport Layer Security) eseguire il seguente comando:
sudo apt-get install postfix
Premere Invio a ogni domanda posta durante il processo di installazione, la configurazione sarà svolta al passo successivo.
Per configurare postfix eseguire il seguente comando:
sudo dpkg-reconfigure postfix
Sarà visualizzata l'interfaccia grafica. A ogni schermata selezionare i seguenti valori:
Ok
Internet Site
NONE
mail.example.com
mail.example.com, localhost.localdomain, localhost
No
127.0.0.0/8
Sì
0
+
tutti
![]() |
|
Sostituire mail.example.com con il nome del proprio host server. |
I passi successivi sono la configurazione di postfix per l'uso di SASL per SMTP AUTH. Invece di modificare i file di configurazione a mano, è possibile utilizzare lo strumento postconf per impostare tutti i parametri di postfix. I parametri di configurazione vengono salvati nel file /etc/postfix/main.cf
. Per riconfigurare un particolare parametro è possibile utilizzare nuovamente il comando precedente o modificare il file a mano.
Configure Postfix to do SMTP AUTH using SASL (saslauthd):
postconf -e 'smtpd_sasl_local_domain =' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' postconf -e 'inet_interfaces = all'
Open the /etc/postfix/sasl/smtpd.conf
file and add
the following lines to end of the file:
pwcheck_method: saslauthd mech_list: plain login
Next, configure the digital certificate for TLS. When asked questions, follow the instructions and answer appropriately.
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 sudo mv smtpd.key /etc/ssl/private/ sudo mv smtpd.crt /etc/ssl/certs/ sudo mv cakey.pem /etc/ssl/private/ sudo mv cacert.pem /etc/ssl/certs/
![]() |
|
È possibile ottenere un certificato digitale da un ente che distrubuisce certificati. In alternativa è possibile crearsi i propri certificati. Per maggiori informazioni fare riferimento a la sezione chiamata “Creare un certificato auto-firmato”. |
Configurare Postfix affinché esegua cifratura TLS sia per le email in arrivo sia per quelle in uscita:
postconf -e 'smtpd_tls_auth_only = no' postconf -e 'smtp_use_tls = yes' postconf -e 'smtpd_use_tls = yes' postconf -e 'smtp_tls_note_starttls_offer = yes' postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key' postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt' postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem' postconf -e 'smtpd_tls_loglevel = 1' postconf -e 'smtpd_tls_received_header = yes' postconf -e 'smtpd_tls_session_cache_timeout = 3600s' postconf -e 'tls_random_source = dev:/dev/urandom' postconf -e 'myhostname = mail.example.com'
![]() |
|
Una volta eseguiti tutti i comandi, SMTP AUTH è configurato per postfix. Il certificato auto-firmato è creato per TLS ed è configurato per l'uso con postfix. |
Ora, il file /etc/postfix/main.cf
dovrebbe essere simile a questo.
La configurazione iniziale di postfix è completata. Eseguire il seguente comando per avviare il demone postfix:
sudo /etc/init.d/postfix start
Ora il demone postfix è installato, configurato e funziona correttamente. Postfix supporta anche SMTP AUTH come descritto in RFC2554. È basato su SASL, ma è necessario abilitare l'autenticazione SASL prima di poter utilizzare SMTP.
The libsasl2, sasl2-bin and libsasl2-modules are necessary to enable SMTP AUTH using SASL. You can install these applications if you have not installed them already.
sudo apt-get install libsasl2 sasl2-bin
È necessario apportare alcune modifice prima di un corretto funzionamento. Questo perché Postfix viene eseguito in chroot su /var/spool/postfix
, SASL necessita di essere configurato per poter girare nella falsa root (/var/run/saslauthd
diventa /var/spool/postfix/var/run/saslauthd
):
mkdir -p /var/spool/postfix/var/run/saslauthd rm -rf /var/run/saslauthd
Per attivare saslauthd, modificare il file /etc/default/saslauthd
e cambiare o aggiungere la variabile START. Per configurare saslauthd affinché possa girare nella falsa root, aggiungere le variabili PWDIR, PIDFILE e PARAMS. Infine configurare la variabile MECHANISMS a piacere. Il file dovrebbe essere all'incirca come questo:
# This needs to be uncommented before saslauthd will be run # automatically START=yes PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" # You must specify the authentication mechanisms you wish to use. # This defaults to "pam" for PAM support, but may also include # "shadow" or "sasldb", like this: # MECHANISMS="pam shadow" MECHANISMS="pam"
![]() |
|
È possibile utilizzare shadow al posto di pam. Questo utilizzerà il trasferimento delle password con l'hashing MD5 ed è perfettamente sicuro. Il nome utente e la password necessari per l'autenticazione sono quelle dell'utente nel sistema in uso. |
Aggiornare lo "stato" di /var/spool/portfix/var/run/saslauthd
. Lo script init di saslauthd utilizza queste impostazioni per creare la directory mancante con i permessi appropriati:
dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd
La configurazione di SMTP AUTH è completata. Ora è necessario avviare il tutto ed eseguire dei test. Per avviare il demone SASL utilizzare il seguente comando:
sudo /etc/init.d/saslauthd start
Per controllare se SMTP AUTH e TLS funzionano perfettamente, eseguire il seguente comando:
telnet mail.example.com 25
Una volta stabilito il collegamento con il server postfix, digitare:
ehlo mail.example.com
Se compaiono le seguenti righe, allora tutto è a posto. Digitare quit per uscire.
250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME
Exim4 is another Message Transfer Agent (MTA) developed at the University of Cambridge for use on Unix systems connected to the internet. Exim can be installed in place of sendmail, although the configuration of exim is quite different to that of sendmail.
Per installare exim4, digitare il seguente comando:
sudo apt-get install exim4 exim4-base exim4-config
Per configurare exim4, eseguire il seguente comando:
sudo dpkg-reconfigure exim4-config
Viene visualizzata l'interfaccia grafica. Questa consente di configurare molti parametri. Per esempio, in exim4 i file di configurazione sono suddivisi in molti file, se si vuole avere un unico file è possibile impostare ciò all'interno di questa interfaccia.
All the parameters you configure in the user interface are
stored in
/etc/exim4/update-exim4.conf.conf
file.
If you wish to re-configure, either you re-run the
configuration wizard or manually edit this file
using your favourite editor. Once you configure, you can run
the following command to generate the master configuration
file:
sudo update-exim4.conf
The master configuration file, is generated and
it is stored in
/var/lib/exim4/config.autogenerated
.
![]() |
|
Per nessun motivo modificare il file |
You can run the following command to start exim4 daemon.
sudo /etc/init.d/exim4 start
TODO: This section should cover configuring SMTP AUTH with exim4.
Dovecot è un Mail Delivery Agent, progettato per garantire la sicurezza. Supporta la maggior parte dei formati di caselle di posta: mbox o maildir. Questa sezione espone come configurarlo come server imap o pop3.
Per installare dovecot eseguire in un terminale il seguente comando: sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d
Per configurare dovecot è possibile modificare il file /etc/dovecot/dovecot.conf
. È possibile utilizzare il protocollo preferito. Può essere pop3, pop3s (pop3 sicuro), imap e imaps (imap sicuro). Una descrizione di questi protocolli va oltre lo scopo di questa guida. Per maggiori informazioni fare riferimento agli articoli presenti su wikipedia riguardo POP3 e IMAP.
IMAPS and POP3S are more secure that the simple IMAP and
POP3 because they use SSL encryption to connect. Once you
have chosen the protocol, amend the following line in the file
/etc/dovecot/dovecot.conf
:
protocols = pop3 pop3s imap imaps
It enables the protocols when dovecot is started. Next, add the following line in the pop3 section of the file /etc/dovecot/dovecot.conf
:
pop3_uidl_format = %08Xu%08Xv
Next, choose the mailbox you use. Dovecot supports maildir and mbox formats. These are the most commonly used mailbox formats. They both have their own benefits and they are discussed on the dovecot website.
Una volta scelta la tipologia della casella di posta, modificare il file /etc/dovecot/dovecot.conf
e cambiare la seguente riga:
default_mail_env = maildir:~/Maildir # (per maildir) o default_mail_env = mbox:~/mail:INBOX=/var/spool/mail/%u # (per mbox)
![]() |
|
You should configure your Mail Transport Agent (MTA) to transfer the incoming mail to this type of mailbox if it is different from the one you have configured. |
Once you have configured dovecot, start the dovecot daemon in order to test your setup:
sudo /etc/init.d/dovecot start
If you have enabled imap, or pop3, you can also try to log in with the commands telnet localhost pop3 or telnet localhost imap2. If you see something like the following, the installation has been successful:
telnet localhost pop3 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. +OK Dovecot ready.
Per configurare dovecot affinché utilizzi SSL, è possibile modificare il file /etc/dovecot/dovecot.conf
e cambiare le seguenti righe:
ssl_cert_file = /etc/ssl/certs/dovecot.pem ssl_key_file = /etc/ssl/private/dovecot.pem ssl_disable = no disable_plaintext_auth = no
I file cert e key sono creati automaticamente da dovecot durante l'installazione. Notare che queste chiavi non sono firmate e si riceverà un errore di "bad signature" quando ci si collega da un client. Per ovviare a questo problema, è possibile utilizzare dei certificati commerciali o, meglio ancora, i propri certificati SSL.
Mailman è un programma open source per la gestione di discussioni elettroniche e newsletter. Molte mailing list open source (incluse tutte le mailing list di Ubuntu) utilizzano Mailman come software. È molto potente e facile da installare.
Mailman fornisce un'interfaccia web per i compiti amministrativi e per gli utenti. È quindi richiesto apache con il supporto mod_perl. Mailman utilizza un server mail esterno per inviare e ricevere le email. Funziona molto bene con i seguenti server mail:
Postfix
Exim
Sendmail
Qmail
Verrà descritto come installare mailman, il server web apache e il server mail Exim. Se si desidera installare mailman con un server mail diverso, fare riferimento alla sezione «Riferimenti».
Per installare apache2 fare riferimento a la sezione chiamata “Installazione”.
To install Exim4 you run the following commands at a terminal prompt:
sudo apt-get install exim4 sudo apt-get install exim4-base sudo apt-get install exim4-config
Once exim4 is installed, the configuration files are stored in
the /etc/exim4
directory. In Ubuntu, by default, the exim4 configuration files are
split across different files. You can change this behavior by changing
the following variable in the /etc/exim4/update-exim4.conf
file:
dc_use_split_config='true'
Per installare mailman, in un terminale digitare il seguente comando:
sudo apt-get install mailman
Questo copia i file di installazione nella directory /var/lib/mailman, gli script CGI nella directory /usr/lib/cgi-bin/application, crea l'utente list e il gruppo list. Il proprietario del processo mailman sar
Questa sezione assume che le applicazioni mailman, apache2 e exim4 siano state installate con successo. Ora è necessario configurarle.
Una volta installato apache2, è possibile aggiungere le seguenti righe al file /etc/apache2/apache2.conf
:
Alias /images/mailman/ "/usr/share/images/mailman/" Alias /pipermail/ "/var/lib/mailman/archives/public/"
mailman utilizza apache2 per eseguire gli script CGI. Gli script CGI di mailman sono installati all'interno della directory /usr/lib/cgi-bin/mailman
. L'URL di mailman quindi risulta http://hostname/cgi-bin/mailman/. È possibile apportare cambiamenti al file /etc/apache2/apache2.conf
per modificarne il comportamento.
Una volta installato Exim4, è possibile avviare il server exim digitando il seguente comando in un terminale:
sudo apt-get /etc/init.d/exim4 start
Per poter utilizzare mailman con exim4, è necessario configurare exim4 per questo scopo. Come precedentemente detto, in modo predefinito, exim4 utilizza file di configurazione multipli di diversi tipi. Per maggiori informazioni fare riferimento al sito web di Exim. Per avviare mailman è necessario aggiungere un nuovo file di configurazione alle seguenti tipologie di configurazione:
Main
Transport
Router
Exim crea un file di configurazione principale ordinando tutti questi piccoli file di configurazione. L'ordine di questi file è molto importante.
Tutti i file di configurazione appartenenti al tipo main sono archiviati nella directory /etc/exim4/conf.d/main/
. È possibile aggiungere il seguente contenuto a un nuovo file di configurazione chiamato 04_exim4-config_mailman
:
# start # Home dir for your Mailman installation -- aka Mailman's prefix # directory. # On Ubuntu this should be "/var/lib/mailman" # This is normally the same as ~mailman MM_HOME=/var/lib/mailman # # User and group for Mailman, should match your --with-mail-gid # switch to Mailman's configure script. Value is normally "mailman" MM_UID=list MM_GID=list # # Domains that your lists are in - colon separated list # you may wish to add these into local_domains as well domainlist mm_domains=hostname.com # # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # # These values are derived from the ones above and should not need # editing unless you have munged your mailman installation # # The path of the Mailman mail wrapper script MM_WRAP=MM_HOME/mail/mailman # # The path of the list config file (used as a required file when # verifying list addresses) MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck # end
Tutti i file di configurazione appartenenti al tipo transport sono archiviati nella directory /etc/exim4/conf.d/transport/
. È possibile aggiungere il seguente contenuto a un nuovo file di configurazione chiamato 40_exim4-config_mailman
:
mailman_transport: driver = pipe command = MM_WRAP \ '${if def:local_part_suffix \ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ {post}}' \ $local_part current_directory = MM_HOME home_directory = MM_HOME user = MM_UID group = MM_GID
Tutti i file di configurazione appartenenti al tipo router sono archiviati nella directory /etc/exim4/conf.d/router/
. È possibile aggiungere il seguente contenuto a un nuovo file di configurazione chiamato 101_exim4-config_mailman
:
mailman_router: driver = accept require_files = MM_HOME/lists/$local_part/config.pck local_part_suffix_optional local_part_suffix = -bounces : -bounces+* : \ -confirm+* : -join : -leave : \ -owner : -request : -admin transport = mailman_transport
![]() |
|
L'ordine dei file di configurazione main e transport può essere qualsiasi. L'ordine dei file di configurazione del tipo router deve essere lo stesso. Questo particolare file deve apparire prima del file |
Once mailman is installed, you can run it using the following command:
sudo /etc/init.d/mailman start
Once mailman is installed, you should create the default mailing list. Run the following command to create the mailing list:
sudo /usr/sbin/newlist mailman
Enter the email address of the person running the list: bhuvan at ubuntu.com
Initial mailman password:
To finish creating your mailing list, you must edit your /etc/aliases
(or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
## mailman mailing list
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Hit enter to notify mailman owner..
#
We have configured exim to recognize all emails from mailman. So, it is
not mandatory to make any new entries in
/etc/aliases
. If you have made any changes
to the configuration files, please ensure that you restart those
services before continuing to next section.
We assume you have a default installation. The mailman cgi scripts are still in the /usr/lib/cgi-bin/mailman/ directory. Mailman provides a web based administration facility. To access this page, point your browser to the following url:
http://hostname/cgi-bin/mailman/admin
The default mailing list, mailman, will appear in this screen. If you click the mailing list name, it will ask for your authentication password. If you enter the correct password, you will be able to change administrative settings of this mailing list. You can create a new mailing list using the command line utility (/usr/sbin/newlist). Alternatively, you can create a new mailing list using the web interface.
Mailman fornisce un'interfaccia web per gli utenti. Per accedere a questa pagina, indirizzare il browser web al seguente URL:
http://hostname/cgi-bin/mailman/listinfo
La mailing list predefinita, mailman, compare a schermo. Facendo clic sul nome, viene presentato il modulo di iscrizione. È possibile inserire il proprio indirizzo email, il nome (opzionale) e la password per completare l'iscrizione. Viene così inviata una email di invito all'indirizzo specificato. È possibile seguire le istruzioni contenute nell'email per completare l'iscirzione.