Service postfix

De Wiki de Romain RUDIGER
Aller à : navigation, rechercher

Installer postsfix

Sous Debian, voici les paquets installés :

apt-get install postfix sasl2-bin libsasl2-modules mailutils
dpkg-reconfigure postfix

Configurer postfix ainsi :

  • Satellite system
  • domain name : toto.com

configurer postfix avec relai SMTP AUTH LOGIN over SSL

configurer stunnel

Dans /etc/default/stunnel4 :

ENABLED=1
FILES="/etc/stunnel/*.conf"
OPTIONS=""

Dans /etc/stunnel/stunnel.conf :

debug = 5
output = /var/log/stunnel4/stunnel.log
client = yes
foreground = no
[smtps]
accept = 127.0.0.1:25465
connect = smtp.novalan.fr:smtps

Nous avons donc le port 127.0.0.1:25465 qui est redirigé vers le port smtps du service smtp smtp.novalan.fr qui est un alias avec ssl0.ovh.net :

netstat -lnp | grep -E "(Address|stunnel)"
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:25465         0.0.0.0:*               LISTEN      2910/stunnel4

configurer l'authentification SMTP en utilisant sasl

On met le compte utilisé dans le fichier

echo "[127.0.0.1:25465 sender%novalanEUH.fr:abcd" >>/etc/postfix/sasl_passwd
chown root:root /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
postmap hash:/etc/postfix/sasl_passwd

Ne pas oublier de régénérer la base à chaque modification avec postmap.

configurer postfix

Dans /etc/postfix/main.cf :

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = cryolithe.novalan.fr
mydomain = $myhostname
myorigin = $myhostname
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$myhostname, localhost
relayhost = [127.0.0.1]:25465
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

Ce qui change :

  • relayhost vers le port de stunnel.
  • smtp_sasl_auth_enable pour activer le transfert smtp
  • smtp_sasl_password_maps pour utiliser le compte spécifié lors de l'authentification

Attention, il faut bien faire correspondre les adresses : accept = relayhost = sasl_passwd = 127.0.0.1:25465

Rediriger les courriels des utilisateurs locaux

Dans /etc/aliases :

dude: dude@novalanEUH.fr
root: admin@novalanEUH.fr

Il faut faire la commande "newaliases" à chaque modification de ce fichier.

Relancer les services et tester

Relance de stunnel et postfix :

/etc/init.d/stunnel4 restart
/etc/init.d/postfix restart

Tester la configuration en envoyant un courriel vers l'extérieur puis vers un utilisateur local sans et avec redirection :

echo "vers l'extérieur" | sendmail test@novalanHEU.fr
echo "utilisateur local sans redirection" | sendmail glftpd
echo "utilisateur local avec redirection" | sendmail dude

Normalement postfix dispatche bien les courriels.

Trucs et astuces

Logs

Voir les logs :

  • /var/log/stunnel4/stunnel.log
  • /var/log/mail.*

Tunnel SSL

Tester le tunnel ssl avec telnet et vérifier que le service SMTPD distant est disponible :

# telnet 127.0.0.1 25465
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 ns0.ovh.net ssl0.ovh.net. You connect to mail240.ha.ovh.net ESMTP
ehlo bla.novalan.fr
250-ns0.ovh.net ssl0.ovh.net. You connect to mail240.ha.ovh.net
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-PIPELINING
250-8BITMIME
250 SIZE 15000000

Il est possible d'envoyer un courriel manuellement, cependant pour s'authentifier, il faut convertir vos identifiants en base64 :

# telnet 127.0.0.1 25465
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 ns0.ovh.net ssl0.ovh.net. You connect to mail240.ha.ovh.net ESMTP
ehlo test.novalan.fr
250-ns0.ovh.net ssl0.ovh.net. You connect to mail240.ha.ovh.net
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-PIPELINING
250-8BITMIME
250 SIZE 15000000
helo
250 You are: x.x.x.x
auth login
334 VXNlcm5hbWU6
cm9tsdfsGlnZXIlbmdfs5mcg==
334 UGFzc3dvcmQ6
SFsfsdzbiE=
235 ok, go ahead (#2.0.0)
MAIL FROM test@novalanHEU.fr
250 ok
RCPT TO test@novalanHEU.fr
250 ok
DATA
354 go ahead
Subject: test smtp auth login !
yata
.
250 Message queued
quit
221 ns0.ovh.net ssl0.ovh.net. You connect to mail240.ha.ovh.net
Connection closed by foreign host.