POSTFIX - Formation Postfix : Différence entre versions
Ligne 65 : | Ligne 65 : | ||
cp /usr/share/postfix/main.cf.debian /etc/postfix/main.cf | cp /usr/share/postfix/main.cf.debian /etc/postfix/main.cf | ||
vi /etc/postfix/main.cf | vi /etc/postfix/main.cf | ||
+ | |||
+ | Pour éliminer les lignes vides et les lignes de commentaires pour ne récupèrer que les directives de conf: | ||
+ | |||
+ | egrep -v "^$|^#" /etc/postfix/main.cf | ||
+ | |||
+ | Commande '''postconf''': pour connaitre la configuration (totale) de postfix. | ||
+ | |||
+ | '''postconf <directive>''': pour connaitre la valeur d'UNE directive: | ||
+ | |||
+ | root@julien:~# postconf swap_bangpath | ||
+ | swap_bangpath = yes | ||
+ | |||
+ | '''postconf -d <directive>''': pour connaitre la valeur par défaut avant surcharge. | ||
+ | |||
+ | '''postconf -n''': pour connaitre les valeurs différentes de celles par défaut (en gros, celles du main.cf) | ||
+ | |||
+ | '''postconf -e <directive>=valeur''': pour éditer les valeurs des directives (modif du fichier de conf). | ||
+ | |||
+ | {{Note|Texte=Attention, l'édition des paramètres par '''postconf -e''' nécessite un reload ou restart de postfix!}} | ||
+ | |||
+ | root@julien:~# postconf -d mydestination | ||
+ | mydestination = $myhostname, localhost.$mydomain, localhost | ||
+ | root@julien:~# postconf -e mydestination=toto.fr '''==> ON CHOISIT UN DOMAINE POUR LA FORMATION''' | ||
+ | root@julien:~# postconf -d myorigin | ||
+ | myorigin = $myhostname | ||
+ | root@julien:~# postconf -e myorigin=toto.fr | ||
+ | root@julien:~# postconf myhostname | ||
+ | myhostname = julien.localdomain | ||
+ | |||
+ | {{Note|Texte=Attention, $myhostname n'est pas obligatoire, postfix prend le hostname réel du serveur, par défaut!}} | ||
+ | |||
+ | root@julien:~# postconf -e myhostname=<FQDN du serveur> | ||
+ | |||
+ | Si on n'a pas le FQDN du serveur dans myhostname, et que mydomain est renseigné, concaténation de myorigin et mydomain. | ||
+ | |||
+ | * myhostname: si vide prend le hostname par défaut. | ||
+ | * myorigin: pour completer les adresses quand on entre 1 user sans domaine. | ||
+ | * mydomain: pour faire correspondre 1 domaine de délivrance à ce serveur. | ||
+ | * mydestination: contient au moins mydomain + tous les autres domaines que le serveur délivre. | ||
+ | |||
+ | Possibilité de mettre 1 ligne de conf sur plusieurs lignes, si les lignes secondaires comportent des espaces ou des tabulations en début de ligne. | ||
+ | |||
+ | {{Note|Texte=ATTENTION DE NE PAS PLACER D'ESPACES OU DE TABULATION EN DEBUT DE LIGNE (QUAND ON DECOMMENTE PAR EXEMPLE)}} |
Version du 23 septembre 2008 à 11:25
Sommaire
Introduction
- Postfix créé sur une rumeur de faille de sécu de sendmail, par Paul Vixie.
- Création dans un souci de sécurité.
- Postfix est un MTA constitué de plusieurs programmes indépendants, "ne se faisant pas confiance mutuellement".
- Postfix prêt à fonctionner quasi out of the box.
- Dans un premier temps, création de boite = création de compte système.
- Après, autres besoins sans utiliser de comptes systèmes, intégration de mysql par exemple => entraine besoin de recompilation de postfix sur des plateforme style Red Hat car fonctionnalité non incluse de base dans le package.
- Voir qemu/kvm (pour proc gérant virtualisation matérielle) pour virtualisation sous linux.
Vue d'ensemble d'un MTA
Comptes utilisateurs
Postfix utilise donc des comptes système ou des comptes virtuels.
Comptes virtuels:
- stockage local (mbox, maildir) OU
- stockage externe (fichier séquentiel indexé, mysql..., non géré par défaut par le MTA)
Comptes virtuels:
- domaines partagés OU
- domaines séparés
- stockage local OU
- stockage externe
cf Schéma 1
Introduction aux commandes de protocole
- Exemple d'utilisation de la commande telnet
- Toujours un code de retour aux commandes SMTP:
- 2xx: OK
- 3xx: informations
- 4xx: erreurs temporaires
- 5xx: erreurs fatales
- Commandes SMTP:
- ehlo <mon_hostname> dialogue en ESMTP
- helo dialogue en SMTP
- vrfy vérification existance d'un utilisateur, habituellement désactivé pour sécurité /SPAM
- mail from ENVELOPPE
- rcpt to ENVELOPPE (possibilité de répéter mail from et rcpt to dans le corps)
- data CORPS DU MESSAGE
- Subject
- Commandes POP:
- user
- pass
- list
- retr
Installation de postfix
Installation du package
apt-get install postfix
Pas de configuration, on va la faire à la main.
Configuration de postfix
Conf dans /etc/postfix/.
Comme on n'a rien configuré lors de l'installation, besoin de récupérer un fichier de conf vierge (ou de le créer):
cp /usr/share/postfix/main.cf.debian /etc/postfix/main.cf vi /etc/postfix/main.cf
Pour éliminer les lignes vides et les lignes de commentaires pour ne récupèrer que les directives de conf:
egrep -v "^$|^#" /etc/postfix/main.cf
Commande postconf: pour connaitre la configuration (totale) de postfix.
postconf <directive>: pour connaitre la valeur d'UNE directive:
root@julien:~# postconf swap_bangpath swap_bangpath = yes
postconf -d <directive>: pour connaitre la valeur par défaut avant surcharge.
postconf -n: pour connaitre les valeurs différentes de celles par défaut (en gros, celles du main.cf)
postconf -e <directive>=valeur: pour éditer les valeurs des directives (modif du fichier de conf).
NB : Attention, l'édition des paramètres par postconf -e nécessite un reload ou restart de postfix! |
---|
root@julien:~# postconf -d mydestination mydestination = $myhostname, localhost.$mydomain, localhost root@julien:~# postconf -e mydestination=toto.fr ==> ON CHOISIT UN DOMAINE POUR LA FORMATION root@julien:~# postconf -d myorigin myorigin = $myhostname root@julien:~# postconf -e myorigin=toto.fr root@julien:~# postconf myhostname myhostname = julien.localdomain
NB : Attention, $myhostname n'est pas obligatoire, postfix prend le hostname réel du serveur, par défaut! |
---|
root@julien:~# postconf -e myhostname=<FQDN du serveur>
Si on n'a pas le FQDN du serveur dans myhostname, et que mydomain est renseigné, concaténation de myorigin et mydomain.
- myhostname: si vide prend le hostname par défaut.
- myorigin: pour completer les adresses quand on entre 1 user sans domaine.
- mydomain: pour faire correspondre 1 domaine de délivrance à ce serveur.
- mydestination: contient au moins mydomain + tous les autres domaines que le serveur délivre.
Possibilité de mettre 1 ligne de conf sur plusieurs lignes, si les lignes secondaires comportent des espaces ou des tabulations en début de ligne.
NB : ATTENTION DE NE PAS PLACER D'ESPACES OU DE TABULATION EN DEBUT DE LIGNE (QUAND ON DECOMMENTE PAR EXEMPLE) |
---|