Repository 32bit  Forum
Repository 64bit  Wiki

Configurare sendmail e fetchmail per un account di gmail: differenze tra le versioni

Da Slacky.eu.
 
Riga 1: Riga 1:
=Introduzione=
=Introduzione=
In questo articolo si spiega come configurare sendmail e fetchmail per ricevere e mandare posta elettronica usando l'account di gmail. La configurazione è stata effettuata con slackware 11.0, grazie a questo articolo [http://www.ns-linux.org/uputstva/sendmail-fetchmail-za-gmail] (in serbo). Ringrazio ancora una volta l'autore dell'articolo, Nikola Kotur, a cui va tutto il merito di questa guida (ho solo aggiunto un paio di comandi e rielaborato il tutto).
+
In questo articolo si spiega come configurare sendmail e fetchmail per ricevere e mandare posta elettronica usando l'account di gmail. La configurazione è stata effettuata con slackware 11.0, grazie a questo articolo [http://www.ns-linux.org/uputstva/sendmail-fetchmail-za-gmail] (in serbo). Ringrazio ancora una volta l'autore, Nikola Kotur, a cui va tutto il merito di questa guida (ho solo aggiunto un paio di comandi e rielaborato il tutto).
Si dà per scontato che sendmail sia installato, insieme al suo pacchetto di macro, e che il demone sia attivo. Nel caso in cui sendmail sia installato, ma il demone non attivo, è sufficiente rendere eseguibile lo script di avvio e avviarlo:
+
Si dà per scontato che sendmail sia installato, insieme al suo pacchetto di macro, e che il demone sia attivo. Nel caso in cui sendmail sia installato, ma il demone non sia attivo, è sufficiente rendere eseguibile lo script di avvio e farlo partire:
<pre>
<pre>
Riga 14: Riga 14:
=Configuriamo Sendmail=
=Configuriamo Sendmail=
Sendmail non è esattamente un programma user-friendly, e con pochi click si potrebbe configurare mozilla thunderbird, ma visto che è il gestore di posta installato di default con slackware (e ci piacciono le sfide),vale la pena spenderci un po' di tempo per configurarlo.
+
Sendmail non è esattamente un programma user-friendly, e con pochi click si potrebbe configurare Mozilla Thunderbird, ma visto che è il gestore di posta installato di default con Slackware (e ci piacciono le sfide),vale la pena spenderci un po' di tempo per configurarlo.
Logghiamoci come root e cominciamo.
Logghiamoci come root e cominciamo.
Riga 69: Riga 69:
# cp sendmail-slackware.mc sendmail-gmail-tls.mc
# cp sendmail-slackware.mc sendmail-gmail-tls.mc
</pre>
</pre>
apriamo il file che abbiamo appena clonato con un editor degno di questo nome (consiglio vim per la colorazione della sintassi non certo scontata di questo file). Le righe che cominciano con <tt>dnl</tt> sono dei commenti.
+
apriamo il file che abbiamo appena clonato con un editor degno di questo nome (consiglio Vim per la colorazione della sintassi non certo scontata di questo file). Le righe che cominciano con <tt>dnl</tt> sono dei commenti.
Dobbiamo modificare un paio di righe e aggiungere quelle per poter gestire la criptografia, indicando dove si trovano i file.
Dobbiamo modificare un paio di righe e aggiungere quelle per poter gestire la criptografia, indicando dove si trovano i file.
Riga 89: Riga 89:
include(`../m4/cf.m4')
include(`../m4/cf.m4')
dnl# Questo e' per dare un tocco di stile
dnl# Questo e' per dare un tocco di stile
VERSIONID(`setup for Slackware Linux and gmail')dnl
+
VERSIONID(`setup for Slackware Linux and Gmail')dnl
OSTYPE(`linux')dnl
OSTYPE(`linux')dnl
dnl# These settings help protect against people verifying email addresses
dnl# These settings help protect against people verifying email addresses
Riga 131: Riga 131:
define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')dnl
define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')dnl
</pre>
</pre>
salviamo e usciamo
+
salviamo e usciamo.
Fermiamo il demone:
Fermiamo il demone:
Riga 171: Riga 171:
<pre>
<pre>
$ mkdir ~/.certs
$ mkdir ~/.certs
$ cd .certs
+
$ cd ~/.certs
$ touch gmail.pem
$ touch gmail.pem
$ touch equifax.pem
$ touch equifax.pem
Riga 258: Riga 258:
</pre>
</pre>
Vuol dire che è andato tutto bene
Vuol dire che è andato tutto bene
Infine configuriamo fetchmail inserendo in .fetchmailrc le seguenti righe:
+
Infine configuriamo fetchmail inserendo in <tt>~/.fetchmailrc</tt> le seguenti righe:
<pre>
<pre>
poll pop.gmail.com with proto POP3 service 995
poll pop.gmail.com with proto POP3 service 995
user 'utentegmail@gmail.com' with pass 'tuapassword' there is 'nome_utente' here
+
user 'utentegmail@gmail.com' there with pass 'tuapassword' is 'nome_utente' here
options keep ssl sslcertck sslcertpath '/home/nome_utente/.certs'
+
options keep ssl sslcertck sslcertpath '/home/nome_utente/.certs'
</pre>
</pre>
Riga 283: Riga 283:
La soluzione è molto semplice. Dobbiamo dire a sendmail che siamo delle persone perbene, "trusted".
La soluzione è molto semplice. Dobbiamo dire a sendmail che siamo delle persone perbene, "trusted".
Andiamo in <tt>/etc/mail</tt> dove si trovano i file di configurazione di sendmail, sendmail.cf e submit.cf .
+
Andiamo in <tt>/etc/mail</tt> dove si trovano i file di configurazione di sendmail, <tt>sendmail.cf</tt> e <tt>submit.cf</tt>.
Dobbiamo aggiungere una singola e identica riga in ognuno dei due, ma per sicurezza facciamo una copia.
Dobbiamo aggiungere una singola e identica riga in ognuno dei due, ma per sicurezza facciamo una copia.
Riga 321: Riga 321:
Godetevi mutt con gmail :-D
Godetevi mutt con gmail :-D
--[[Utente:MelmothX|MelmothX]] 19:08, 26 Nov 2006 (CET)
+
--[[Utente:MelmothX|MelmothX]] 19:25, 26 Nov 2006 (CET)

Versione delle 20:25, 26 nov 2006

Indice

Introduzione

In questo articolo si spiega come configurare sendmail e fetchmail per ricevere e mandare posta elettronica usando l'account di gmail. La configurazione è stata effettuata con slackware 11.0, grazie a questo articolo [1] (in serbo). Ringrazio ancora una volta l'autore, Nikola Kotur, a cui va tutto il merito di questa guida (ho solo aggiunto un paio di comandi e rielaborato il tutto).

Si dà per scontato che sendmail sia installato, insieme al suo pacchetto di macro, e che il demone sia attivo. Nel caso in cui sendmail sia installato, ma il demone non sia attivo, è sufficiente rendere eseguibile lo script di avvio e farlo partire:

# chmod 755 /etc/rc.d/rc.sendmail
# /etc/rc.d/rc.sendmail start

I problemi nascono dal fatto che gmail usa connessioni criptate per POP3 e STMP. La prima cosa da fare è andare sulla web mail di google e impostare il proprio account in modo che permetta di scaricare la posta tramite POP3. Lo trovate in alto a destra sotto "settings" e abilitate il protocollo POP3.

Configuriamo Sendmail

Sendmail non è esattamente un programma user-friendly, e con pochi click si potrebbe configurare Mozilla Thunderbird, ma visto che è il gestore di posta installato di default con Slackware (e ci piacciono le sfide),vale la pena spenderci un po' di tempo per configurarlo.

Logghiamoci come root e cominciamo.

Intanto creiamo il file con i dati di accesso per l'account di posta elettronica.

# mkdir /etc/mail/auth
# touch /etc/mail/auth/client-info

apriamo /etc/mail/auth/client-info e inseriamo una linea contentente i dati, in questo formato:

AuthInfo:smtp.gmail.com "U:root" "I:mioaccount@gmail.com" "P:miapassword"

salviamo e chiudiamo

ci spostiamo in /etc/mail/auth e creiamo il file di hash

# cd /etc/mail/auth
# makemap hash client-info<client-info

e infine restringiamo l'accesso a root

# cd /etc/mail
# chmod 600 auth/*
# chmod 700 auth

Adesso prepariamo i nostri certificati ssl

# cd /etc/mail
# mkdir /etc/mail/certs
# cd certs
# openssl dsaparam 1024 -out dsa1024.pem
# openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out mycert.pem -keyout mykey.pem
# ln -s mycert.pem CAcert.pem
# openssl req -x509 -new -days 3650 -key /etc/mail/certs/mykey.pem -out /etc/mail/certs/mycert.pem
# rm dsa1024.pem

usciamo dalla directory e sistemiamo i permessi

# cd /etc/mail
# chmod 700 certs
# chmod 600 certs/*

a questo punto i certificati sono pronti. Addentriamoci, senza perderci, nella configurazione di sendmail. Ci spostiamo nella directory contententi le macro per la configurazione di sendmail.

# cd /usr/share/sendmail/cf/cf/
# cp sendmail-slackware.mc sendmail-gmail-tls.mc

apriamo il file che abbiamo appena clonato con un editor degno di questo nome (consiglio Vim per la colorazione della sintassi non certo scontata di questo file). Le righe che cominciano con dnl sono dei commenti.

Dobbiamo modificare un paio di righe e aggiungere quelle per poter gestire la criptografia, indicando dove si trovano i file. Lo posto per intero, in modo che non ci siano problemi.


dnl# This is the default sendmail .mc file for Slackware. To generate
dnl# the sendmail.cf file from this (perhaps after making some changes),
dnl# use the m4 files in /usr/share/sendmail/cf like this:
dnl#
dnl# cp sendmail-slackware.mc /usr/share/sendmail/cf/config.mc
dnl# cd /usr/share/sendmail/cf
dnl# sh Build config.cf
dnl#
dnl# You may then install the resulting .cf file:
dnl# cp config.cf /etc/mail/sendmail.cf
dnl#
include(`../m4/cf.m4')
dnl# Questo e' per dare un tocco di stile
VERSIONID(`setup for Slackware Linux and Gmail')dnl
OSTYPE(`linux')dnl
dnl# These settings help protect against people verifying email addresses
dnl# at your site in order to send you email that you probably don't want:
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
dnl# No timeout for ident:
define(`confTO_IDENT', `0')dnl
dnl# Enable the line below to use smrsh to restrict what sendmail can run:
dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
dnl# See the README in /usr/share/sendmail/cf for a ton of information on
dnl# how these options work:
dnl# FEATURE(masquerade_envelope)
FEATURE(`use_cw_file')dnl
FEATURE(`use_ct_file')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`redirect')dnl
dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail:
dnl# FEATURE(`accept_unresolvable_domains')dnl
EXPOSED_USER(`root')dnl
dnl# qui aggiungiamo i dati di accesso
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl
dnl# Also accept mail for localhost.localdomain:
LOCAL_DOMAIN(`localhost.localdomain')dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
dnl# qui mettiamo il server di posta in uscita e i certificati.
define(`SMART_HOST',`smtp.gmail.com')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`CERT_DIR', `MAIL_SETTINGS_DIR`'certs')dnl
define(`confCACERT_PATH', `CERT_DIR')dnl
define(`confCACERT', `CERT_DIR/CAcert.pem')dnl
define(`confSERVER_CERT', `CERT_DIR/mycert.pem')dnl
define(`confSERVER_KEY', `CERT_DIR/mykey.pem')dnl
define(`confCLIENT_CERT', `CERT_DIR/mycert.pem')dnl
define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')dnl

salviamo e usciamo.

Fermiamo il demone:

# /etc/rc.d/rc.sendmail stop

facciamo una copia del file di configurazione in uso

# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.backup

compiliamo il sorgente del file di configurazione, sempre in /usr/share/sendmail/cf/cf/

# m4 sendmail-gmail-tls.mc > /etc/mail/sendmail.cf

e riavviamo il demone

# /etc/rc.d/rc.sendmail start

Dovrebbe funzionare. Facciamo una prova. Logghiamoci da utente e diamo

$ mail -s "prova" mioaccount@gmail.com < /etc/slackware-version
$ mail -s "prova" qualchealtroaccount@qualcosa.com < /etc/slackware-version

e andiamo a vedere sulla web-mail se è arrivato ;-)

In caso di problemi andiamo a guardarci i log su /var/log/maillog



Configuriamo Fetchmail

Come è noto per configurare fetchmail non serve essere root, quindi rientriamo come utente normale e prepariamoci a ricevere la posta.

La prima cosa è procurarsi i le chiavi di Google e Equifax, che vengono usate per criptare la connessione.

Creiamo la directory nella home:

$ mkdir ~/.certs
$ cd ~/.certs
$ touch gmail.pem
$ touch equifax.pem

In questi due file appena creati metteremo i certificati. Sono semplici documenti di testo, quindi basta dare un sano copia incolla in questi due file. Quello di Gmail si può estrarre con

$ openssl s_client -connect pop.gmail.com:995 -showcerts

incollando tutta la parte tra

-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

Li posto tutti e due:

Gmail


-----BEGIN CERTIFICATE-----
MIIC3TCCAkagAwIBAgIDBZIAMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDUxMTE1MjEyMjQ0WhcNMDcxMTE2MjEyMjQ0
WjBoMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
TW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xFjAUBgNVBAMTDXBv
cC5nbWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMP8LCYiLGJ/
RihwcOi1V/zHVTw0Gfu+mI141Vjuuj2DtQoav8emwlXbu8gZoKP9GeMWpX1Vo9qN
4gkslIToHmDnIwGjcaEAfpdhSR9g54Kf5Y7BEXVyco6mTIlpe9vsbV0dmB1FvLP2
1N09dkUJfi7V0fjb8mcn3QYu6+6QNoxPAgMBAAGjga4wgaswDgYDVR0PAQH/BAQD
AgTwMB0GA1UdDgQWBBTdASsopgao1m8hcEg0cDZhucltljA6BgNVHR8EMzAxMC+g
LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDAf
BgNVHSMEGDAWgBRI5mj5K9KylddH2CMgEE8zmJCf1DAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAln3/pVqYnUXA1TVGzOqX
LFhohGxpuNkr1UJnQmYxmZeB07uPBYRX8c0JXEKs29TmAHRsLhmp8kF36F11Dxgi
Xm/Y8I9zgWHoMj7SL3Ve/u8K8K7XcUyUuaWmldLQAREafpFy+f+KYHGuAVh8hjy6
XyPlMCqj+PNp8QXjgOcgO68=
-----END CERTIFICATE-----


e quello di Equifax

Equifax Secure CA
=================
MD5 Fingerprint: 67:CB:9D:C0:13:24:8A:82:9B:B2:17:1E:D1:1B:EC:D4
PEM Data:
-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
-----END CERTIFICATE-----

Se preferite i file già pronti li potete prendere dall'autore originale di questo articolo:

[2]


Una volta creati creiamo l'hash:

$ c_rehash ~/.certs

Controlliamo il tutto con

$ openssl s_client -connect pop.gmail.com:995 -CApath ~/.certs/

se termina con

Verify return code: 0 (ok)

Vuol dire che è andato tutto bene Infine configuriamo fetchmail inserendo in ~/.fetchmailrc le seguenti righe:

poll pop.gmail.com with proto POP3 service 995
user 'utentegmail@gmail.com' there with pass 'tuapassword' is 'nome_utente' here
options keep ssl sslcertck sslcertpath '/home/nome_utente/.certs'

Ovviamente sostituite il nome dell'utente, password e account gmail ;-)

provate fetchmail e controllate che tutto funzioni a dovere.

$ fetchmail -v

Appendice

Se controllate gli headers dei messaggi con questa configurazione, usando un client come mutt, vi accorgerete che apparirà un warning piuttosto spiacevole:

X-Authentication-Warning: machine_name: local_user set sender to email at domain.com using -f

Niente di grave, solo che dà fastidio (ci sentiamo quasi degli abusivi sulla nostra macchina). La soluzione è molto semplice. Dobbiamo dire a sendmail che siamo delle persone perbene, "trusted".

Andiamo in /etc/mail dove si trovano i file di configurazione di sendmail, sendmail.cf e submit.cf. Dobbiamo aggiungere una singola e identica riga in ognuno dei due, ma per sicurezza facciamo una copia.

Logghiamoci come root,stoppiamo il demone e modifichiamo i file

# /etc/rc.d/rc.sendmail stop
# cd /etc/mail
# cp sendmail.cf sendmail.cf.backup
# cp submit.cf submit.cf.backup
# vim submit.cf
# vim sendmail.cf

in entrambi i file cerchiamo questa sezione:

#####################
#   Trusted users   #
#####################

# this is equivalent to setting class "t"
Ft/etc/mail/trusted-users
Troot
Tdaemon
Tuucp

e ci aggiungiamo appena sotto una riga con

Tnome_utente_fidato

(si noti la T maiuscola e il nome utente senza spazi. Usando vim vedrete bene che funziona proprio così, colorando la T di un colore, e il nome dell'utente in un altro).

facciamo ripartire il demone e siamo a posto.

# /etc/rc.d/rc.sendmail start

Godetevi mutt con gmail :-D

--MelmothX 19:25, 26 Nov 2006 (CET)

Strumenti personali
Namespace

Varianti