{{{#!wiki warning '''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 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 » importée gpg: clé D5327CB9: clé publique « wietse venema » 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 » 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 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 : * inet_interfaces = 41.207.188.10 : adresse IP sur laquelle le serveur Postfix écoutera * mydomain = tg.refer.org : le nom de votre domaine DNS; est largement utilisé pour les paramètres suivants * myorigin = $mydomain : pour envoyer des mails en tant que user@tg.refer.org * mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain : pour que les mails à destination de localhost* ou tg.refer.org soient considérés comme étant locaux et donc transmis au MDA * mynetworks = 41.207.188.10 : réseaux de confiance pouvant relayer des mails via ce serveur. Il s'agit ici de l'adresse locale ainsi que de l'adresse IP sur laquelle Postfix écoutera * relay_domains = : pour ne relayer les mails d'aucun domaine * Editer le fichier ''/opt/postfix/etc/master.cf'' pour y modifier la ligne suivante : ''smtp innet n - n - - smtpd'' en '''26 inet n - n - - smtpd'''