Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 12/10/2012, 03:12]
McPeter suite brouillon
— (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]] : 
-<​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 [[#​creation_de_l_administrateur_mail_dans_mysql|1.2]] <​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 : 
- 
-<​file>#​ Disable LOGIN command and all other plaintext authentications unless 
-# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP 
-# matches the local IP (ie. you're connecting from the same computer), the 
-# connection is considered secure and plaintext authentication is allowed. 
-disable_plaintext_auth = yes</​file>​ 
- 
-<​file>#​ Space separated list of wanted authentication mechanisms: 
-#   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey 
-#   ​gss-spnego 
-# NOTE: See also disable_plaintext_auth setting. 
-auth_mechanisms = plain login</​file>​ 
- 
-<​file>##​ 
-## Password and user databases 
-## 
-  
-# 
-# Password database is used to verify user's password (and nothing more). 
-# You can have multiple passdbs and userdbs. This is useful if you want to 
-# allow both system users (/​etc/​passwd) and virtual users to login without 
-# duplicating the system users into virtual database. 
-# 
-# <​doc/​wiki/​PasswordDatabase.txt>​ 
-# 
-# User database specifies where mails are located and what user/group IDs 
-# own them. For single-UID configuration use "​static"​ userdb. 
-# 
-# <​doc/​wiki/​UserDatabase.txt>​ 
-  
-#!include auth-deny.conf.ext 
-#!include auth-master.conf.ext 
-  
-#!include auth-system.conf.ext 
-# Use the SQL database configuration rather than any of these others. 
-!include auth-sql.conf.ext 
-#!include auth-ldap.conf.ext 
-#!include auth-passwdfile.conf.ext 
-#!include auth-checkpassword.conf.ext 
-#!include auth-vpopmail.conf.ext 
-#!include auth-static.conf.ext</​file>​ 
- 
-=== FIXME === 
- 
-[[:​tutoriel:​comment_modifier_un_fichier|Éditez avec les droits d'​administration]] le fichier **/​etc/​dovecot/​conf.d/​10-mail.conf** et modifier comme suit : 
- 
-<​file>#​ Location for users' mailboxes. The default is empty, which means that Dovecot 
-# tries to find the mailboxes automatically. This won't work if the user 
-# doesn'​t yet have any mail, so you should explicitly tell Dovecot the full 
-# location. 
-# 
-# If you're using mbox, giving a path to the INBOX file (eg. /​var/​mail/​%u) 
-# isn't enough. You'll also need to tell Dovecot where the other mailboxes are 
-# kept. This is called the "root mail directory",​ and it must be the first 
-# path given in the mail_location setting. 
-# 
-# There are a few special variables you can use, eg.: 
-# 
-#   %u - username 
-#   %n - user part in user@domain,​ same as %u if there'​s no domain 
-#   %d - domain part in user@domain,​ empty if there'​s no domain 
-#   %h - home directory 
-# 
-# See doc/​wiki/​Variables.txt for full list. Some examples: 
-# 
-#   ​mail_location = maildir:​~/​Maildir 
-#   ​mail_location = mbox:​~/​mail:​INBOX=/​var/​mail/​%u 
-#   ​mail_location = mbox:/​var/​mail/​%d/​%1n/​%n:​INDEX=/​var/​indexes/​%d/​%1n/​%n 
-# 
-# <​doc/​wiki/​MailLocation.txt>​ 
-# 
-mail_location = maildir:/​home/​vmail/​%d/​%n</​file>​ 
- 
-<​file>#​ System user and group used to access mails. If you use multiple, userdb 
-# can override these by returning uid or gid fields. You can use either numbers 
-# or names. <​doc/​wiki/​UserIds.txt>​ 
-mail_uid = vmail 
-mail_gid = mail</​file>​ 
- 
-<​file>#​ Valid UID range for users, defaults to 500 and above. This is mostly 
-# to make sure that users can't log in as daemons or other system users. 
-# Note that denying root logins is hardcoded to dovecot binary and can't 
-# be done even if first_valid_uid is set to 0. 
-# 
-# Use the vmail user uid here. 
-first_valid_uid = 150 
-last_valid_uid = 150</​file>​ 
- 
-=== FIXME === 
- 
-[[:​tutoriel:​comment_modifier_un_fichier|Éditez avec les droits d'​administration]] le fichier **/​etc/​dovecot/​conf.d/​10-ssl.conf** et modifier comme suit :\\ 
-Si vous voulez utiliser le support SSL/TLS et/ou utiliser votre propre certificat. Dans le cas de votre propre certificat, il vous faudra renseigner les parties //​ssl_key_password =// et //ssl_ca =// \\ 
- 
-<​file>#​ SSL/TLS support: yes, no, required. <​doc/​wiki/​SSL.txt>​ 
-ssl = yes 
-  
-# PEM encoded X.509 SSL/TLS certificate and private key. They'​re opened before 
-# dropping root privileges, so keep the key file unreadable by anyone but 
-# root. Included doc/​mkcert.sh can be used to easily generate self-signed 
-# certificate,​ just make sure to update the domains in dovecot-openssl.cnf 
-ssl_cert = </​etc/​ssl/​certs/​dovecot.pem 
-ssl_key = </​etc/​ssl/​private/​dovecot.pem</​file>​ 
- 
-=== FIXME === 
- 
-[[:​tutoriel:​comment_modifier_un_fichier|Éditez avec les droits d'​administration]] le fichier **/​etc/​dovecot/​conf.d/​10-master.conf** et modifier comme suit :\\ 
-Ajout des options de Postfix à Dovecot.\\ 
- 
-<​file>​service auth { 
-  # auth_socket_path points to this userdb socket by default. It's typically 
-  # used by dovecot-lda,​ doveadm, possibly imap process, etc. Its default 
-  # permissions make it readable only by root, but you may need to relax these 
-  # permissions. Users that have access to this socket are able to get a list 
-  # of all usernames and get results of everyone'​s userdb lookups. 
-  unix_listener auth-userdb { 
-   mode = 0600 
-    user = vmail 
-    group = mail 
-  } 
-  
-  # Postfix smtp-auth 
-  unix_listener /​var/​spool/​postfix/​private/​auth { 
-    mode = 0666 
-    # Assuming the default Postfix user and group 
-    user = postfix 
-    group = postfix ​       
-  }</​file>​ 
-  ​ 
-Rendre accessible la configuration à Dovecot et aux utilisateurs vmail.\\ 
- 
-<​code>​sudo chown -R vmail:​dovecot /​etc/​dovecot 
-sudo chmod -R o-rwx /​etc/​dovecot</​code>​ 
-  ​ 
- 
- 
-===== Amavis ClamAV, SpamAssassin ===== 
- 
-Ajout des utilisateurs clamav et amavis et partage de leurs droits : 
-<​code>​sudo adduser clamav amavis 
-sudo adduser amavis clamav</​code>​ 
- 
-====Configuration Amavis ClamAV==== 
- 
-[[:​tutoriel:​comment_modifier_un_fichier|Éditez avec les droits d'​administration]] le fichier **/​etc/​amavis/​conf.d/​15-content_filter_mode** et modifier comme suit :\\ 
- 
-<​file>​use strict; 
-  
-# You can modify this file to re-enable SPAM checking through spamassassin 
-# and to re-enable antivirus checking. 
-  
-# 
-# Default antivirus checking mode 
-# Please note, that anti-virus checking is DISABLED by 
-# default. 
-# If You wish to enable it, please uncomment the following lines: 
-  
-@bypass_virus_checks_maps = ( 
-   ​\%bypass_virus_checks,​ \@bypass_virus_checks_acl,​ \$bypass_virus_checks_re);​ 
-  
-# 
-# Default SPAM checking mode 
-# Please note, that anti-spam checking is DISABLED by 
-# default. 
-# If You wish to enable it, please uncomment the following lines: 
-  
-@bypass_spam_checks_maps = ( 
-   ​\%bypass_spam_checks,​ \@bypass_spam_checks_acl,​ \$bypass_spam_checks_re);​ 
-  
-1;  # ensure a defined return</​file>​ 
- 
-====Configuration SpamAssassin==== 
- 
-[[:​tutoriel:​comment_modifier_un_fichier|Éditez avec les droits d'​administration]] le fichier **/​etc/​default/​spamassassin** et modifier comme suit :\\ 
- 
-<​file>#​ Change to one to enable spamd 
-ENABLED=1</​file>​ 
- 
-<​file>#​ Cronjob 
-# Set to anything but 0 to enable the cron job to automatically update 
-# spamassassin'​s rules on a nightly basis 
-CRON=1</​file>​ 
- 
-On relance les services :\\ 
- 
-<​code>​sudo service amavis restart 
-sudo service spamassassin restart</​code>​ 
- 
-=====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]]//​ 
  • utilisateurs/mcpeter/postfix_dovecot_mysql_postfixadmin.1350004356.txt.gz
  • Dernière modification: Le 12/10/2012, 03:12
  • par McPeter