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 | + | |