Envoyer du mail de n'importe ou avec postfix tls et sasl
Par Charles Lacroix le dimanche, février 5 2006, 00:00 - Tutorial - Lien permanent
De nos jours étant donné qu'on vit à l'age du SPAM! on est confronté à changer son hôte de relais SMTP ( serveur SMTP sortant) à chaque endroit ou l'on va. Pour la plupart des gens ce n'est pas un problème car l'ordinateur reste à la maison. Pour un geek ce n'est pas un problème critique, car comme tout le monde le sait, un geek à toujours plus d'un tour dans son sac. Le réel problème se pose quand on a des gens autour de nous qui sont sur la route ( et surtout ceux qui ont notre numéro de téléphone! ) car à ce moment précis, dès que l'internaude incompétent moyen sur la route à le moindre problème à envoyer un courriel le téléphone sonne. À chaque fois c'est la même histoire... Depuis quelques temps j'ai décidé de me simplifier la vie. Je vais leur offrir ce que j'appelle SMTP comme ça aurait toujours du être.
Pour en arriver là, il nous faut une boite à outil magique. En voici les éléments essentiels :
- FreeBDS ou Linux
- Postfix
- Cyrus SASL 2
- TLS/SSL
- Environ 30 minutes de votre temps
Voici ce qu'il faut faire pour configurer sont serveur de courrier afin qu'il fasse office d'hôte de relais SMTP de façon sécuritaire et authentifié. De cette façon vous ne deviendrai pas un relais ouvert ( open relay ) et vous pourrai envoyer de courrier de presque n'importe.
1. Installer Postfix avec le support pour SASL, TLS. Avec les ports de FreeBSD, en faisant make on a un menu qui nous apparait et on peut cocher les options que l'on veux. Sur RedHat Enterprise Linux, je crois que le support est activé par défaut :)
2. Installer cyrus SASL2
cd /usr/ports/security/cyrus-sasl2 make all install clean cd ../cyrus-sasl2-saslauthd make all install clean
3. Configure SASL2 et déactiver NTLM pour s'éviter des problèmes avec Outlook Express
cd /usr/local/lib/sasl2 echo "pwcheck_method: saslauthd" > smtpd.conf mkdir deactivated mv *ntlm* deactivated
4. Générer le certificat SSL
mkdir /usr/local/etc/postfix/ssl cd /usr/local/etc/postfix/ssl openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650
5. Configurer Postfix /usr/local/etc/postfix/main.cf
# Config pour SASL broken_sasl_auth_clients = yes smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination * Notez que les options smtpd_sender_restrictions et smtpd_recipient_restrictions peuvent être différente selon votre configuration et vos besoins. # Configuration pour TLS smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.pem smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.pem smtpd_tls_CAfile = /usr/local/etc/postfix/ssl/smtpd.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
6. Activer saslauthd au démarrage ( ajouter ces lignes a /etc/rc.conf )
# Enable saslauthd saslauthd_enable="YES" saslauthd_flags="-a getpwent" * Notez que FreeBSD utilise saslauthd_flags="-a pam" par défaut, mais en lisant dans le man page on voit que PAM est supporté que sur Linux et Solaris ... Bizarre!
7. Démarer le service saslauthd
/usr/local/etc/rc.d/saslauthd.sh start
Suite à cela, j'ai du ajuster certain paramètres dans ma configuration de MailScanner car SpamAssassin déterminait à l'aide des RBL ( real time blacklist ) que les courriel étaient en provenance d'une place d'adresses résidentielle. Ce qui augmente les chances que le courriel soit perçu comme un SPAM!
Avec une procédure comme celle ci on a plus de raisons d'utiliser le serveur SMTP traditionnel des divers fournisseurs d'accès Internet.
Postfix TLS SASL2


































Commentaires