informatique:linux:postfix
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| informatique:linux:postfix [2007/09/21 13:33] – édition externe 127.0.0.1 | informatique:linux:postfix [2018/10/17 10:59] (Version actuelle) – [Tests] benoit | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | |||
| + | |||
| + | ====== Postfix - Dovecot - Mysql - Postfixadmin sous debian lenny ====== | ||
| + | |||
| + | |||
| + | ===== Présentation de l' | ||
| + | |||
| + | Le système de messagerie se base sur un certain nombre de composants : | ||
| + | |||
| + | * **Postfix** : pour la remise et le routage des courriels entrants (SMTP) | ||
| + | * **Dovecot** : pour récupérer les courriels en POP3, IMAP ou POP3s et IMAPs | ||
| + | * **Mysql** : pour stocker les comptes utilisateurs de la messagerie, mais également les informations nécessaire au fonctionnement du Webmail. | ||
| + | * **Postfixadmin** : Interface HTTP pour créer et supprimer des comptes de messagerie | ||
| + | * **Webmail** : Interface HTTP sous **Squirrel Mail**, **IMP Horde** ou **groupOffice** pour que les utilisateurs puissent consulter leurs courriels depuis un navigateur | ||
| + | |||
| + | |||
| + | |||
| + | **Ci-dessous le diagramme des flux internes et externes du système de messagerie entre les différents composants :** | ||
| + | |||
| + | {{informatique: | ||
| + | |||
| + | Dans la section d' | ||
| + | |||
| ===== Installation ===== | ===== Installation ===== | ||
| - | Installer le package | + | ==== Introduction ==== |
| - | postfix | + | L' |
| + | - Installation de MySQL et création de la base postfix et droits d' | ||
| + | - Installation de apache avec PHP5 avec connecteur MySQL | ||
| + | - Installation et configuration de postfixadmin | ||
| + | - Création du stockage des courriels | ||
| + | - Installation et configuration de postfix avec MySQL | ||
| + | - Installation et configuration de Dovecot avec MySQL | ||
| + | |||
| + | L' | ||
| + | |||
| + | ==== Pré-requis ==== | ||
| + | |||
| + | Le dépôt debian pour **apt** doit être configuré de façon à pouvoir récupérer des paquetages soit sur le CD soit sur Internet. | ||
| + | |||
| + | ==== Choses à savoir avant installation ==== | ||
| + | |||
| + | Si vous rencontrez des problèmes pendant l' | ||
| + | |||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | ==== Mysql ==== | ||
| + | Installer | ||
| + | apt-get install mysql-client mysql-server | ||
| + | |||
| + | Répondre aux questions relative à l' | ||
| + | |||
| + | Se connecter au serveur pour créer la base postfix : | ||
| + | mysql -u root -p | ||
| + | |||
| + | Ici allons : | ||
| + | * créer la base **postfix** | ||
| + | * créer un utilisateur **postfix@localhost** | ||
| + | * donner tous les droits à l' | ||
| + | |||
| + | CREATE DATABASE postfix; | ||
| + | CREATE USER ' | ||
| + | GRANT ALL PRIVILEGES ON `postfix` . * TO ' | ||
| + | quit | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Apache ==== | ||
| + | Installer Apache et PHP par la commande suivante : | ||
| + | apt-get install apache2 php5 php5-mysql php5-imap | ||
| + | |||
| + | Redémarrer apache : | ||
| + | / | ||
| + | |||
| + | ==== Postfixadmin ==== | ||
| + | Télécharger postfixadmin chez l' | ||
| + | cd /tmp | ||
| + | wget http:// | ||
| + | |||
| + | Décompacter l' | ||
| + | tar xzf / | ||
| + | |||
| + | Déplacer et renommer | ||
| + | mv / | ||
| + | |||
| + | Lancer la commande '' | ||
| + | |||
| + | $CONF[' | ||
| + | ... | ||
| + | $CONF[' | ||
| + | $CONF[' | ||
| + | $CONF[' | ||
| + | $CONF[' | ||
| + | $CONF[' | ||
| + | $CONF[' | ||
| + | ... | ||
| + | $CONF[' | ||
| + | ... | ||
| + | $CONF[' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | $CONF[' | ||
| + | ... | ||
| + | $CONF[' | ||
| + | ... | ||
| + | $CONF[' | ||
| + | |||
| + | Nous allons maintenant terminer la configuration depuis votre navigateur : **http:// | ||
| + | |||
| + | Normalement lorsque la page est chargée, tout doit être **" | ||
| + | |||
| + | Une fois le compte administrateur créer, retourner sur la console et supprimer le fichier '' | ||
| + | rm / | ||
| + | |||
| + | Vous pouvez désormais créer des domaines de messagerie et des comptes mail sur **http:// | ||
| + | |||
| + | Attention :!: ces comptes ne seront pas fonctionnels tant que **postfix** et **dovecot** ne seront pas installés. | ||
| + | |||
| + | ==== Espace de stockage ==== | ||
| + | Pour créer un utilisateur, | ||
| + | |||
| + | groupadd -g 5000 vmail | ||
| + | useradd -g vmail -u 5000 vmail -d /home/vmail -m | ||
| + | |||
| + | ==== Postfix ==== | ||
| + | Installer Postfix et son module Mysql : | ||
| + | apt-get install postfix postfix-mysql | ||
| + | |||
| + | A la question choisir : | ||
| + | pas de configuration | ||
| + | |||
| + | Pour configurer postfix créer et éditer le fichier **/ | ||
| + | |||
| + | | ||
| + | myhostname=mailhost.domain.com | ||
| + | |||
| + | # Destinations locales gérés par postfix | ||
| + | mydestination=mailhost.domain.com, | ||
| + | |||
| + | # Permet de definir un relais pour vos mails sortant exemple : [smtp.nordnet.fr] vide par defaut | ||
| + | relayhost=smtp.orange.fr | ||
| + | |||
| + | # mynetworks permet de définir le/les réseaux qui sont autorisé à envoyer des mails | ||
| + | mynetworks=127.0.0.0/ | ||
| + | |||
| + | # mydomain permet de définir le domaine internet du système de messagerie | ||
| + | mydomain=domain.com | ||
| + | |||
| + | # smtpd_recipient_restrictions permet d' | ||
| + | smtpd_recipient_restrictions= | ||
| + | permit_mynetworks, | ||
| + | permit_sasl_authenticated, | ||
| + | reject_unauth_destination, | ||
| + | reject_non_fqdn_recipient, | ||
| + | # reject_unknown_sender_domain, | ||
| + | # reject_non_fqdn_sender, | ||
| + | # reject_unknown_recipient_domain, | ||
| + | # reject_invalid_helo_hostname, | ||
| + | # reject_unlisted_recipient, | ||
| + | # reject_unlisted_sender, | ||
| + | # reject_non_fqdn_helo_hostname, | ||
| + | # reject_rbl_client list.dsbl.org, | ||
| + | # reject_rhsbl_sender dsn.rfc-ignorant.org | ||
| + | |||
| + | # message_size_limit correspond à la taille maximale d'un message en octets | ||
| + | message_size_limit=10240000 | ||
| + | |||
| + | # Fichier de requete SQL pour les alias et redirections mails | ||
| + | virtual_alias_maps = mysql:/ | ||
| + | |||
| + | # Fichier de requete SQL pour les domaines pris en charges | ||
| + | virtual_mailbox_domains = mysql:/ | ||
| + | |||
| + | # Fichier de requete SQL pour les comptes de messagerie | ||
| + | virtual_mailbox_maps = mysql:/ | ||
| + | |||
| + | local_transport = virtual | ||
| + | local_recipient_maps = $virtual_mailbox_maps | ||
| + | |||
| + | # UID et GID à fixer pour le stockage de mail | ||
| + | virtual_uid_maps = static: | ||
| + | virtual_gid_maps = static: | ||
| + | |||
| + | # Répertoire de base où sont stockés les mails | ||
| + | virtual_mailbox_base = / | ||
| + | |||
| + | Nous allons maintenant créer les 3 fichiers de requêtes SQL : | ||
| + | |||
| + | Lancer '' | ||
| + | user = postfix | ||
| + | password = mdp_defini_dans_mysql | ||
| + | hosts = 127.0.0.1 | ||
| + | dbname = postfix | ||
| + | query= SELECT goto FROM alias WHERE address=' | ||
| + | |||
| + | Lancer '' | ||
| + | user = postfix | ||
| + | password = mdp_defini_dans_mysql | ||
| + | hosts = 127.0.0.1 | ||
| + | dbname = postfix | ||
| + | query= SELECT domain FROM domain WHERE domain=' | ||
| + | |||
| + | Lancer '' | ||
| + | user = postfix | ||
| + | password = mdp_defini_dans_mysql | ||
| + | hosts = 127.0.0.1 | ||
| + | dbname = postfix | ||
| + | query= SELECT maildir FROM mailbox WHERE username=' | ||
| + | |||
| + | Redémarrer Postfix par le commande : | ||
| + | / | ||
| + | |||
| + | ==== Dovecot ==== | ||
| + | Lancer la commande suivante pour installer **dovecot** : | ||
| + | apt-get install dovecot-common dovecot-imapd dovecot-pop3 | ||
| + | |||
| + | Faire une sauvegarde du fichier de configuration de dovecot : | ||
| + | mv / | ||
| + | |||
| + | Recréer le fichier de configuration en lançant la commande : '' | ||
| + | protocols = imap pop3 imaps pop3s | ||
| + | listen = [::] | ||
| + | disable_plaintext_auth = no | ||
| + | log_timestamp = " | ||
| + | ssl_listen = [::] | ||
| + | mail_location = maildir:/ | ||
| + | mail_privileged_group = mail | ||
| + | protocol imap { | ||
| + | mail_plugins = quota imap_quota | ||
| + | } | ||
| + | protocol pop3 { | ||
| + | | ||
| + | | ||
| + | } | ||
| + | protocol lda { | ||
| + | | ||
| + | } | ||
| + | auth default { | ||
| + | | ||
| + | | ||
| + | args = / | ||
| + | } | ||
| + | | ||
| + | args = / | ||
| + | } | ||
| + | user = root | ||
| + | count = 2 | ||
| + | } | ||
| + | dict { | ||
| + | } | ||
| + | plugin { | ||
| + | # | ||
| + | quota = maildir: | ||
| + | } | ||
| + | |||
| + | Nous allons créer le fichier de requête SQL pour l' | ||
| + | |||
| + | # Type de base SQL | ||
| + | driver = mysql | ||
| + | |||
| + | # Information de connexion à la base MySQL | ||
| + | connect = host=127.0.0.1 dbname=postfix user=postfix password=passwd_defini_dans_mysql | ||
| + | |||
| + | # md5crypt | ||
| + | # md5 -> PLAIN-MD5 | ||
| + | # cleartext -> PLAIN | ||
| + | #Type de cryptage di mot de passe | ||
| + | default_pass_scheme = MD5-CRYPT | ||
| + | |||
| + | # Requete pour obtenir le mot de passe | ||
| + | password_query = SELECT password FROM mailbox WHERE username = ' | ||
| + | |||
| + | # Requete pour obtenir les informations d'un compte. | ||
| + | user_query = SELECT maildir, 5000 AS uid, 5000 AS gid FROM mailbox WHERE username = ' | ||
| + | |||
| + | |||
| + | ==== Tests ==== | ||
| + | |||
| + | Voir : [[telnet_test_mail|Tests protocoles mail en telnet]] | ||
| + | ===== Installation de modules complémentaires ===== | ||
| + | |||
| + | |||
| + | ==== ClamAV ==== | ||
| + | === Description === | ||
| + | ClamAV est un antivirus libre s' | ||
| + | |||
| + | {{informatique: | ||
| + | |||
| + | === Installation du produit === | ||
| + | |||
| + | Lancer la commande suivante pour installer les paquetages : | ||
| + | apt-get install clamsmtp clamav-freshclam | ||
| + | |||
| + | === Configuration === | ||
| + | Nous allons dire à Postfix d' | ||
| + | content_filter = scan: | ||
| + | |||
| + | 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 ''/ | ||
| + | |||
| + | # AV scan filter (used by content_filter) | ||
| + | scan unix - | ||
| + | -o smtp_send_xforward_command=yes | ||
| + | -o smtp_enforce_tls=no | ||
| + | # For injecting mail back into postfix from the filter | ||
| + | 127.0.0.1: | ||
| + | -o content_filter= | ||
| + | -o receive_override_options=no_unknown_recipient_checks, | ||
| + | -o smtpd_helo_restrictions= | ||
| + | -o smtpd_client_restrictions= | ||
| + | -o smtpd_sender_restrictions= | ||
| + | -o smtpd_recipient_restrictions=permit_mynetworks, | ||
| + | -o mynetworks_style=host | ||
| + | -o smtpd_authorized_xforward_hosts=127.0.0.0/ | ||
| + | |||
| + | Nous allons modifier les ports d' | ||
| + | OutAddress: | ||
| + | #Listen: 127.0.0.1: | ||
| + | Header: X-AV-Checked: | ||
| + | |||
| + | Redémarrer **clamsmtp** et **postfix** : | ||
| + | |||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | Planifier la mise à jour de la base AntiVirus tous les jours à 1h25, lancer la commande '' | ||
| + | 25 1 * * * / | ||
| + | |||
| + | |||
| + | ==== Spamassassin ==== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Exploitation de postfix ===== | ||
| + | Les commandes suivantes permettent de lister les messages de la file d' | ||
| + | postqueue -p | ||
| + | mailq | ||
| - | sous Redhat pour le lancer au demarrage du système: | + | Pour relancer l' |
| - | | + | |
| - | chkconfig postfix on | + | |
| + | Pour effacer un message de la file d' | ||
| + | postsuper -d 3EA3E17CC4 | ||
| - | ===== Configuration ===== | + | Pour effacer tous les messages : |
| - | Paramètres à modifier dans / | + | |
| - | | + | |
| - | myhostname = smtp.zikdomain.com | + | |
| - | # domaine principal | + | |
| - | mydomain = zikdomain.com | + | |
| - | # domain source | + | |
| - | myorigin = $mydomain | + | |
| - | # interfaces | + | |
| - | inet_interfaces = all | + | |
| - | # | + | |
| - | # machines autorisées a se connecter | + | |
| - | mynetworks = 10.0.0.0/24 | + | |
informatique/linux/postfix.1190381621.txt.gz · Dernière modification : (modification externe)
