Votre empreinte sur le web
ooznet.com logo
  • Trucs et astuces
  • Blog
  • Contact
Accueil » Trucs et astuces » Serveur web Debian » Postfix: SMTP-AUTH et TLS
  • Bash

Postfix: SMTP-AUTH et TLS

Comme toujours, on installe:

apt-get install postfix libsasl2 sasl2-bin libsasl2-modules libdb3-util procmail

(ce qui est barré n'est pas dispo pour debian lenny)

2 questions vont vous être posées:

Configuration type du serveur de messagerie : Site Internet
Nom de courrier: server1.example.com

Ensuite, on configure:

dpkg-reconfigure postfix

Des questions vont vous être posées:

Configuration type du serveur de messagerie : Site Internet
Nom de courrier: server1.example.com
Destination des courriels de "root" et de "postmaster:
Autres destinations pour lesquelles le courrier sera accepté (champ vide autorisé): server1.example.com, localhost.example.com, localhost.localdomain, localhost
Faut-il forcer des mises à jour synchronisées de la file d'attente des courriels: Non
Réseaux internes:127.0.0.0/8
Faut-il utiliser procmail pour la distribution locale: Oui
Taille maximale des boîtes aux lettres: 0 (pas de limite; vous pouvez en fixer une)
Caractère d'extension des adresses locales: +
Protocoles internet à utiliser: tous

On affine la configuration (la commande postconf -e permet d'ajouter/modifier la ligne mentionnée dans le fichier main.cf) :

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'
echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

Passons maintenant à la génération des certificats pour TLS (plus d'infos sur TLS: http://fr.wikipedia.org/wiki/Transport_Layer_Security)

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
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

On configure maintenant Postfix pour TLS:

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/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/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 = server1.example.com' =>n'oubliez pas de mettre ici le nom de votre serveur!

Votre fichier /etc/postfix/main.cf devrait maintenant ressembler à ça:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = server1.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Redémarrez Postfix:

/etc/init.d/postfix restart

L'authentification sera faite par

saslauthd

, et pour que celà fonctionne correctement, voici les modifs à faire:

mkdir -p /var/spool/postfix/var/run/saslauthd

Puis dans le fichier

/etc/default/saslauthd

:

[...]
# Should saslauthd run automatically on startup? (default: no)
START=yes
[...]
# Note: See /usr/share/doc/sasl2-bin/README.Debian
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

On démarre saslauthd:

/etc/init.d/saslauthd start

Pour vérifier le bon fonctionnement de SMTP-AUTH et TLS:

telnet localhost 25

Une fois la connexion établie:

ehlo localhost

Si vous voyez les lignes

250-STARTTLS

et

250-AUTH PLAIN LOGIN

, alors c'est bon.(pour ma part j'obtiens 250-AUTH LOGIN PLAIN, mais j'imagine que c'est pareil)

Pour revenir au shell, tapez

quit

Je ne traite pas le point suivant pour l'instant, mais je le copie quand même sans traduction:

Courier-IMAP/Courier-POP3

Run this to install Courier-IMAP/Courier-IMAP-SSL (for IMAPs on port 993) and Courier-POP3/Courier-POP3-SSL (for POP3s on port 995):

apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0

You will be asked two questions:

Create directories for web-based administration ? <-- No
SSL certificate required <-- Ok

If you do not want to use ISPConfig, configure Postfix to deliver emails to a user's Maildir*:

postconf -e 'home_mailbox = Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

*Please note: You do not have to do this if you intend to use ISPConfig on your system as ISPConfig does the necessary configuration using procmail recipes. But please go sure to enable Maildir under Management -> Server -> Settings -> EMail in the ISPConfig web interface.

Voir également

http://www.alsacreations.com/tuto/lire/614-Serveur-mail-Postfix.html

‹ MySQL haut Apache - PHP5 ›
  • Ajouter un commentaire

Les trucs et astuces

  • Bash
  • Tutoriels, trucs, astuces et tout le tralala
  • Drupal: trucs et astuces
    • Personnaliser une vue
    • Récupérer les arguments d'une URL
    • Récupérer les informations d'un profil utilisateur pour les intégrer dans une page
    • TODO list
    • Drupal et jQuery, une grande histoire d'amour... ou pas
  • Installation d'un serveur Web Debian + Webmin + Virtualmin
    • Préparer le système
    • Bind
    • MySQL
    • Postfix: SMTP-AUTH et TLS
    • Apache - PHP5
      • Recompiler Apache (changement de la destination de /home)
    • Proftpd
    • Sécuriser le système
    • Administrer ses bases de données: Phpmyadmin
    • Surveillance du serveur: Munin
    • Installer Webmin
    • Installer Virtualmin

Infos légales | Réalisé par ooznet, 2009
Créé avec l'aide de Drupal, un système de gestion de contenu "opensource"