dokuro Posté(e) le 18 janvier 2015 Signaler Share Posté(e) le 18 janvier 2015 Il existe de nombreuses solutions pour la gestion des emails sur un serveur dédié. Après avoir utilisé qmail pendant un moment sur la Release 2 de OVH, je me suis tourné vers une autre solution: - Postfix/Mysql avec identification SASL pour le serveur SMTP - Dovecot comme serveur POP & IMAP - Amavis comme surcouche de Spamassassin et Clamav La configuration de tout ce petit monde est plutôt complexe et va nécessiter de modifier de nombreux fichiers afin d'obtenir un bon fonctionnement. J'ai beaucoup tatonné avant de trouver une solution me convenant et je livre ici un résultat final, partant sur le principe que nous allons utiliser l'ensemble de ces paquets. On va passer en root pour ces opérations. La commande magique pour l'installation... $ su # apt-get install postfix postfix-mysql libsasl2-2 sasl2-bin libsasl2-modules dovecot-common dovecot-imapd dovecot-pop3d libpam-mysql clamav-daemon clamav-freshclam spamassassin amavisd-new arj nomarch lzop cabextract razor pyzor p7zip-full pax zip unzip unrar-freeChoisissez "site internet" comme configuration de base pour Postfix et donnez le nom de votre machine comme serveur, soit ns01.mondomaine.net dans cet exemple... Une fois l'installation achevée, on va stopper tous les services, puisque rien n'est correctement configuré pour le moment # /etc/init.d/postfix stop # /etc/init.d/dovecot stop # /etc/init.d/saslauthd stop # /etc/init.d/amavis stop # /etc/init.d/clamav-freshclam stop # /etc/init.d/clamav-daemon stop # /etc/init.d/spamassassin stop Configuration MySQL pour Postfix Créons la table Mysql de base qui sera utilisée par Postfix et Posfix-Admin par la suite. C'est ici que seront stockées nos adresses email entre autres... # mysql -u root -pmysql> create database postfix;mysql> grant create,alter,select,insert,update,delete on postfix.* TO 'postfix'@'localhost' identified by 'mot_de_passe_postfix';mysql> flush privileges;mysql> quit Ensuite, préparons les fichiers utiles pour faire la connexion à cette base # mkdir /etc/postfix/mysql Nous avons besoin de créer 4 fichiers: # nano /etc/postfix/mysql/mysql_virtual_alias.cf user = postfix password = mot_de_passe_postfix hosts = 127.0.0.1 dbname = postfix table = alias select_field = goto where_field = address # nano /etc/postfix/mysql/mysql_virtual_domains.cf user = postfix password = mot_de_passe_postfix hosts = 127.0.0.1 dbname = postfix table = alias table = domain select_field = domain where_field = domain #additional_conditions = and backupmx = '0' and active = '1' # nano /etc/postfix/mysql/mysql_virtual_mailbox.cf user = postfix password = mot_de_passe_postfix hosts = 127.0.0.1 dbname = postfix table = mailbox select_field = maildir where_field = username additional_conditions = and active = '1' # nano /etc/postfix/mysql/mysql_virtual_mailbox_limit.cf user = postfix password = mot_de_passe_postfix hosts = 127.0.0.1 dbname = postfix table = mailbox select_field = quota where_field = username Afin que Postfix puisse lire ces fichiers, on change les droits. # chmod 640 /etc/postfix/mysql/mysql_* # chgrp postfix /etc/postfix/mysql/mysql_* On se connecte via phpMyAdmin sur la base de données postfix et on crée les tables minimales utiles au fonctionnement de Postfix, avec la commande SQL suivante: CREATE TABLE IF NOT EXISTS `alias` ( `address` varchar(255) NOT NULL, `goto` text NOT NULL, `domain` varchar(255) NOT NULL, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `active` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`address`), KEY `domain` (`domain`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `domain` ( `domain` varchar(255) NOT NULL, `description` varchar(255) CHARACTER SET utf8 NOT NULL, `aliases` int(10) NOT NULL DEFAULT '0', `mailboxes` int(10) NOT NULL DEFAULT '0', `maxquota` bigint(20) NOT NULL DEFAULT '0', `quota` bigint(20) NOT NULL DEFAULT '0', `transport` varchar(255) NOT NULL, `backupmx` tinyint(1) NOT NULL DEFAULT '0', `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `active` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`domain`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `mailbox` ( `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `name` varchar(255) CHARACTER SET utf8 NOT NULL, `maildir` varchar(255) NOT NULL, `quota` bigint(20) NOT NULL DEFAULT '0', `local_part` varchar(255) NOT NULL, `domain` varchar(255) NOT NULL, `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `active` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`username`), KEY `domain` (`domain`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Authentification SASL pour Postfix Pour commencer on va créer un lien symbolique pour le daemon d'authentification et ajouter l'utilisateur postfix au groupe sasl # mkdir -p /var/spool/postfix/var/run/saslauthd # ln -s /var/spool/postfix/var/run/saslauthd /var/run # chgrp sasl /var/spool/postfix/var/run/saslauthd # adduser postfix sasl Configuration par défaut du daemon # nano /etc/default/saslauthd START=yes DESC="SASL Authentication Daemon" NAME="saslauthd" MECHANISMS="pam" MECH_OPTIONS="" THREADS=5OPTIONS="-c -r -m /var/spool/postfix/var/run/saslauthd" Le mécanisme utlisé est "PAM", il faut le configurer pour qu'il puisse correctement accéder aux mots de passe stockés dans la base de données postfix. Il y a seulement deux lignes, deux longues lignes ( auth et account ) à ajouter à la fin du fichier # nano /etc/pam.d/smtp auth required pam_mysql.so user=postfix passwd=mot_de_passe_postfixhost=127.0.0.1 db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=1 md5=1 account sufficient pam_mysql.so user=postfix passwd=mot_de_passe_postfixhost=127.0.0.1 db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=1 md5=1 Configuration de l'authentification via SMTP dans Postfix # nano /etc/postfix/sasl/smtp.conf pwcheck_method: saslauthd auxprop auxprop_plugin: sql mech_list: plain login password_format: crypt log_level: 5 allow_plaintext: true sql_engine: mysql sql_hostnames: 127.0.0.1 sql_user: postfix sql_database: postfix sql_passwd: mot_de_passe_postfix sql_verbose: yes sql_select: SELECT password FROM mailbox WHERE username = '%u' LIMIT 1 Indiquer à Postfix qu'il doit utiliser ce fichier lors du démarrage # nano /etc/init.d/postfix Rechercher la ligne qui commence par FILES=" ( aux alentours de la ligne 150 ) et ajouter le fichier précédemment créé comme ceci: FILES="etc/localtime etc/services etc/resolv.conf etc/hosts etc/nsswitch.conf etc/nss_mdns.config etc/postfix/sasl/smtpd.conf" Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.