Voici un petit tuto permettant d’utiliser le smtp de gmail en smarthost (relay) avec le serveur de messagerie Postfix sur la distribution Ubuntu Server, ici une 9.10.
Bien sur, vous devez avoir au préalable votre serveur Postfix d’installé.
Il vous faut générer un certificat SSL pour votre serveur
Aller dans votre $HOME
root@votrehostname:~#cd ~
Puis générer le nouveau certificat :
Création du fichier « Certificate Authority »
$ /usr/lib/ssl/misc/CA.pl -newca
CA certificate filename (or enter to create)
Making CA certificate ...
Generating a 1024 bit RSA private key
........................................++++++
.............................................................................................++++++
writing new private key to './demoCA/private/cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:Nord
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Votre Organisation
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:votrehostname
Email Address []:[email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
c4:22:ea:51:7c:ba:68:9b
Validity
Not Before: Apr 12 09:52:02 2010 GMT
Not After : Apr 11 09:52:02 2013 GMT
Subject:
countryName = FR
stateOrProvinceName = Nord
organizationName = Votre Organisation
commonName = votrehostname
emailAddress = [email protected]
X509v3 extensions:
X509v3 Subject Key Identifier:
72:94:AE:2C:47:9E:A2:6E:28:6B:1A:68:51:E5:5A:3D:93:86:8C:95
X509v3 Authority Key Identifier:
keyid:72:94:AE:2C:47:9E:A2:6E:28:6B:1A:68:51:E5:5A:3D:93:86:8C:95
DirName:/C=FR/ST=Nord/O=Votre Organisation/CN=votrehostname/[email protected]
serial:C4:22:EA:51:7C:BA:68:9B
X509v3 Basic Constraints:
CA:TRUE
Certificate is to be certified until Apr 11 09:52:02 2013 GMT (1095 days)
Write out database with 1 new entries
Data Base Updated
Générer le certificat Serveur :
root@votrehostname:~# openssl req -new -nodes -subj '/CN=votrehostname/O=Votre Organisation/C=FR/ST=Nord/[email protected]' -keyout FOO-key.pem -out FOO-req.pem -days 3650
Generating a 1024 bit RSA private key
................................++++++
.++++++
writing new private key to 'FOO-key.pem'
-----
Vous constaterez bien sur que j’utilise les valeurs données plus haut.
Signer le certificat :
root@votrehostname:~# openssl ca -out FOO-cert.pem -infiles FOO-req.pem
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
c4:22:ea:51:7c:ba:68:9c
Validity
Not Before: Apr 12 09:57:23 2010 GMT
Not After : Apr 12 09:57:23 2011 GMT
Subject:
countryName = FR
stateOrProvinceName = Nord
organizationName = Votre Organisation
commonName = votrehostname
emailAddress = [email protected]
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
D8:65:D7:DA:68:6C:34:00:14:63:98:B0:BD:C9:9D:67:A0:04:74:2E
X509v3 Authority Key Identifier:
keyid:72:94:AE:2C:47:9E:A2:6E:28:6B:1A:68:51:E5:5A:3D:93:86:8C:95
Certificate is to be certified until Apr 12 09:57:23 2011 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Copier les certificats dans votre dossier postfix :
root@votrehostname:~# mkdir /etc/postfix/certif
root@votrehostname:~# cp demoCA/cacert.pem FOO-key.pem FOO-cert.pem /etc/postfix/certif
root@votrehostname:~# chmod 644 /etc/postfix/certif/FOO-cert.pem /etc/postfix/certif/cacert.pem
root@votrehostname:~# chmod 400 /etc/postfix/certif/FOO-key.pem
Gmail utilise un certificat Thawte Premium Server CA.
Il vous faut l’ajouter dans le fichier :
root@votrehostname:~# cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem >> /etc/postfix/certif/cacert.pem
Si vous ne faites pas ça, vous aurez le message suivant :
Server certificate not trusted
Attention il semblerait que Gmail a changé de certificat, je m’en suis rendu compte le 27 Mai 2010.
Il n’utilise plus un certicat Thawte mais Equifax
J’ai rencontré ce message d’erreur :
May 23 06:53:21 hostname postfix/smtp[20658]: certificate verification failed for smtp.gmail.com[209.85.229.109]:587: untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certificate Authority
Pour palier à ce problème, il suffit d’ajouter le bon certificat :
root@votrehostname:~# cat /etc/ssl/certs/Equifax_Secure_CA.pem >> /etc/postfix/cacert.pem
Configuration du serveur Postfix :
Pour cela, il faut modifier le fichier /etc/postfix/main.cf
## TLS Settings
#
smtp_tls_CAfile = /etc/postfix/certif/cacert.pem
smtp_tls_cert_file = /etc/postfix/certif/FOO-cert.pem
smtp_tls_key_file = /etc/postfix/certif/FOO-key.pem
smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache
smtp_use_tls = yes
smtpd_tls_CAfile = /etc/postfix/certif/cacert.pem
smtpd_tls_cert_file = /etc/postfix/certif/FOO-cert.pem
smtpd_tls_key_file = /etc/postfix/certif/FOO-key.pem
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
#
## SASL Settings
# This is going in to THIS server
smtpd_sasl_auth_enable = no
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_local_domain = $myhostname
smtp_sasl_security_options = noanonymous
#smtp_sasl_security_options =
smtp_sasl_tls_security_options = noanonymous
smtpd_sasl_application_name = smtpd
relayhost = [smtp.gmail.com]:587
transport_maps = hash:/etc/postfix/transport
Ajouter dans le fichier /etc/postfix/transport
gmail.com smtp:[smtp.gmail.com]:587
Ajouter dans le fichier /etc/postfix/sasl_passwd
[smtp.gmail.com]:587 [email protected]:password
Puis :
postmap sasl_passwd
postmap transport
/etc/init.d/postfix restart
Voilà, votre serveur est configuré
Nettoyer la création de certificat :
root@votrehostname:~# cd ~
rm FOO-req.pem FOO-cert.pem FOO-key.pem && rm -r demoCA/
Tester l’envoie de mail :
J’ai pour habitude de tester l’envoie de mail via telnet :
root@votrehostname:/etc/postfix# telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 hostname ESMTP Postfix (Ubuntu)
EHLO [email protected]
250-hostname
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM:[email protected]
250 2.1.0 Ok
RCPT TO:[email protected]
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject:test
test envoi de mail
.
250 2.0.0 Ok: queued as 9D381812
quit
221 2.0.0 Bye
Connection closed by foreign host.
Ce qui est en gras est a renseigner par vos soins bien sur 😉
Pour vérifier, faite un petit
mailq
ou
postqueue -p
Et vérifier dans le fichier /var/log/mail.log que vous n’avez pas d’erreur.
A noter : La flèche utilisée pour illustrer cet article est sous licence libre, mais je ne sais pas laquelle et a été trouvée sur icones.pro
12 avril 2010
Admin-Linux : Ajouter le SMTP de Gmail en SmartHost avec Postfix sous Ubuntu Server: Voici un petit tuto permettan… http://bit.ly/cBSAkH
This comment was originally posted on Twitter
12 avril 2010
Mais… euh… concrètement… Ça sert à quoi ?
13 avril 2010
Bonjour @Jean-Cédric,
Ça sert juste à utiliser le smtp de gmail, plutôt que de configurer complétement un serveur de messagerie, mais via son propre serveur.
Bonne journée
17 janvier 2018
comment on fait pour relier zabbix ,et gmail pour l’envoie de mail
16 février 2018
Bonjour @tsiouh,
A mon avis, il doit être écrit dans la doc de Zabbix comment utiliser un serveur SMTP pour l’envoi d’email, tu met ton serveur postfix. Et à partir de là, tu dois pouvoir utiliser cet article pour utiliser gmail en tant que relay.
Bonne journée
14 avril 2010
Sympathique pour que google ait encore plus de données sur la vie privée de chacun…
DONNONS LEURS NOS DONNÉES !
20 avril 2010
Canon, merci. Ca fonctionnne très bien avec GoogleApps également. Comme ça Google s’occupe des spams, sécurité et autres bricoles et nous on se retrouve avec une messagerie client d’enfer en SSH et notre propre serveur de emails sans ouvrir le port 25. Que du bonheur.
20 avril 2010
Bien le bonjour @Jean-Luc,
En effet, c’est assez pratique 😉
@N. Je comprends ton point de vue, mais des gens peuvent être intéressés malgré tout par ce besoin 😉
Bonne journée à tous et merci pour vos retours
26 avril 2010
Salut PY 🙂 c’est rico le pote de jerem 😉
Mr N. à malheureusement raison … :/, c’est un sujet un peu vaste pour en parler ici, mais très important : il est vrai qu’Internet est actuellement en pleine mutation et pas vraiment dans le bon sens (ca se passe niveau réseau surtout) … Et pour contrer ça … y a pas 36 solutions … DÉCENTRALISER au max, en gros le fait que l’on soit a 97% d’internautes complètement passifs vis à vis du net le tue tout simplement :/ car donne beaucoup de trop de pouvoir aux FAIs, les gros mechants pas beaux …
Installer un postfix a la maison c’est une super bonne idée mais ne plus passer par du service en ligne (quel qu’il soit) et utiliser son propre SMTP c’est encore vachement mieux 🙂
PS: Super site Pierro, plein d’info sympa a+ On aura ptetre l’occaz de reparler de tous ça devant une bonne bière duchnord 😉 ++
27 avril 2010
Salut @Rico 😉
En effet, je suis pour l’install se son propre postfix, mais dès fois le besoin n’est pas suffisant pour passer du temps à le mettre en place 😉
Là j’avais juste besoin de faire du push mail avec un compte google aps 😉
Mais en effet le sujet est très très vaste 😉 Et on pourrait en parler pendant des heures 😉
J’espère en effet avoir l’occaz de boire une petite bière ensemble 😉
Bonne journée
14 décembre 2010
Merci pour cela! (Quoi que je ne sais pas si cela fonctionne encore 😉
Dans ta section « Copier les certificats dans votre dossier postfix : » tu as une petite faute de frappe…
root@votrehostname:~# mkdir /etc/postfix/certif
root@votrehostname:~# cp demoCA/cacert.pem FOO-key.pem FOO-cert.pem /etc/postfix/certif
root@votrehostname:~# chmod 644 /etc/postfix/certif/FOO-cert.pem /etc/postfix/certif/cacert.pem
root@votrehostname:~# chmod 400 /etc/postfix/certif/FOO-key.pem
14 décembre 2010
Salut @Alexandre 😉
Merci beaucoup, en effet, c’était un oubli 😉
Je pense que ce tuto fonctionne encore, il n’y a pas trop de raison 😉
Bonne journée
CiaO ++
14 janvier 2011
Bonjour,
J’ai suivi votre tuto que je trouve très bien foutu … si si sérieux !
Mais j’ai un p’tit souci tout semble bien se passer mais dans ma log j’ai :
connect to alt4.gmail-smtp-in.l.google.com[74.125.93.27]:25: No route to host
Auriez vous une idée du pourquoi ?
Merci d’avance 😉
14 janvier 2011
Salut @Nicolas,
Je vais poser une question bête, mais êtes vous sur d’avoir accès à internet depuis l’hôte en question ?
Arrivez-vous à pinguer l’hôte 74.125.93.27 ?
Si oui, arrivez-vous à joindre le port tcp/25 ?
Pour cela j’utilise l’outils :
tcptraceroute 74.125.93.27 25
N’hésitez pas si vous avez une question…
Bonne soirée
CiaO ++
16 décembre 2011
g cette erreur:connect to smtp.gmail.com[74.125.115.109]:587: Connection timed out et j’arrive pa à pinguer 74.125.115.109.je travail sur une machine virtuelle w connecté derrière un proxy
15 janvier 2011
Merci de votre réponse.
Accès à internet : oui pas de souci !
Ping de l’IP de google : Pas de souci non plus !
Le port 25 : J’ai testé avec un telnet 74.125.93.27 25 >> et la c’est le drame :o(
J’obtiens la chose suivante :
userperso@nomamchine:~$ tcptraceroute 74.125.93.27 25
Selected device eth0, address 192.168.1.52, port 49621 for outgoing packets
Tracing the path to 74.125.93.27 on TCP port 25 (smtp), 30 hops max
1 192.168.1.1 1.565 ms 1.252 ms 1.180 ms
2 80.10.123.15 36.057 ms !A * *
Je ne vois vraiment pas pourquoi :o( Une idée peut être lol ?
23 décembre 2011
As-tu essayé sur le port 587 ?
16 janvier 2012
Good job.
It helped me to fix some domain issues.
Merci
19 juin 2012
Bonjour,
je trouve votre tutoriel très utile,
je l’ai suivi cependant je rencontre une difficulté:
lors du test d’envoi du mail
au niveau de RCPT TO:
RCPT TO:[email protected]
451 4.3.0 : Temporary lookup failure
savez vous d’où cela peut provenir??
PS: au niveau du cat j’avais un message d’erreur pour le > que j’ai remplacer par >>