
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 []:test@gmail.com 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 = test@gmail.com 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/emailAddress=test@gmail.com 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/emailAddress=test@gmail.com' -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 = test@gmail.com 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]:<strong>y</strong> 1 out of 1 certificate requests certified, commit? [y/n]<strong>y</strong> 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 test@gmail.com: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) <strong>EHLO test@gmail.com</strong> 250-hostname 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN <strong>MAIL FROM:test@gmail.com</strong> 250 2.1.0 Ok <strong>RCPT TO:test@gmail.com</strong> 250 2.1.5 Ok <strong>DATA</strong> 354 End data with <CR><LF>.<CR><LF> <strong>Subject:test</strong> <strong>test envoi de mail</strong> <strong>.</strong> 250 2.0.0 Ok: queued as 9D381812 <strong>quit</strong> 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
Articles Relatifs :
- Focus sur Logwatch
- Installer OTRS sur Ubuntu
- Savoir si son adresse ip est blacklisté pour l’envoi de mail
- Postfix : Queue file write error + virtual_alias_maps map lookup problem
- Supervision de postfix via mailgraph avec le plugin check_mailstat.pl via Nagios/Centreon






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
Mais… euh… concrètement… Ça sert à quoi ?
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
Sympathique pour que google ait encore plus de données sur la vie privée de chacun…
DONNONS LEURS NOS DONNÉES !
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.
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
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
++
Salut @Rico


Et on pourrait en parler pendant des heures 

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
J’espère en effet avoir l’occaz de boire une petite bière ensemble
Bonne journée
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
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 ++
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 hostAuriez vous une idée du pourquoi ?
Merci d’avance
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 ++
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
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
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
( Une idée peut être lol ?
As-tu essayé sur le port 587 ?
Good job.
It helped me to fix some domain issues.
Merci
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:zabbix.francois1@gmail.com
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 >>