Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:linux:postfix [2009/07/17 15:30] benoit |
informatique:linux:postfix [2018/10/17 12:59] (Version actuelle) benoit [Tests] |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
====== Postfix - Dovecot - Mysql - Postfixadmin sous debian lenny ====== | ====== Postfix - Dovecot - Mysql - Postfixadmin sous debian lenny ====== | ||
+ | |||
===== Présentation de l'architecture du système de messagerie ===== | ===== Présentation de l'architecture du système de messagerie ===== | ||
Ligne 17: | Ligne 18: | ||
**Ci-dessous le diagramme des flux internes et externes du système de messagerie entre les différents composants :** | **Ci-dessous le diagramme des flux internes et externes du système de messagerie entre les différents composants :** | ||
- | {{technique:postfix.png?800}} | + | {{informatique:linux:postfix.png?800}} |
Dans la section d'installation nous allons mettre en place cette solution | Dans la section d'installation nous allons mettre en place cette solution | ||
Ligne 97: | Ligne 98: | ||
$CONF['database_prefix'] = ''; | $CONF['database_prefix'] = ''; | ||
... | ... | ||
- | $CONF['admin_email'] = 'postmaster@avg-groupe.net'; | + | $CONF['admin_email'] = 'postmaster@domain.com'; |
... | ... | ||
$CONF['default_aliases'] = array ( | $CONF['default_aliases'] = array ( | ||
- | 'abuse' => 'abuse@host.avg-groupe.net', | + | 'abuse' => 'abuse@host.domain.com', |
- | 'hostmaster' => 'hostmaster@mailhost.avg-groupe.net', | + | 'hostmaster' => 'hostmaster@mailhost.domain.com', |
- | 'postmaster' => 'postmaster@mailhost.avg-groupe.net', | + | 'postmaster' => 'postmaster@mailhost.domain.com', |
- | 'webmaster' => 'webmaster@mailhost.avg-groupe.net' | + | 'webmaster' => 'webmaster@mailhost.domain.com' |
); | ); | ||
$CONF['domain_path'] = 'YES'; | $CONF['domain_path'] = 'YES'; | ||
Ligne 111: | Ligne 112: | ||
$CONF['emailcheck_resolve_domain']='NO'; | $CONF['emailcheck_resolve_domain']='NO'; | ||
- | Nous allons maintenant terminer la configuration depuis votre navigateur : **http://mailhost.avg-groupe.net/postfixadmin/setup.php** | + | Nous allons maintenant terminer la configuration depuis votre navigateur : **http://mailhost.domain.com/postfixadmin/setup.php** |
Normalement lorsque la page est chargée, tout doit être **"OK"** il ne doit y avoir aucune erreur. Il vous est proposé de créer un compte administrateur, créez le librement. | Normalement lorsque la page est chargée, tout doit être **"OK"** il ne doit y avoir aucune erreur. Il vous est proposé de créer un compte administrateur, créez le librement. | ||
Ligne 118: | Ligne 119: | ||
rm /var/www/postfixadmin/setup.php | rm /var/www/postfixadmin/setup.php | ||
- | Vous pouvez désormais créer des domaines de messagerie et des comptes mail sur **http://mailhost.avg-groupe.net/postfixadmin/** | + | Vous pouvez désormais créer des domaines de messagerie et des comptes mail sur **http://mailhost.domain.com/postfixadmin/** |
Attention :!: ces comptes ne seront pas fonctionnels tant que **postfix** et **dovecot** ne seront pas installés. | Attention :!: ces comptes ne seront pas fonctionnels tant que **postfix** et **dovecot** ne seront pas installés. | ||
Ligne 138: | Ligne 139: | ||
# Nom d'hote du serveur , veiller à ce que ce nom soit fqdn et qu'il soit existant dans le domaine (reverse dns) | # Nom d'hote du serveur , veiller à ce que ce nom soit fqdn et qu'il soit existant dans le domaine (reverse dns) | ||
- | myhostname=mailhost.avg-groupe.net | + | myhostname=mailhost.domain.com |
| | ||
# Destinations locales gérés par postfix Attention à ne pas mettre un domaines que vous allez gérer virtuellement | # Destinations locales gérés par postfix Attention à ne pas mettre un domaines que vous allez gérer virtuellement | ||
- | mydestination=mailhost.avg-groupe.net, localhost.avg-groupe.net, localhost | + | mydestination=mailhost.domain.com, localhost.domain.com, localhost |
| | ||
# Permet de definir un relais pour vos mails sortant exemple : [smtp.nordnet.fr] vide par defaut | # Permet de definir un relais pour vos mails sortant exemple : [smtp.nordnet.fr] vide par defaut | ||
Ligne 150: | Ligne 151: | ||
| | ||
# mydomain permet de définir le domaine internet du système de messagerie | # mydomain permet de définir le domaine internet du système de messagerie | ||
- | mydomain=avg-groupe.net | + | mydomain=domain.com |
| | ||
# smtpd_recipient_restrictions permet d'ajouter des restrictions sur les mails entrant | # smtpd_recipient_restrictions permet d'ajouter des restrictions sur les mails entrant | ||
Ligne 179: | Ligne 180: | ||
# Fichier de requete SQL pour les comptes de messagerie | # Fichier de requete SQL pour les comptes de messagerie | ||
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf | virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf | ||
+ | | ||
+ | local_transport = virtual | ||
+ | local_recipient_maps = $virtual_mailbox_maps | ||
| | ||
# UID et GID à fixer pour le stockage de mail | # UID et GID à fixer pour le stockage de mail | ||
Ligne 275: | Ligne 279: | ||
# Requete pour obtenir les informations d'un compte. | # Requete pour obtenir les informations d'un compte. | ||
user_query = SELECT maildir, 5000 AS uid, 5000 AS gid FROM mailbox WHERE username = '%u' | user_query = SELECT maildir, 5000 AS uid, 5000 AS gid FROM mailbox WHERE username = '%u' | ||
+ | |||
==== Tests ==== | ==== Tests ==== | ||
- | Pour tester le SMTP : | + | Voir : [[telnet_test_mail|Tests protocoles mail en telnet]] |
- | telnet 127.0.0.1 smtp | + | ===== Installation de modules complémentaires ===== |
- | helo test | + | |
- | mail from:<prenom.nom@avantgarde-dom.com> | + | |
- | rcpt to:<user@avg-groupe.net> | + | ==== ClamAV ==== |
- | data | + | === Description === |
- | subject: test | + | ClamAV est un antivirus libre s'intégrant à Postfix. Les mails entreront dans le serveur par SMTP, postfix redirigera le mail à ClamAV par le port 10025 et ClamAV reinjectera le mail dans Postfix par le port 10026. |
- | test | + | |
- | . | + | {{informatique:linux:postfix-clamav.png?300}} |
- | quit | + | |
+ | === Installation du produit === | ||
+ | |||
+ | Lancer la commande suivante pour installer les paquetages : | ||
+ | apt-get install clamsmtp clamav-freshclam | ||
+ | |||
+ | === Configuration === | ||
+ | Nous allons dire à Postfix d'envoyer les messages entrants dans un filtre nommé **scan** par le port **10025**. Pour cela éditer le fichier ''/etc/postfix/main.cf'' et ajouter à la fin la ligne suivante : | ||
+ | content_filter = scan:[127.0.0.1]:10025 | ||
+ | |||
+ | Nous allons créer la fonction **scan** et créer le service de ré-injection des messages vers postfix sur le port 10026. Pour cela éditer le fichier ''/etc/postfix/master.cf'' et ajouter à la fin les lignes suivantes : | ||
+ | |||
+ | # AV scan filter (used by content_filter) | ||
+ | scan unix - - n - 16 smtp | ||
+ | -o smtp_send_xforward_command=yes | ||
+ | -o smtp_enforce_tls=no | ||
+ | # For injecting mail back into postfix from the filter | ||
+ | 127.0.0.1:10026 inet n - n - 16 smtpd | ||
+ | -o content_filter= | ||
+ | -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks | ||
+ | -o smtpd_helo_restrictions= | ||
+ | -o smtpd_client_restrictions= | ||
+ | -o smtpd_sender_restrictions= | ||
+ | -o smtpd_recipient_restrictions=permit_mynetworks,reject | ||
+ | -o mynetworks_style=host | ||
+ | -o smtpd_authorized_xforward_hosts=127.0.0.0/8 | ||
+ | |||
+ | Nous allons modifier les ports d'écoute de **clamsmtpd** et l'injection des mail après Scan. Editer le fichier ''/etc/clamsmtpd.conf'' et modifier les lignes suivantes : | ||
+ | OutAddress: 127.0.0.1:10026 | ||
+ | #Listen: 127.0.0.1:10026 (à commenter) | ||
+ | Header: X-AV-Checked: ClamAV using ClamSMTP | ||
+ | |||
+ | Redémarrer **clamsmtp** et **postfix** : | ||
+ | |||
+ | /etc/init.d/postfix stop | ||
+ | /etc/init.d/clamsmtp stop | ||
+ | /etc/init.d/clamsmtp start | ||
+ | /etc/init.d/postfix start | ||
+ | |||
+ | Planifier la mise à jour de la base AntiVirus tous les jours à 1h25, lancer la commande ''crontab -e'' pour éditer la planification : | ||
+ | 25 1 * * * /usr/bin/freshclam --quiet | ||
+ | |||
+ | |||
+ | ==== Spamassassin ==== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Exploitation de postfix ===== | ||
+ | Les commandes suivantes permettent de lister les messages de la file d'attente : | ||
+ | postqueue -p | ||
+ | mailq | ||
+ | |||
+ | |||
+ | Pour relancer l'envoi les messages en attente dans la file : | ||
+ | postqueue -f | ||
- | Pour le service POP3 | + | Pour effacer un message de la file d'attente : |
- | telnet 127.0.0.1 pop3 | + | postsuper -d 3EA3E17CC4 |
- | user user@avg-groupe.net | + | |
- | pass xxxxxx | + | |
- | list | + | |
- | retr 1 | + | |
- | Pour tester l'IMAP : | + | Pour effacer tous les messages : |
- | telnet 127.0.0.1 imap | + | postsuper -d ALL |
- | ? LOGIN user@avg-groupe.net xxxxxx | + | |
- | ? LIST "" "*" | + | |
- | ? SELECT INBOX | + | |
- | ? FETCH 1 ALL | + | |
- | ? LOGOUT | + | |
- | ? SELECT inbox | + |