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/09/19 12:31] – 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'installé | + | Mon but est d'installer |
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 | ||
- | |||
- | proxy_interfaces = 192.168.1.1 | ||
unknown_local_recipient_reject_code = 550 | unknown_local_recipient_reject_code = 550 | ||
- | alias_database = hash:/ | + | alias_database = hash:/etc/postfix/aliases |
- | alias_maps = hash:/ | + | alias_maps = hash:/etc/postfix/aliases |
+ | 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 = | ||
+ | reject_unlisted_recipient, | ||
+ | reject_unknown_recipient_domain, | ||
+ | permit_mynetworks, | ||
+ | permit_sasl_authenticated, | ||
+ | reject_non_fqdn_recipient, | ||
+ | reject_unauth_destination | ||
+ | |||
+ | # Règles pour accepter ou refuser une connexion : | ||
+ | # - on attend une seconde (pour piéger les zombies) ; | ||
+ | # - on interdit la parallélisation là où il n'est pas sensé y en avoir. | ||
+ | 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 = reject_invalid_helo_hostname | ||
+ | |||
+ | # 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 | ||
+ | smtpd_sasl_type = dovecot | ||
+ | smtpd_sasl_path = private/ | ||
+ | smtpd_sasl_auth_enable = yes | ||
+ | smtpd_sasl_authenticated_header = yes | ||
+ | broken_sasl_auth_clients = yes | ||
# TLS client | # TLS client | ||
+ | smtp_tls_cert_file = / | ||
+ | smtp_tls_key_file = $smtp_tls_cert_file | ||
smtp_tls_session_cache_database = btree:/ | smtp_tls_session_cache_database = btree:/ | ||
smtp_tls_session_cache_timeout = 3600s | smtp_tls_session_cache_timeout = 3600s | ||
- | # | ||
- | # | ||
smtp_tls_security_level = may | smtp_tls_security_level = may | ||
tls_daemon_random_bytes = 32 | tls_daemon_random_bytes = 32 | ||
# TLS server | # TLS server | ||
- | smtpd_tls_cert_file = /etc/postfix/ssl/server.pem | + | smtpd_tls_cert_file = /etc/ssl/private/ |
smtpd_tls_key_file = $smtpd_tls_cert_file | smtpd_tls_key_file = $smtpd_tls_cert_file | ||
smtpd_tls_received_header = yes | smtpd_tls_received_header = yes | ||
- | # | + | smtpd_tls_session_cache_database |
- | # | + | smtpd_tls_security_level |
+ | smtpd_tls_auth_only = yes | ||
smtpd_tls_security_level = may | smtpd_tls_security_level = may | ||
Ligne 73: | Ligne 122: | ||
debug_peer_level = 2 | debug_peer_level = 2 | ||
debugger_command = | debugger_command = | ||
- | PATH=/ | + | PATH=/ |
- | ddd $daemon_directory/ | + | |
- | html_directory = / | + | |
# Doc | # Doc | ||
manpage_directory = /usr/man | manpage_directory = /usr/man | ||
readme_directory = / | readme_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 101: | 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 126: | Ligne 196: | ||
< | < | ||
Le but est donc d' | Le but est donc d' | ||
+ | |||
+ | 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;</ |