Différences
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 | ||
utilisateurs:mcpeter:postfix_dovecot_mysql_postfixadmin [Le 11/10/2012, 18:05] fabux Je me permet |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>serveur mail postfix dovecot brouillon}} | ||
- | ---- | ||
- | ====== Installation d'une solution mail complète : Postfix, Dovecot, MySQL, Postfixadmin ====== | ||
- | |||
- | Cette page propose un pas-à-pas pour mettre en place rapidement un serveur de messagerie en faisant appel à l'ensemble: | ||
- | * [[:Postfix]] qui servira de [[wpfr>Mail_Transfer_Agent|MTA]] | ||
- | * [[:Dovecot]] qui servira de serveur [[wpfr>Internet_Message_Access_Protocol|IMAP]] et/ou [[wpfr>Post_Office_Protocol|POP3]] | ||
- | * [[:MySql]] pour enregistrer les comptes mails virtuels | ||
- | * [[http://sourceforge.net/projects/postfixadmin/|Postfixadmin]] pour gérer les domaines et comptes mails. | ||
- | |||
- | =====Pré-requis===== | ||
- | |||
- | * Une solution [[:lamp|LAMP]] fonctionnelle.\\ | ||
- | * Un certificat SSL (auto-signé ou autre) valide. | ||
- | <note>Rappel simple :<code> | ||
- | sudo apt-get install ssl-cert | ||
- | sudo make-ssl-cert generate-default-snakeoil --force-overwrite</code></note> | ||
- | |||
- | |||
- | ====Installation des paquets=== | ||
- | |||
- | - [[:tutoriel:comment_installer_un_paquet|Installez]] la première série de paquets utiles à savoir: | ||
- | * **[[apt>bsd-mailx,dovecot-core,dovecot-imapd,dovecot-pop3d,postfix]]** pour la partie MTA, IMAP, POP3 | ||
- | * **[[apt>amavisd-new,clamav,clamav-daemon,spamassassin]]** pour [[:antivirus|Antivirus]] et AntiSpam | ||
- | * **[[apt>php5-imap]]** pour la gestion par postfixadmin.\\ Par exemple avec l'outil [[:apt-get]], saisissez dans un [[:terminal]]: <code>sudo apt-get install bsd-mailx dovecot-core dovecot-imapd dovecot-pop3d postfix | ||
- | sudo apt-get install amavisd-new clamav clamav-daemon spamassassin | ||
- | sudo apt-get install php5-imap</code> La première ligne permet d'utiliser [[:apt-get]] ou [[:aptitude]] au choix. Mais vous auriez pût passer par **[[:Tasksel]]** et de là installer directement l'ensemble **[[apt>mail-server^]]**. | ||
- | - Relancez le [[:services|service]] [[:apache]]\\ <code>sudo service apache2 restart</code> | ||
- | - Installez la seconde série de paquets utiles à savoir : | ||
- | * **[[apt>libnet-dns-perl,pyzor,razor]]** pour requêtes DNS et AntiSpam | ||
- | * **[[apt>arj,bzip2,cabextract,cpio,file,gzip,nomarch,pax,unzip,zip]]** pour décompresser des [[:archivage|archives]] directement dans roundcube\\ <code>sudo apt-get install libnet-dns-perl pyzor razor | ||
- | sudo apt-get install arj bzip2 cabextract cpio file gzip nomarch pax unzip zip | ||
- | </code> | ||
- | |||
- | ====Création de l'administrateur mail dans MySQL==== | ||
- | |||
- | <code>sudo mysql -u root -p</code> | ||
- | Créez la base de données (ici //postfixadmin//) et l'utilisateur (ici //postfixadmin//) | ||
- | <code>create database postfixadmin; | ||
- | grant all on postfixadmin.* to 'mail'@'localhost' identified by 'mot_de_passe_administrateur_mail'; | ||
- | </code> | ||
- | |||
- | Plus d'informations sur la page [[:MySQL]] | ||
- | |||
- | =====Postfixadmin===== | ||
- | |||
- | Postfixadmin permet de gérer graphiquement les domaines et les boites e-mail rattachées. Il permet de créer des administrateurs par domaine qui peuvent eux-mêmes créer des boites ainsi que des alias. Le tout se pilotant au travers d'un [[:navigateur]] web. | ||
- | |||
- | ==== Installation ==== | ||
- | Un paquet tout prêt est disponible et évite plusieurs étapes de configuration/mise en place. Il s'agit donc de | ||
- | - le télécharger à [[http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.5/postfixadmin_2.3.5-1_all.deb|cette adresse]] | ||
- | - l'[[:tutoriel:comment_installer_un_paquet#installer_un_paquet_hors_depots_non_recommande|installer]]. | ||
- | Ceci se résume dans un [[:terminal]] par: | ||
- | <code>wget http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.5/postfixadmin_2.3.5-1_all.deb | ||
- | sudo dpkg -i postfixadmin_2.3.5-1_all.deb</code> | ||
- | |||
- | ==== Configuration ==== | ||
- | === Paramètres principaux === | ||
- | [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/postfixadmin/config.inc.php**, pour modifier/vérifier les variables comme suit : | ||
- | |||
- | <file php> | ||
- | $CONF['configured'] = true; | ||
- | $CONF['postfix_admin_url'] = '/postfixadmin'; # à laisser tel quel pour le multi-domaine | ||
- | $CONF['admin_email'] = 'me@example.com'; # l'adresse mail de l'administrateur général | ||
- | $CONF['smtp_server'] = 'localhost'; | ||
- | $CONF['smtp_port'] = '25'; | ||
- | $CONF['encrypt'] = 'md5crypt'; | ||
- | $CONF['domain_path'] = 'YES'; | ||
- | $CONF['domain_in_mailbox'] = 'NO'; | ||
- | </file> | ||
- | |||
- | === Définition de la base de données === | ||
- | |||
- | [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/postfixadmin/dbconfig.inc.php** pour insérer les accès MySQL [[#Création de l'administrateur mail dans MySQL|précédemment créés]]. | ||
- | |||
- | <file php> | ||
- | $dbuser='postfixadmin'; | ||
- | $dbpass='mot_de_passe_administrateur_mail'; | ||
- | $basepath=''; | ||
- | $dbname='postfixadmin'; | ||
- | $dbserver=''; # utilisera la valeur par défaut : localhost | ||
- | $dbport=''; # utilisera le port MySQL par défaut | ||
- | $dbtype='mysql'; | ||
- | </file> | ||
- | |||
- | === Mise en place === | ||
- | |||
- | Lancez la configuration en saisissant dans votre navigateur l'adresse : http://localhost/postfixadmin/setup.php\\ | ||
- | Créez un administrateur Postfixadmin. Il est **fortement conseillé** de bien le différencier de l'administrateur mail quant à son ensemble //nom/mot de passe//. | ||
- | <note important>Attention une fois cet administrateur créé, le script vous retourne votre mot de passe "hashé". **NOTEZ LE BIEN !!!**\\ Il sera utilisé dans votre configuration finale.</note> | ||
- | |||
- | [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/postfixadmin/config.inc.php** et modifier la variable : | ||
- | <file php>$CONF['setup_password'] = '… votre mot de passe hashé …';</file> | ||
- | |||
- | Il faut ensuite protéger cette page (vous pourrez créer d'autres administrateurs via l'interface de postfixadmin).\\ | ||
- | [[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier **/etc/apache2/conf.d/postfixadmin**, et ajouter : | ||
- | |||
- | <file><Files "setup.php"> | ||
- | deny from all | ||
- | </Files></file> | ||
- | |||
- | Se rendre sur la page http://localhost/postfixadmin, et créer le premier domaine. Ajouter une boite mail à ce domaine.\\ | ||
- | À ce stade, Postfixadmin est opérationnel. | ||
- | |||
- | |||
- | =====Répertoire des e-mails===== | ||
- | |||
- | Ici les utilisateurs sont virtuels, et donc indépendant de la création/gestion classique Unix. Un seul utilisateur (Unix) aura les droits sur ce dossiers et permettra de gérer les liaisons entre [[:Dovecot]] et [[:Postfix]].\\ | ||
- | Pour l'exemple, l'utilisateur sera **vmail** et le groupe **mail**. Le répertoire dédié sera dans **/home/vmail** //(ces valeurs sont à votre convenance)//. | ||
- | |||
- | * Création du groupe **mail** puis de l'utilisateur **vmail** associé à ce groupe <code>sudo groupadd mail | ||
- | sudo useradd -r -u 150 -g mail -d /home/vmail -s /sbin/nologin -c "Propriétaire des répertoires e-mail virtuel" vmail</code> | ||
- | * Création du répertoire dédié et les droits associés <code>sudo mkdir /home/vmail | ||
- | sudo chmod 770 /home/vmail</code> | ||
- | * Désignation du //propriétaire:groupe// du dossier <code>sudo chown vmail:mail /home/vmail</code> | ||
- | |||
- | =====Dovecot===== | ||
- | |||
- | [[:Dovecot]] gère les connexions POP3 et IMAP, permet de gérer les mails locaux et récupère les courriers en provenance de Postfix.\\ | ||
- | Il gère également l'authentification SMTP.\\ | ||
- | |||
- | ==== Configuration ==== | ||
- | |||
- | Vous allez attaquer la partie la plus "fatiguante" .\\ | ||
- | |||
- | === Définition de la base de données ? === | ||
- | [[:tutoriel:comment_modifier_un_fichier|Éditez ou créez avec les droits d'administration]] le fichier **/etc/dovecot/conf.d/auth-sql.conf.ext** avec le contenu suivant : | ||
- | |||
- | <file># Look up user passwords from a SQL database as | ||
- | # defined in /etc/dovecot/dovecot-sql.conf.ext | ||
- | passdb { | ||
- | driver = sql | ||
- | args = /etc/dovecot/dovecot-sql.conf.ext | ||
- | } | ||
- | # Look up user information from a SQL database as | ||
- | # defined in /etc/dovecot/dovecot-sql.conf.ext | ||
- | userdb { | ||
- | driver = sql | ||
- | args = /etc/dovecot/dovecot-sql.conf.ext | ||
- | }</file> | ||
- | |||
- | === Définition des accès à la base de données ? === | ||
- | Vérifiez avant tout l'[[wpfr>User_identifier|UID]] et le [[wpfr>Globally_Unique_Identifier|GUID]] FIXME c'est pas GID plutot ? : | ||
- | <code>grep vmail /etc/passwd</code> | ||
- | devrait répondre quelque chose comme | ||
- | <code>vmail:x:150:1001:Virtual maildir handler:/home/vmail:/sbin/nologin</code> | ||
- | Notez bien ces informations avant d' [[:tutoriel:comment_modifier_un_fichier|éditer avec les droits d'administration]] le fichier **/etc/dovecot/dovecot-sql.conf.ext** que vous modifierez comme suit : | ||
- | * Type de base de données: <file># Database driver: mysql, pgsql, sqlite | ||
- | driver = mysql</file> | ||
- | * Ici remplacez //mot_de_passe_postfixadmin// par celui entrée à la section 1.2 FIXME 1.2 ou [[#configuration|2.1]] ? <file># Examples: | ||
- | # connect = host=192.168.1.1 dbname=users | ||
- | # connect = host=sql.example.com dbname=virtual user=virtual password=blarg | ||
- | # connect = /etc/dovecot/authdb.sqlite | ||
- | # | ||
- | connect = host=localhost dbname=postfixadmin user=postfixadmin password=mot_de_passe_postfixadmin</file> | ||
- | * Type d'authentification <file># Default password scheme. | ||
- | # | ||
- | # List of supported schemes is in | ||
- | # http://wiki2.dovecot.org/Authentication/PasswordSchemes | ||
- | # | ||
- | default_pass_scheme = MD5-CRYPT</file> | ||
- | * Requète de mot de passe (adaptez avec les informations obtenues en début de ce chapitre) <file># Define the query to obtain a user password. | ||
- | password_query = \ | ||
- | SELECT username as user, password, '/home/vmail/%d/%n' as userdb_home, \ | ||
- | 'maildir:/home/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 1001 as userdb_gid \ | ||
- | FROM mailbox WHERE username = '%u' AND active = '1'</file> | ||
- | * Information utilisateur (adaptez avec les informations obtenues en début de ce chapitre) <file># Define the query to obtain user information. | ||
- | user_query = \ | ||
- | SELECT '/home/vmail/%d/%n' as home, 'maildir:/home/vmail/%d/%n' as mail, \ | ||
- | 150 AS uid, 1001 AS gid, concat('dirsize:storage=', quota) AS quota \ | ||
- | FROM mailbox WHERE username = '%u' AND active = '1'</file> | ||
- | |||
- | === FIXME === | ||
- | [[:tutoriel:comment_modifier_un_fichier|Éditez avec les droits d'administration]] le fichier **/etc/dovecot/conf.d/10-auth.conf** et modifier comme suit : | ||
- | |||
- | |||
- | ===== Amavis, ClamAV SpamAssassin ===== | ||
- | |||
- | ====Configuration Amavis==== | ||
- | |||
- | ====Configuration ClamAV==== | ||
- | |||
- | ====Configuration SpamAssassin==== | ||
- | |||
- | |||
- | =====Postfix===== | ||
- | |||
- | ====Configuration==== | ||
- | |||
- | |||
- | =====Relancer tous les services===== | ||
- | |||
- | |||
- | |||
- | |||
- | =====Postfixadmin===== | ||
- | |||
- | ====Configuration==== | ||
- | |||
- | =====Postfixadmin===== | ||
- | |||
- | ====Configuration==== | ||
- | |||
- | =====Postfixadmin===== | ||
- | |||
- | ====Configuration==== | ||
- | |||
- | =====Liens===== | ||
- | * [[http://sourceforge.net/projects/postfixadmin/|Projet de PostfixAdmin]] (en) | ||
- | |||
- | ---- | ||
- | //Contributeurs:[[:utilisateurs:McPeter]]// |