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édentesRévision précédente
Prochaine révision
Révision précédente
tuto:serveur_mail [2010/10/05 07:19] Thomastuto:serveur_mail [2015/03/15 12:03] (Version actuelle) – Ajout de création de table MySQL Thomas
Ligne 1: Ligne 1:
 ====== Mettre en place un serveur mail (sous slackware) ====== ====== Mettre en place un serveur mail (sous slackware) ======
  
-Mon but est d'installer un serveur mail basé sur [[http://www.postfix.org/|postfix]], [[http://www.dovecot.org/|dovecot]], puis de configurer ses outils pour l'utiliser uniquement en [[http://fr.wikipedia.org/wiki/Webmail|webmail]] via [[http://www.roundcube.net/|roundcube]] en utilisant le protocole [[http://fr.wikipedia.org/wiki/Imap|IMAP]].+Mon but est d'installer un serveur mail basé sur [[http://www.postfix.org/|postfix]], [[http://www.dovecot.org/|dovecot]], puis de configurer ses outils pour l'utiliser en [[http://fr.wikipedia.org/wiki/Webmail|webmail]] via [[http://www.roundcube.net/|roundcube]] en utilisant le protocole [[http://fr.wikipedia.org/wiki/Imap|IMAP]], ou en passant par un quelconque client mail par IMAP ou [[http://fr.wikipedia.org/wiki/Post_Office_Protocol|POP]].
 L'installation de roundcube étant assez simple, je ne parlerai que de postfix et dovecot. L'installation de roundcube étant assez simple, je ne parlerai que de postfix et dovecot.
  
Ligne 31: Ligne 31:
 data_directory = /var/lib/postfix data_directory = /var/lib/postfix
  
 +# Général
 setgid_group = postdrop setgid_group = postdrop
 mail_owner = postfix mail_owner = postfix
Ligne 38: Ligne 39:
 mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
 mynetworks = 127.0.0.0/8 192.168.0.2 mynetworks = 127.0.0.0/8 192.168.0.2
 +unknown_local_recipient_reject_code = 550
 +alias_database = hash:/etc/postfix/aliases
 +alias_maps = hash:/etc/postfix/aliases
 +transport_maps = hash:/etc/postfix/transport
 +
 +# Règles pour accepter ou refuser un message, dès lors qu'on connaît le
 +# destinataire (par la commande RCPT TO) :
 +# - s'il est destiné à un expéditeur forgé chez nous, on le rejette ;
 +# - s'il est destiné à un domaine forgé, on le rejette ;
 +# - s'il vient d'un hôte sûr ou d'un client authentifié, on l'accepte ;
 +# - si l'adresse de destination n'est pas sous forme canonique, on le refuse ;
 +# - finalement, s'il n'est pas destiné à un domaine que l'on gère ou pour
 +#   lequel on relaie, on le refuse.
 smtpd_recipient_restrictions = smtpd_recipient_restrictions =
   reject_unlisted_recipient,   reject_unlisted_recipient,
Ligne 46: Ligne 60:
   reject_unauth_destination   reject_unauth_destination
  
-unknown_local_recipient_reject_code = 550 +# Règles pour accepter ou refuser une connexion : 
-alias_database hash:/etc/postfix/aliases +# - on attend une seconde (pour piéger les zombies) ; 
-alias_maps hash:/etc/postfix/aliases +# - on interdit la parallélisation là où il n'est pas sensé y en avoir. 
-transport_maps hash:/etc/postfix/transport+smtpd_client_restrictions = 
 +  permit_mynetworks, 
 +  permit_sasl_authenticated, 
 +  sleep 1, 
 +  reject_unauth_pipelining 
 + 
 +# Règles pour accepter ou refuser un message, dès lors qu'on connaît le nom 
 +# de l'hôte de l'expéditeur (par sa commande HELO ou EHLO) 
 +# - on refuse les noms d'hôte invalides. 
 +smtpd_helo_restrictions reject_invalid_helo_hostname 
 + 
 +# Règles pour accepter ou refuser un message, dès lors qu'on connaît l'adresse 
 +# de l'expéditeur 
 +# - s'il vient d'un expéditeur inexistant de notre domaine, on le rejette ; 
 +# - si le domaine de l'expéditeur n'a pas d'IP ou de MX, on le refuse ; 
 +# - s'il vient d'un client sûr ou d'un client authentifié, on l'accepte ; 
 +# - si l'adresse de l'expéditeur n'est pas sous forme canonique, on le refuse. 
 +smtpd_sender_restrictions = 
 +    reject_unlisted_sender, reject_unknown_sender_domain, 
 +    permit_mynetworks, permit_sasl_authenticated, 
 +    reject_non_fqdn_sender
  
 # SASL # SASL
Ligne 95: Ligne 129:
 readme_directory = /usr/doc/postfix-2.7.1/README_FILES readme_directory = /usr/doc/postfix-2.7.1/README_FILES
 html_directory = /usr/doc/postfix-2.7.1/html html_directory = /usr/doc/postfix-2.7.1/html
 +</code>
 +
 +Les lignes suivantes du fichier ''/etc/postfix/master.cf'' doivent être décommentées :
 +<code>
 +smtp      inet  n                               smtpd
 +submission inet n                               smtpd
 +  -o smtpd_enforce_tls=yes
 +  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
 +smtps     inet  n                               smtpd
 +  -o smtpd_tls_wrappermode=yes
 </code> </code>
  
Ligne 116: Ligne 160:
 Les lignes suivantes sont nécessaires dans le fichier ''/etc/dovecot/dovecot.conf'' : Les lignes suivantes sont nécessaires dans le fichier ''/etc/dovecot/dovecot.conf'' :
 <code> <code>
-protocols = imap +!include conf.d/*.conf 
-listen = 192.168.0.2+!include sasl.conf 
 +protocols = imap pop3 
 +listen = *, :: 
 +</code> 
 +J'ai créé le fichier ''/etc/dovecot/sasl.conf'' avec les lignes suivantes :  
 +<code> 
 +service auth { 
 +  unix_listener /var/spool/postfix/private/auth { 
 +    group = postfix 
 +    mode = 0660 
 +    user = postfix 
 +  } 
 +}
 </code> </code>
-En effet, comme le but est de n'utiliser le serveur mail que depuis une webmail, seul le protocole imap est nécessaire. Enfin il faut écouter sur l'adresse du serveur (ne pas mettre 127.0.0.1). 
  
 Ensuite le fichier ''/etc/dovecot/conf.d/auth-system.conf.ext'' doit contenir : Ensuite le fichier ''/etc/dovecot/conf.d/auth-system.conf.ext'' doit contenir :
Ligne 144: Ligne 199:
 Reste plus qu'à lancer dovecot : Reste plus qu'à lancer dovecot :
 <code># /etc/rc.d/rc.dovecot start</code> <code># /etc/rc.d/rc.dovecot start</code>
 +
 +===== MySQL =====
 +<code># mysql --user=mail --password=<secret> mail</code>
 +<code>CREATE TABLE `virtual_domains` (
 +`id`  INT NOT NULL AUTO_INCREMENT,
 +`name` VARCHAR(50) NOT NULL,
 +PRIMARY KEY (`id`)
 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
 +
 +<code>CREATE TABLE `virtual_users` (
 +`id` INT NOT NULL AUTO_INCREMENT,
 +`domain_id` INT NOT NULL,
 +`password` VARCHAR(106) NOT NULL,
 +`email` VARCHAR(120) 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;</code>
 +
 +<code>CREATE TABLE `virtual_aliases` (
 +`id` INT NOT NULL AUTO_INCREMENT,
 +`domain_id` INT 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;</code>
tuto/serveur_mail.1286255999.txt.gz · Dernière modification : 2010/10/05 07:19 de Thomas
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0