Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
tuto:serveur_mail [2010/10/05 07:19] – Thomas | tuto: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' | + | Mon but est d' |
L' | L' | ||
Ligne 31: | Ligne 31: | ||
data_directory = / | data_directory = / | ||
+ | # Général | ||
setgid_group = postdrop | setgid_group = postdrop | ||
mail_owner = postfix | mail_owner = postfix | ||
Ligne 38: | Ligne 39: | ||
mydestination = $mydomain, $myhostname, | mydestination = $mydomain, $myhostname, | ||
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:/ | ||
+ | alias_maps = hash:/ | ||
+ | transport_maps = hash:/ | ||
+ | |||
+ | # 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é, | ||
+ | # - si l' | ||
+ | # - finalement, s'il n'est pas destiné à un domaine que l'on gère ou pour | ||
+ | # | ||
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 | + | # - on attend une seconde (pour piéger les zombies) ; |
- | alias_maps | + | # - on interdit la parallélisation là où il n'est pas sensé y en avoir. |
- | transport_maps | + | 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' | ||
+ | # - on refuse les noms d' | ||
+ | smtpd_helo_restrictions | ||
+ | |||
+ | # Règles pour accepter ou refuser un message, dès lors qu'on connaît l' | ||
+ | # de l' | ||
+ | # - s'il vient d'un expéditeur inexistant de notre domaine, on le rejette ; | ||
+ | # - si le domaine de l' | ||
+ | # - s'il vient d'un client sûr ou d'un client authentifié, | ||
+ | # - si l' | ||
+ | smtpd_sender_restrictions | ||
+ | reject_unlisted_sender, | ||
+ | permit_mynetworks, | ||
+ | reject_non_fqdn_sender | ||
# SASL | # SASL | ||
Ligne 95: | Ligne 129: | ||
readme_directory = / | readme_directory = / | ||
html_directory = / | html_directory = / | ||
+ | </ | ||
+ | |||
+ | Les lignes suivantes du fichier ''/ | ||
+ | < | ||
+ | smtp inet n | ||
+ | submission inet n | ||
+ | -o smtpd_enforce_tls=yes | ||
+ | -o smtpd_client_restrictions=permit_sasl_authenticated, | ||
+ | smtps | ||
+ | -o smtpd_tls_wrappermode=yes | ||
</ | </ | ||
Ligne 116: | Ligne 160: | ||
Les lignes suivantes sont nécessaires dans le fichier ''/ | Les lignes suivantes sont nécessaires dans le fichier ''/ | ||
< | < | ||
- | protocols = imap | + | !include conf.d/ |
- | listen = 192.168.0.2 | + | !include sasl.conf |
+ | protocols = imap pop3 | ||
+ | listen = *, :: | ||
+ | </ | ||
+ | J'ai créé le fichier ''/ | ||
+ | < | ||
+ | service auth { | ||
+ | unix_listener / | ||
+ | group = postfix | ||
+ | mode = 0660 | ||
+ | user = postfix | ||
+ | } | ||
+ | } | ||
</ | </ | ||
- | En effet, comme le but est de n' | ||
Ensuite le fichier ''/ | Ensuite le fichier ''/ | ||
Ligne 144: | Ligne 199: | ||
Reste plus qu'à lancer dovecot : | Reste plus qu'à lancer dovecot : | ||
< | < | ||
+ | |||
+ | ===== MySQL ===== | ||
+ | < | ||
+ | < | ||
+ | `id` INT NOT NULL AUTO_INCREMENT, | ||
+ | `name` VARCHAR(50) NOT NULL, | ||
+ | PRIMARY KEY (`id`) | ||
+ | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</ | ||
+ | |||
+ | < | ||
+ | `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;</ | ||
+ | |||
+ | < | ||
+ | `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;</ |