Serveur de messagerie sous LINUX 7/2008 Dans cette article je vous propose de voir comment mettre en place un serveur de messagerie sous linux. Cette solution s'appuie sur : POSTFIX MYSQL COURIER 1.1 Mise en place de POSTFIX 1.1.1 Installation depuis les sources - dans un premier temps on d'esinstalle sendmail : yum remove sendmail Ici j'installe le système depuis les sources pour avoir la toute dernière version.L'installation par RPM est possible mais il faut s'assurer que le support MYSQL est activé. cd /usr/local/src/ groupadd -g 1001 vmail tar xzf [postfix src] make -f Makefile.init makefiles \ 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS -I/usr/include/openssl' \ 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -lsasl2 -lssl -lcrypto' make ln -s /usr/sbin/sendmail /usr/lib/sendmail 1.1.2 Configuration de POSTFIX avec MYSQL POSTFIX est utilisé avec MYSQL car il présente l'avantage d'être multi-domaines et surtout facilement configurable par une interface web type PHPMYADMIN, couplé à un script de création de boite il devient assez simple de mettre en place une messagerie linux;) Voici la configuration utilisée ici : queue_directory = /var/spool/postfix alias_maps = hash:/etc/aliases sendmail_path = /usr/sbin/sendmail.postfix virtual_mailbox_domains=mysql:/etc/postfix/mysql_virtual_domains transport_maps = mysql:/etc/postfix/mysql_transport smtpd_banner = ESMTP Partie MYSQL : Il s'appuie sur plusieurs fichiers de configuration préfixé par "mysql" ces fichiers permettent à POSTFIX de faire le mapping avec le SGBD MYSQL.
1.2 Mise en place de COURIER-AUTHLIB & COURIER-IMAP 1.2.1 COURIER-AUTHLIB Installation du service COURIER-AUTHLIB fourni l'authentification utilisé par COURIER-IMAP. Ici j'utilise les versions : courier-authlib-0.60.6 & courier-imap-4.3.1 Dans un premier temps j'installe 2 RPM indispensable : yum install expect gamin-devel wget [courier-authlib http src] tar xjf [courier-authlib src] ./configure \ --prefix=/usr/local/courier-authlib \ --without-ipv6 \ --disable-root-check \ --without-authpwd \ --without-authshadow \ --without-authuserdb \ --without-authpgsql \ --without-authldap \ --without-authvchkpw \ --without-authcustom \ --without-authpam \ --without-authpipe \ --with-authmysql \ --with-authdaemon \ --with-redhat make make check make install make install-configure Configuration du service La configuration se fait par le fichier de configuration authmysqlrc : /usr/local/courier-authlib/etc/authlib/ Les champs importants sont : MYSQL_HOME_FIELD qui détermine ou se trouve le répertoire racine de notre serveur de mail qui stocke les boites mail. MYSQL_CRYPT_PWFIELD & MYSQL_CLEAR_PWFIELD qui détermine comment sont chyfrés les mots de passe dans la base. authmysqlrc MYSQL_SERVER 127.0.0.1 MYSQL_USERNAME mail_server_user MYSQL_PORT 0 MYSQL_DATABASE mail_server MYSQL_CRYPT_PWFIELD password MYSQL_UID_FIELD 1001 MYSQL_LOGIN_FIELD email MYSQL_HOME_FIELD '/home/hosting/mail_root'
Script de création de la base "mail_server" : mail_server.sql
1.1.3 Script de lancement 1.1.4 Test de la partie SMTP On lance le tout : service postfix start chkconfig --add postfix
1.2 Mise en place de COURIER Les versions courier-authlib-0.60.6, courier-imap-4.3.1 sont utilisées ici. 1.2.1 Mise en place de COURIER-IMAP cd /usr/local/src tar xzf [courier-imap src] ./configure \ --prefix=/usr/local/courier-authlib \ --without-authpam \ --without-authldap \ --without-authpwd \ --without-authmysql \ --without-authpgsql \ --without-authshadow \ --without-authuserdb \ --without-authcustom \ --without-authcram \ --without-authpipe \ --with-authdaemon \ --with-authvchkpw \--with-redhat make make install make install-configure cp courier-authlib.sysvinit /etc/rc.d/init.d/courier-authlib chmod 744 /etc/rc.d/init.d/courier-authlib chkconfig --add courier-authlib 1.2.1 Mise en place de COURIER-AUTHLIB COURIERAUTHCONFIG=/usr/local/courier-authlib/bin/courierauthconfig \ CPPFLAGS=-I/usr/local/courier-authlib/include \ ./configure \ --prefix=/usr/local/courier-imap \ --disable-root-check \ --with-ssl \ --with-redhat make make install make install-configure cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imap chmod 744 /etc/rc.d/init.d/courier-imap chkconfig --add courier-imap 1.2.2 Mise en place de COURIER-IMAP 1.3 Filtrage ANTI-SPAM 1.3.1 Mise en place de SPAMASSASSIN & RAZOR Ici la version razor-agents-2.84.tar.bz2 On bunzip & détar le tout ensuite : On build le make file : perl Makefile.PL Et on compile le tout : make make test make install Le programme installe nottament : Installing /usr/bin/razor-client
razor-admin -d -create -home=/etc/razor 1.3.2 Mise en place de SPAM-ASSASSIN Ici on utilise la version : Mail-SpamAssassin-3.2.5 La procédure de compilation & la même que pour Razor ... Spamassassin installe les binaires suivants : Installing /usr/bin/sa-compile /etc/sysconfig/spamassassin SPAMDOPTIONS="-x -u spamd -H /home/spamd -d" cp spamd/redhat-rc-script.sh /etc/rc.d/init.d/spamd chmod 700 /etc/rc.d/init.d/spamd chkconfig --add spamd Configuration de SPAMASSASSIN : /etc/mail/spamassassin/local.cf report_safe 0 groupadd spamd useradd -g spamd spamd chown -R spamd.spamd /home/spamd/ service spamd start 1.3.3 Intégration dans POSTFIX de l'ANTISPAM /etc/postfix/master.cf #smtp inet n - n - - smtpd #Add ANTISPAM FILTER : Tout à la fin on ajoute ceci : spamassassin unix - n n - - pipe flags=Rq user=spamassassin argv=/usr/bin/spamassassin.sh -f ${sender} -- ${recipient} On créé ensuite le script SHELL qui faite le PIPE entre les deux : /usr/bin/spamassassin.sh #!/bin/bash On recharge ensuite le service postfix : service postfix restart
1.4 Sécurisation de la messagerie - Evitons l'open relais pour cela rendez vous dans /etc/postfix/main.cf dans la section mydestination & mynetwork
|
||||||||||
| © Bastien Barbe 2008 |