« DOVECOT » : différence entre les versions

De TwisterWiki
Ligne 1 : Ligne 1 :
== Installation de dovecot en Multi-domaine ==
== Installation de dovecot en Multi-domaine ==
=== Création de la base de données ===
=== Création de la base de données ===
 
<source lang="mysql">
CREATE DATABASE ${my_database};
CREATE DATABASE ${my_database};
</source>


<source lang="mysql">
GRANT SELECT on ${my_database}.* to ${my_user}@'%' IDENTIFIED BY 'password';
GRANT SELECT on ${my_database}.* to ${my_user}@'%' IDENTIFIED BY 'password';
</source>


<source lang="mysql">
CREATE TABLE `virtual_domains` (
CREATE TABLE `virtual_domains` (
   `id` int(11) NOT NULL auto_increment,
   `id` int(11) NOT NULL auto_increment,
Ligne 11 : Ligne 15 :
   PRIMARY KEY (`id`)
   PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
</source>


<source lang="mysql">
CREATE TABLE `virtual_users` (
CREATE TABLE `virtual_users` (
   `id` int(11) NOT NULL auto_increment,
   `id` int(11) NOT NULL auto_increment,
Ligne 21 : Ligne 27 :
   FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
   FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
</source>


<source lang="mysql">
CREATE TABLE `virtual_aliases` (
CREATE TABLE `virtual_aliases` (
   `id` int(11) NOT NULL auto_increment,
   `id` int(11) NOT NULL auto_increment,
Ligne 30 : Ligne 38 :
   FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
   FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
</source>


<source lang="mysql">
INSERT INTO `mailserver`.`virtual_domains`
INSERT INTO `mailserver`.`virtual_domains`
   (`id` ,`name`)
   (`id` ,`name`)
Ligne 38 : Ligne 48 :
   ('3', 'hostname'),
   ('3', 'hostname'),
   ('4', 'localhost.example.com');
   ('4', 'localhost.example.com');
</source>


<source lang="mysql">
INSERT INTO `mailserver`.`virtual_users`
INSERT INTO `mailserver`.`virtual_users`
   (`id`, `domain_id`, `password` , `email`)
   (`id`, `domain_id`, `password` , `email`)
Ligne 44 : Ligne 56 :
   ('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'),
   ('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'),
   ('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');
   ('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');
</source>


<source lang="mysql">
INSERT INTO `mailserver`.`virtual_users`
INSERT INTO `mailserver`.`virtual_users`
   (`id`, `domain_id`, `password` , `email`)
   (`id`, `domain_id`, `password` , `email`)
Ligne 50 : Ligne 64 :
   ('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'),
   ('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'),
   ('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');
   ('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');
</source>


=== Installation de postfix ===
=== Installation de postfix ===

Version du 16 novembre 2013 à 09:01

Installation de dovecot en Multi-domaine

Création de la base de données

CREATE DATABASE ${my_database};
GRANT SELECT on ${my_database}.* to ${my_user}@'%' IDENTIFIED BY 'password';
CREATE TABLE `virtual_domains` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `virtual_users` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `password` varchar(106) NOT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `virtual_aliases` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `source` varchar(100) NOT NULL,
  `destination` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `mailserver`.`virtual_domains`
  (`id` ,`name`)
VALUES
  ('1', 'example.com'),
  ('2', 'hostname.example.com'),
  ('3', 'hostname'),
  ('4', 'localhost.example.com');
INSERT INTO `mailserver`.`virtual_users`
  (`id`, `domain_id`, `password` , `email`)
VALUES
  ('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'),
  ('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');
INSERT INTO `mailserver`.`virtual_users`
  (`id`, `domain_id`, `password` , `email`)
VALUES
  ('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'),
  ('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');

Installation de postfix

Configuration de dovecot

  • main.cf
  1. See /usr/share/postfix/main.cf.dist for a commented, more complete version


  1. Debian specific: Specifying a file name will cause the first
  2. line of that file to be used as the name. The Debian default
  3. is /etc/mailname.
  4. myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no

  1. appending .domain is the MUA's job.

append_dot_mydomain = no

  1. Uncomment the next line to generate "delayed mail" warnings
  2. delay_warning_time = 4h

readme_directory = no

  1. TLS parameters
  2. smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
  3. smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
  4. smtpd_use_tls=yes
  5. smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
  6. smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem smtpd_tls_key_file=/etc/ssl/private/dovecot.pem smtpd_use_tls=yes smtpd_tls_auth_only = yes

  1. Enabling SMTP for authenticated users, and handing off authentication to Dovecot

smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes

smtpd_recipient_restrictions =

       permit_sasl_authenticated,
       permit_mynetworks,
       reject_unauth_destination
  1. See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
  2. information on enabling SSL in the smtp client.

myhostname = host.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname

  1. mydestination = example.com, hostname.example.com, localhost.example.com, localhost

mydestination = localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all

  1. Handing off local delivery to Dovecot's LMTP, and telling it where to store mail

virtual_transport = lmtp:unix:private/dovecot-lmtp

  1. Virtual domains, users, and aliases

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Installation de dovecot

Configuration de dovecot