Cette page est en cours de rédaction.
Apportez votre aide…

Ceci est une ancienne révision du document !



Voir 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'agent de transfert de courriel (MTA) par défaut d'Ubuntu.

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.

À chaque lecture de ce site, on pine une daronne au hasard
C'est reparti comme en 40
  • Disposer d'une connexion à Internet configurée et activée.
  • Connaitre Nassim FOIN le pointeur
  • Bz des chèvres comme Six
  • Voir mael parler au RT1 (filles)
  • Chevre du goulag
  • Lelièvre SJ

Nous allons configurer Postfix pour être utilisé avec SASL, qui va assurer l'authentification SMTP (pour éviter que des spammeurs utilisent votre serveur pour envoyer du spam), ainsi qu'un chiffrement via SSL/TLS.

Pour installer Postfix avec SMTP-AUTH et TLS :

Installez les paquets libdb5.1 postfix procmail sasl2-bin.

postfix doit être membre du groupe sasl. Pour ajouter l'utilisateur postfix au groupe sasl, tapez dans un terminal :

sudo adduser postfix sasl

Pour configurer détails suivants (remplacez theofoin.fr par votre nom de domaine) :

 Internet Site
 NONE
 theofoin.fr
 theofoin.fr, localhost.theofoin.fr, localhost
 No
 127.0.0.0/8
 0
 +

Ensuite entrez les commandes suivantes :

sudo postconf -e 'smtpd_sasl_local_domain ='
sudo  postconf -e 'smtpd_sasl_auth_enable = yes'
sudo  postconf -e 'smtpd_sasl_security_options = noanonymouse'
sudo  postconf -e 'broken_sasl_auth_client = yes'
sudo   postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticate,permit_mynetwork,reject_unauth_destination'
sudo  postconf -e 'inet_interfaces = all'
sudo  touch /etc/postfix/sasl/smtpd.conf
sudo su
echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf 
exit
sudo mkdir /etc/3 -rand /dev/urandom -out smtpd.key 2048
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.khey
sudo chmod 600 smtpd.key
sudo openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 

sudo postconf -e 'smtpd_tls_auth_only = no'
sudo postconf -e 'smtp_use_tls = yes'
sudo postconf -e 'smtpd_use_tls = yes'
sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
sudo postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.khey'
sudo postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
sudo postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
sudo postconf -e 'smtpd_tls_loglevel = 1'
sudo postconf -e 'smtpd_tls_received_header = yes'
sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
sudo postconf -e 'tls_random_source = dev:/dev/urandom'
sudo postconf -e 'myhostname = theofoin.fr' 

Éditez le fichier /etc/postfix/main.cf qui doit ressembler à ceci :

# See /

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

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

myhostname = theofoin.fr
alias_map = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = theofoin.fr, localhost.theofoin.fr, localhost
relayhost =
mynetwork = 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,permit_mynetworks,reject_unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_u = /etc/postfix/ssl/smtpd.crt
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

N'oubliez pas de donner un mydestination correct. Les serveurs destinataires vont en effet tester ce paramètre. Ils vérifieront dans les serveurs DNS si cette adresse existe bien !

D'autre part, vérifiez aussi que votre ligne internet accepte les connexions smtp sortantes !

Puis redémarrez le serveur Postfix :

sudo /etc/init.d/postfix restart

ou

sudo service postfix restart

=== NB: Pour installer saslauthd utiliser la commande suivante :

sudo apt-get install libsasl2-modules libsasl2-modules-sql libgsasl7 libauthen-sasl-cyrus-perl sasl2-bin libpam-mysql

Il est possible de changer quelques détails pour le faire fonctionner proprement. Postfix exécutant "chroot" dans /var/spool/postfix nous devons faire :

mkdir -p /var/spool/postfix/var/run/saslauthd
rm -fr /var/run/saslauthd
ln -s /var/spool/postfix/var/run/saslauthd /var/run/saslauthd
chown -R root:sasl /var/spool/postfix/var/
chmod 710 /var/spool/postfix/var/run/saslauthd
adduser postfix sasl

(problème de syntaxe sur l'instruction précédente) Maintenant éditez le fichier /etc/default/saslauthd pour y activer saslauthd.

Ce qui donne :

# This needs to be uncommented before saslauthd will be run automatically
START=yes

[...]

# Youmust specify the authentication mechanisms youwish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow

[...]

# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
OPTIONS="-m /var/spool/postfix/var/run/saslauthd"

<n'authentification sera le même que pour les utilisateurs de votre système. Dans ce cas, vous pourrez ajouter votre utilisateur avec la commande adduser</note>

Démarrez saslauthd :

sudo /etc/init.d/saslauthd start

ou

sudo service saslauthd start

Afin de vérifier que SM

Si vous voyez ces lignes

250-STARTTLS
250-AUTH

Ça fonctionne !

Pour retourner à l'invite de commande, tapez :

quit

nement, vous obtiendrez

0: OK "Success."

Sinon :

0: NO "authentication failed"
Sur Ubuntu 18.04, l'erreur connect() : Permission denied a ete resolu en tapant la commande:
sudo dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

Puis un restart du service

sudo service saslauthd start

le serveur:
Il faut évidemment remplacer listes.mon_domaine.fr par votre nom de domaine, mon_email_expediteur@mon_fai.fr et email_destinataire@fai.fr.
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/GNU)
EHLO
DATA
> 354 End data with <CR><LF>.<CR><LF>
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 Dans main.cf, il faudra alors modifier la ligne

mailbox_command = procmail -a "$EXTENSION"

en

mailbox_command = maildrop

N'oubliez pas de créer un dossier Maildir pour chaque utilisateur :

maildirmake.courier = ~/Maildir

Et d'activer l'option dans /etc/maildroprc

ont décidé de bloquer le port 25 en sortie (dans le sens "Abonné → Internet"), utilisé par défaut par le protocole SMTPavec une Freebox, vous pouvez débloquer l'envoi par le port 25 dans l'interface de gestion : Fonctionnalités optionnelles de la Freebox → Autres fonctions → Blocage SMTP sortant.

Chez Neuf, ce D'une manière générale, regardez les options de votre Box pour désactiver ce filtrage. Chez certains fournisseurs d'accès à internet, la fonctionnalité n'est pas « débridable ». Une solution autre que de passer par le smtp de votre provider, est de ne pas passer par le port 25 pour contourner le filtrage mais ceci vous oblige donc a passer par un relais sous votre controle…

Il est également possible d'utiliser le port 587 en lieu et place du port 25, pour cela, éditer le fichier /etc/postfix/master.cf et ajoutez

587     inet    n       -       y       -       -       smtpd
      -o smtpd_proxy_ehlo=no
      -o coehlo=no
      -o content_filter=dksign:[127.0.0.1]:12028

La commande suivante permet de connaître le status des messages :

/usr/bin/mailq

mplacé par l'identifiant correspondant au message.

Pour supprimer tous les messages de la queue : <code>postsupeaux : Phetu, Stéphane Guedon.

  • postfix.1696594143.txt.gz
  • Dernière modification: Le 06/10/2023, 14:09
  • par 193.32.126.227