POSTFIX

De TwisterWiki
La version imprimable n’est plus prise en charge et peut comporter des erreurs de génération. Veuillez mettre à jour les signets de votre navigateur et utiliser à la place la fonction d’impression par défaut de celui-ci.

Utilisation de postfix en mode multi-domaine

Cette page est en cours de rédaction.

Il manque encore quelques étapes mais les grandes lignes sont la.

Présentation

Postfix peut être utilisé afin de gérer plusieurs domaine sur un même serveur. Pour cela, postfix utilise une base de données et un outils de gestion qui se nomme "postfixadmin"

Installation de postfix-mysql

Liste des paquets à installer, cette liste dépend de la version de linux utilisée.

postfix
postfix-mysql
php5-imap
courier-base
courier-imap-ssl
courier-imap
courier-webadmin
courier-authlib-mysql

Création de la base de données

GRANT SELECT ON `postfix`.* TO 'postfix'@'%' IDENTIFIED BY '$PASSWORD'; #Pas obligatoire
GRANT SELECT ON `postfix`.* TO 'postfix'@'localhost' IDENTIFIED BY '$PASSWORD';

create database postfix;

Fichier /etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP
biff = no
disable_vrfy_command = yes
smtpd_helo_required = yes
smtpd_delay_reject = yes

# ajoute le domaine aux emails de la distribution locale
# ainsi vous pourrez envoyer des emails sans @domain.priv
# par la commande sendmail
mydomain = MON_DOMAINE_DE_MESSAGERIE
append_dot_mydomain = yes

# Envoi une alerte de dépassement de délai par email
#delay_warning_time = 4h

myhostname = MON_HOSTNAME

# domaine de distribution local
mydestination = localhost, localhost.localdomain,  MON_HOSTNAME

# Mettez ici le relais smtp de votre FAI si vous avez des problèmes de blacklist
# à cause de votre IP
relayhost =

# adresseIP/Masque des réseaux locaux (réseaux autorisés pour l'envoi de courier)
mynetworks = 127.0.0.0/8 192.168.0.0/24
inet_interfaces = all
smtpd_sender_restrictions =
       permit_mynetworks,
       reject_unknown_sender_domain,
       reject_non_fqdn_sender,
       warn_if_reject,
       reject_unverified_sender,
       reject_rhsbl_sender zen.spamhaus.org,
       reject_rbl_client cbl.abuseat.org,
       reject_rbl_client list.dsbl.org,
       reject_rbl_client bl.spamcop.net
smtpd_recipient_restrictions =
       permit_mynetworks,
       reject_unauth_destination,
       reject_unknown_recipient_domain,
       reject_non_fqdn_recipient
smtpd_client_restrictions =
       reject_unknown_client,
       permit_mynetworks
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_aliases.cf,mysql:/etc/postfix/mysql-virtual_aliases_mailbox.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/spool/vmail/
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "Desole, la boite email de l'utilisateur est pleine, essayez plus tard."
virtual_overquota_bounce = yes

Installation de postfixadmin

Il faut télécharger la dernière version de postfixadmin ici : http://sourceforge.net/projects/postfixadmin/ Ensuite, il faut créer l'utilisateur ayant les droits de modifier la base postfix  :

GRANT CREATE, SELECT, INSERT, DELETE, UPDATE, ALTER ON `postfix`.* TO 'postfixadmin'@'localhost' IDENTIFIED BY '$PASSWORD';
GRANT CREATE, SELECT, INSERT, DELETE, UPDATE, ALTER ON `postfix`.* TO 'postfixadmin'@'%' IDENTIFIED BY '$PASSWORD';

Une fois ces opérations effectuées, il faut se connecter à l'interface web postfixadmin et suivre les indications.

installation de courier-imap

Il faut modifier le fichier /etc/courier/authdaemonrc pour indiquer à authdaemon qu'il doit utiliser le module mysql. authmodulelist="authmysql"

Puis il faut configurer le module authmysql en éditant le fichier /etc/courier/authmysqlrc ainsi:

MYSQL_SERVER            localhost
MYSQL_USERNAME          postfix
MYSQL_PASSWORD          pass
MYSQL_DATABASE          postfix
MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     password
# MYSQL_CLEAR_PWFIELD    clear
MYSQL_UID_FIELD         5000
MYSQL_GID_FIELD         5000
MYSQL_LOGIN_FIELD       email
MYSQL_HOME_FIELD        "/var/spool/vmail/"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
#Ligne à commenter 
# MYSQL_NAME_FIELD       name
MYSQL_QUOTA_FIELD       quota

Utilisation de postgrey

Postgrey est un système qui permet de limiter le spam. Son principe de fonctionnement est de rejeter tous les mails en entrée et d'attendre 5 minutes que le même message soit à nouveau envoyé. A la seconde présentation du même message, le messages est enfin accetpé.

Installation du paquet postgrey

Sous debian

apt-get install postgrey

Sous Mandriva

urpmi postgrey

Configuration de postgrey

Il faut modifier le fichier de configuration de postgrey (/etc/sysconfig/postgrey) afin de le mettre en écoute sur un port spécifique et d'ajouter des options. Voici le contenu de ce fichier :

# change default configuration option here
# SOCKET=$(postconf -h queue_directory)/extern/postgrey/socket
# OPTIONS="--unix=$SOCKET"
# DBPATH=/var/lib/postgrey
# OPTIONS="$OPTIONS --dbdir=$DBPATH"
# to use an inet connection instead of a socket
OPTIONS="--inet=127.0.0.1:10031"
# enable whitelisting
OPTIONS="$OPTIONS --auto-whitelist-clients"

Utilisation des RBL

Ajout des lignes suivante dans /etc/postfix/main.cf

smtpd_sender_restrictions =
reject_rhsbl_sender zen.spamhaus.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client list.dsbl.org,
reject_rbl_client bl.spamcop.net