Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
postfix [Le 14/11/2012, 14:02] – [Postfix : agent de transfert de courriel (SMTP)] 178.32.161.39 | postfix [Le 15/08/2020, 11:26] (Version actuelle) – Aide à la synthèse structurelle sur la messagerie sefran | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | Voir [[:Comment configurer sa distribution de courriels systèmes MTA|Comment configurer sa distribution de courriels systèmes MTA ?]] qui se propose de reprendre cette partie pour postfix… | ||
+ | |||
+ | ====== Postfix : agent de transfert de courriel (SMTP) ====== | ||
+ | |||
+ | **Postfix** est l' | ||
+ | |||
+ | Il est dans les dépôts //main//, donc il reçoit les mises à jour de sécurité. | ||
+ | |||
+ | Cette page décrit son installation et sa configuration pour en faire un serveur SMTP utilisant une connexion sécurisée. | ||
+ | |||
+ | <note warning> | ||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | * Disposer des [[: | ||
+ | * Disposer d'une connexion à Internet configurée et activée. | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | Nous allons configurer Postfix pour être utilisé avec SASL, qui va assurer l' | ||
+ | |||
+ | Pour installer Postfix avec SMTP-AUTH et TLS : | ||
+ | |||
+ | |||
+ | [[: | ||
+ | |||
+ | ===== Configuration ===== | ||
+ | |||
+ | postfix doit être membre du groupe sasl. Pour ajouter l' | ||
+ | |||
+ | sudo adduser postfix sasl | ||
+ | |||
+ | Pour configurer postfix, tapez : | ||
+ | |||
+ | sudo dpkg-reconfigure postfix | ||
+ | |||
+ | Lorsqu' | ||
+ | |||
+ | | ||
+ | NONE | ||
+ | | ||
+ | | ||
+ | No | ||
+ | | ||
+ | 0 | ||
+ | + | ||
+ | |||
+ | Ensuite entrez les commandes suivantes : | ||
+ | |||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo | ||
+ | sudo postconf -e ' | ||
+ | |||
+ | sudo touch / | ||
+ | sudo su | ||
+ | echo ' | ||
+ | echo ' | ||
+ | exit | ||
+ | sudo mkdir / | ||
+ | cd / | ||
+ | sudo openssl genrsa -des3 -rand / | ||
+ | sudo openssl req -new -key smtpd.key -out smtpd.csr | ||
+ | sudo openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt | ||
+ | sudo openssl rsa -in smtpd.key -out smtpd.key.unencrypted | ||
+ | sudo mv -f smtpd.key.unencrypted smtpd.key | ||
+ | sudo chmod 600 smtpd.key | ||
+ | sudo openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 | ||
+ | | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | sudo postconf -e ' | ||
+ | | ||
+ | [[: | ||
+ | |||
+ | < | ||
+ | # See / | ||
+ | |||
+ | smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) | ||
+ | biff = no | ||
+ | |||
+ | # appending .domain is the MUA's job. | ||
+ | append_dot_mydomain = no | ||
+ | |||
+ | # Uncomment the next line to generate " | ||
+ | # | ||
+ | |||
+ | myhostname = server1.example.com | ||
+ | alias_maps = hash:/ | ||
+ | alias_database = hash:/ | ||
+ | myorigin = / | ||
+ | mydestination = server1.example.com, | ||
+ | relayhost = | ||
+ | mynetworks = 127.0.0.0/8 | ||
+ | mailbox_size_limit = 0 | ||
+ | recipient_delimiter = + | ||
+ | inet_interfaces = 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, | ||
+ | smtpd_tls_auth_only = no | ||
+ | smtp_use_tls = yes | ||
+ | smtpd_use_tls = yes | ||
+ | smtp_tls_note_starttls_offer = yes | ||
+ | smtpd_tls_key_file = / | ||
+ | smtpd_tls_cert_file = / | ||
+ | smtpd_tls_CAfile = / | ||
+ | smtpd_tls_loglevel = 1 | ||
+ | smtpd_tls_received_header = yes | ||
+ | smtpd_tls_session_cache_timeout = 3600s | ||
+ | tls_random_source = dev:/ | ||
+ | </ | ||
+ | |||
+ | N' | ||
+ | |||
+ | D' | ||
+ | |||
+ | Puis redémarrez le serveur Postfix : | ||
+ | |||
+ | sudo / | ||
+ | | ||
+ | ou | ||
+ | sudo service postfix restart | ||
+ | |||
+ | ===== Authentification ===== | ||
+ | |||
+ | L' | ||
+ | |||
+ | NB: Pour installer **saslauthd** utiliser la commande suivante : | ||
+ | < | ||
+ | |||
+ | |||
+ | Il est possible de changer quelques détails pour le faire fonctionner proprement. Postfix exécutant " | ||
+ | |||
+ | mkdir -p / | ||
+ | rm -fr / | ||
+ | ln -s / | ||
+ | chown -R root:sasl / | ||
+ | chmod 710 / | ||
+ | adduser postfix sasl | ||
+ | | ||
+ | (problème de syntaxe sur l' | ||
+ | Maintenant [[: | ||
+ | |||
+ | Pour ce faire décommentez la ligne < | ||
+ | |||
+ | |||
+ | |||
+ | Ce qui donne : | ||
+ | < | ||
+ | # This needs to be uncommented before saslauthd will be run automatically | ||
+ | START=yes | ||
+ | |||
+ | [...] | ||
+ | |||
+ | # You must specify the authentication mechanisms you wish to use. | ||
+ | # This defaults to " | ||
+ | # " | ||
+ | # MECHANISMS=" | ||
+ | |||
+ | MECHANISMS=" | ||
+ | |||
+ | [...] | ||
+ | |||
+ | # Example for postfix users: "-c -m / | ||
+ | OPTIONS=" | ||
+ | </ | ||
+ | |||
+ | |||
+ | <note tip>Si vous préférez, vous pouvez utiliser **shadow** au lieu de **pam**. | ||
+ | Ceci utilisera **MD5** au lieu de **password** et le rendra parfaitement sécurisé. Le nom d' | ||
+ | |||
+ | ===== Les tests ===== | ||
+ | |||
+ | Démarrez // | ||
+ | sudo / | ||
+ | ou | ||
+ | sudo service saslauthd start | ||
+ | |||
+ | Afin de vérifier que SMTP-AUTH et TLS fonctionnent correctement, | ||
+ | telnet localhost 25 | ||
+ | |||
+ | Ensuite après avoir établi la connexion avec postfix tapez : | ||
+ | EHLO somename.tld | ||
+ | |||
+ | Si vous voyez ces lignes | ||
+ | 250-STARTTLS | ||
+ | 250-AUTH | ||
+ | Ça fonctionne ! | ||
+ | |||
+ | Pour retourner à l' | ||
+ | quit | ||
+ | |||
+ | |||
+ | Vous pouvez également tester l' | ||
+ | testsaslauthd -u utilisateur -p password | ||
+ | | ||
+ | En cas de bon fonctionnement, | ||
+ | 0: OK " | ||
+ | Sinon : | ||
+ | 0: NO " | ||
+ | |||
+ | < | ||
+ | //sudo dpkg-statoverride --force --update --add root sasl 755 / | ||
+ | Puis un restart du service</ | ||
+ | |||
+ | ==== Envoi d'un email ==== | ||
+ | En ligne de commande sur le serveur:\\ | ||
+ | Il faut évidemment remplacer // | ||
+ | Pour plus de clarté, j'ai laissé les retours que j'ai fait précéder de //>// | ||
+ | < | ||
+ | telnet localhost 25 | ||
+ | > Trying ::1... | ||
+ | > Connected to localhost. | ||
+ | > Escape character is ' | ||
+ | > 220 listes.mon_domaine.fr ESMTP Postfix (Debian/ | ||
+ | EHLO | ||
+ | > 501 Syntax: EHLO hostname | ||
+ | MAIL FROM: mon_email_expediteur@mon_fai.fr | ||
+ | > 250 2.1.0 Ok | ||
+ | RCPT TO: email_destinataire@fai.fr | ||
+ | > 250 2.1.5 Ok | ||
+ | DATA | ||
+ | > 354 End data with < | ||
+ | test envoi email | ||
+ | . | ||
+ | > 250 2.0.0 Ok: queued as 941E5440B91 | ||
+ | quit | ||
+ | > 221 2.0.0 Bye | ||
+ | > Connection closed by foreign host. | ||
+ | </ | ||
+ | Il ne reste plus qu'à relever votre boîte de messagerie // | ||
+ | ===== Pour aller plus loin ===== | ||
+ | |||
+ | Si vous avez envie d' | ||
+ | |||
+ | Dans '' | ||
+ | mailbox_command = procmail -a " | ||
+ | en | ||
+ | mailbox_command = maildrop | ||
+ | |||
+ | N' | ||
+ | maildirmake.courier = ~/Maildir | ||
+ | Et d' | ||
+ | |||
+ | ===== Bridage SMTP ===== | ||
+ | |||
+ | Pour lutter contre le SPAM engendré par les machines zombies (machines infectées par des virus servant de relais aux spammeurs), la plupart des FAI ont décidé de bloquer le port 25 en sortie (dans le sens " | ||
+ | Ceci empêche la mise en place d'un serveur SMTP chez soi (en tous cas pour l' | ||
+ | Ceci empêche également l' | ||
+ | |||
+ | Si vous etes abonnés Free avec une Freebox, vous pouvez débloquer l' | ||
+ | // | ||
+ | |||
+ | Chez Neuf, ce filtrage est aussi actif. Pour changer les paramètres, | ||
+ | |||
+ | D'une manière générale, regardez les options de votre Box pour désactiver ce filtrage. Chez certains fournisseurs d' | ||
+ | |||
+ | Pour modifier le port d' | ||
+ | '' | ||
+ | ( EX : '' | ||
+ | |||
+ | Il est également possible d' | ||
+ | |||
+ | 587 | ||
+ | -o smtpd_proxy_ehlo=no | ||
+ | -o content_filter=dksign: | ||
+ | |||
+ | juste en dessous de votre ligne smtp | ||
+ | |||
+ | smtp inet n | ||
+ | -o smtpd_proxy_ehlo=no | ||
+ | -o content_filter=dksign: | ||
+ | ===== État de la queue des messages ===== | ||
+ | |||
+ | La commande suivante permet de connaître le status des messages : | ||
+ | < | ||
+ | |||
+ | Pour plus de détails, on peut également consulter le fichier **/ | ||
+ | |||
+ | Pour supprimer un message de la queue : | ||
+ | < | ||
+ | où queue_id doit être remplacé par l' | ||
+ | |||
+ | Pour supprimer tous les messages de la queue : | ||
+ | < | ||
+ | |||
+ | =====Voir aussi===== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * Basé sur [[http:// | ||
+ | * [[tutoriel: | ||
+ | * [[: | ||
+ | ---- | ||
+ | |||
+ | // |