Attention

Une installation manuelle n'est pas recommandée. Il est recommandé d'installer un paquet Debian chaque fois que cela est possible.

Dans le cas où il y aurait un besoin motivé d'utiliser une version plus récente d'un logiciel, on s’appuierait alors sur les backports Debian.

Une installation manuelle impliquant un travail non négligeable de suivi de sécurité et de maintenance manuelle par la suite, cette solution ne doit être utilisée qu'en dernier ressort.

Installation Manuelle de Postfix

1./ SE : Debian Version Squeeze (6.0)

2./ Logiciel utilisé : Postfix 2.7.14 (correspondant à la version se trouvant sur le dépôt de Debian)

Pré-requis

Des outils de compilation : make et g++, gnupg pour la vérification du package, libdb-dev est également un pré-requis pour Postfix (à défaut duquel vous rencontrer une erreur du type "No <db.h> include file found .... Install the appropriate db*-devel ...").

     apt-get install g++ make gnupg libdb-dev

Vérifier le package

On récupère le package qui va bien ainsi que la signature PGP

     wget ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-2.7.14.tar.gz
     wget ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-2.7.14.tar.gz.sig

L'authentificté du package se vérifie grâce à la signature PGP que nous avons téléchargé.

Il faut tout d'abord téléchargé la clé publique ayant servi à signer le package :

     wget ftp://ftp.porcupine.org/mirrors/postfix-release/wietse.pgp

Puis, on l'importe dans gnupg :

     gpg --import wietse.pgp
gpg: clé C12BCD99: clé publique « Wietse Venema <wietse@porcupine.org> » importée
gpg: clé D5327CB9: clé publique « wietse venema <wietse@porcupine.org> » importée
gpg:        Quantité totale traitée: 2
gpg:                       importée: 2  (RSA: 2)
gpg: aucune clé de confiance ultime n'a été trouvée

On peut maintenant vérifier l'authenticité du package avec gnupg :

     gpg --verify postfix-2.7.14.tar.gz.sig postfix-2.7.14.tar.gz
gpg: Signature faite le mer 15 mai 2013 02:50:08 CEST avec la clé RSA ID C12BCD99
gpg: Bonne signature de « Wietse Venema <wietse@porcupine.org> »
gpg: ATTENTION: Cette clé n'est pas certifiée avec une signature de confiance !
gpg:            Rien ne dit que la signature appartient à son propriétaire.
Empreinte de clé principale: FF 96 4A 8C 96 88 7C 6E  A4 EF AD BF 48 34 E1 BB

Créer les utilisateurs et groupes

Postfix requiert la création de deux groupes et d'un utilisateur

     groupadd postfix
     groupadd postdrop
     useradd -d /var/empty -s /bin/false -g postfix postfix

Compilation et installation

Décompression du package Postfix après téléchargement et vérification

     tar -xvzf postfix-2.7.14.tar.gz -C /opt/
     cd /opt/postfix-2.7.14/

Avant de commencer la compilation il faut prendre le soin de modifier le chemin du répertoire des fichiers de configuration de Postfix. Selon la documentation officielle c'est le seul chemin qu'on ne peut pas modifier lors du processus d'installation.

     make makefiles CCARGS='-DDEF_CONFIG_DIR=\"/opt/postfix/etc\"'
     
 /!\ Au message d'erreur suivant : 
No <db.h> include file found.
Install the appropriate db*-devel package first.
    
Il suffit de faire un 

~# apt-get install libdb-dev

On peut maintenant compiler :

     make

Et on installe :

     make install

Plusieurs questions seront posées lors du processus d'installation notamment sur l'emplacement des fichiers ainsi que les utilisateurs à configurer. Nous modifions les chemins d'installation pour tout avoir dans /opt/postfix plutôt que de tout éparpiller sur le système :

Please specify the prefix for installed file names. Specify this ONLY
if you are building ready-to-install packages for distribution to other
machines.
install_root: [/]

Please specify a directory for scratch files while installing Postfix. You
must have write permission in this directory.
tempdir: [/opt/postfix-2.7.14]

Please specify the final destination directory for installed Postfix
configuration files.
config_directory: [/opt/postfix/etc]

Please specify the final destination directory for installed Postfix
administrative commands. This directory should be in the command search
path of adminstrative users.
command_directory: [/usr/sbin] /opt/postfix/sbin

Please specify the final destination directory for installed Postfix
daemon programs. This directory should not be in the command search path
of any users.
daemon_directory: [/usr/libexec/postfix] /opt/postfix/libexec

Please specify the final destination directory for Postfix-writable
data files such as caches or random numbers. This directory should not
be shared with non-Postfix software.
data_directory: [/var/lib/postfix] 

Please specify the destination directory for the Postfix HTML
files. Specify "no" if you do not want to install these files.
html_directory: [no]

Please specify the owner of the Postfix queue. Specify an account with
numerical user ID and group ID values that are not used by any other
accounts on the system.
mail_owner: [postfix]

Please specify the final destination pathname for the installed Postfix
mailq command. This is the Sendmail-compatible mail queue listing command.
mailq_path: [/usr/bin/mailq] /opt/postfix/bin/mailq

Please specify the destination directory for the Postfix on-line manual
pages. You can no longer specify "no" here.
manpage_directory: [/opt/man] /usr/share/man
Please specify the final destination pathname for the installed Postfix
newaliases command. This is the Sendmail-compatible command to build
alias databases for the Postfix local delivery agent.
newaliases_path: [/usr/bin/newaliases] /opt/postfix/bin/newaliases

Please specify the final destination directory for Postfix queues.
queue_directory: [/var/spool/postfix] 

Please specify the destination directory for the Postfix README
files. Specify "no" if you do not want to install these files.
readme_directory: [no]

Please specify the final destination pathname for the installed Postfix
sendmail command. This is the Sendmail-compatible mail posting interface.
sendmail_path: [/usr/sbin/sendmail] /opt/postfix/sbin/sendmail

Please specify the group for mail submission and for queue management
commands. Specify a group name with a numerical group ID that is
not shared with other accounts, not even with the Postfix mail_owner
account. You can no longer specify "no" here.
setgid_group: [postdrop]

Ouuufff ! Postfix est installé !

Configuration de Postfix

Une fois que Postfix est installé nous allons modifier quelques paramètres dans la configuration pour l'adapter à notre environnement.

Le fichier de configuration principal de Postfix se trouve dans /opt/postfix/etc et se nomme main.cf :

     cd /usr/local/postfix/etc
     vim main.cf

Il faut maintenant décommenter et paramétrer un certain nombre d'éléments :

Editer le fichier /opt/postfix/etc/master.cf pour y modifier la ligne suivante :

Postfix/InstallManuelle (dernière édition le 2016-02-11 19:09:32 par JeanChristopheAndré)